我正在使用发现nfc制作Android应用程序。 当我发现NFC标签时,我必须选择应用程序(默认的Android应用程序和我的应用程序)。
我在Android系统的应用程序中可以做什么不要问什么应用程序我打开了什么? 我的想法是默认启动我的应用程序。
<activity android:name=".Test">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
答案 0 :(得分:0)
似乎在Android上,应用程序本身无法将自身设置为默认处理程序,而是依赖于用户选择操作,如果有多个选项且未指定默认值。
该应用程序选择框应该有一个复选框,上面写着“默认情况下使用此应用程序”。如果用户每次都想使用您的应用程序,则需要检查该框。
答案 1 :(得分:0)
使用intent过滤器中的“data”元素来定义自定义MIME类型。
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<data android:mimeType="application/com.example.package" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
您可以将此意图过滤器添加到要启动的任何活动中。您甚至可以将此作为附加过滤器添加到启动器活动以及启动过滤器。
如果您这样做,可以使用以下代码确定您的活动是由NFC启动还是由启动图标启动:
Intent intent = getIntent();
if (intent.getType() != null && intent.getType().equals("application/com.example.package")) {
// app is launched from NFC
} else {
// app is launched from launcher icon
}