我的应用程序中有以下筛选器。我想用三种不同的mimetype启动同一个应用程序。
稍后我阅读了ndef消息,但是如何检查用于启动应用程序的mime类型,以便能够相应地处理ndef消息数据?

        <intent-filter>
               <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
               <category android:name="android.intent.category.DEFAULT"/>
               <data android:mimeType="text/product" />
        </intent-filter>
        <intent-filter>
               <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
               <category android:name="android.intent.category.DEFAULT"/>
               <data android:mimeType="text/pesticide" />
        </intent-filter>
        <intent-filter>
               <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
               <category android:name="android.intent.category.DEFAULT"/>
               <data android:mimeType="text/seed" />
        </intent-filter>

最佳答案

以下是我在应用程序中处理csv文件和文本文件的简化版本。我希望这能帮上忙:

@Override
public void onNewIntent(final Intent intent)
{
    super.onNewIntent(intent);
    String type = intent.getType();
    String action = intent.getAction();
    if ("text/csv".equals(type) || "text/comma-separated-values".equals(type))
    {
        // Handle CSV file being sent
        handleSendCSV(intent);
    }
    else if("text/plain".equals(type) && Intent.ACTION_SEND.equals(action))
    {
        // Handle plaintext sent
        handlePlainText(intent);
    }
    else
    {
        //Alert of some error
        doAlertDialog("Error.", "Invalid file type.");
    }
}

编辑-
补充:
String action = intent.getAction();

所以代码是完整的。

关于android - 如何获取 Intent 过滤器MimeType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20587002/

10-09 16:02