我的问题是,当我接近NFC标签时,立即出现一个包含我为使用NFC开发的所有应用程序的列表,我不希望这样! 我希望只使用特定的NFC标签启动其中一个应用程序。
我想要的应用程序" NFC UidClass"显示,不显示列表(我不会卸载其他NFC应用程序)。像这样的东西:
这是我的AndroidManifest.xml:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
请有人帮助我。 :)
答案 0 :(得分:1)
你必须使用mime类型。您可以使用特定的mime类型添加intent-filter
ACTION_NDEF_DISCOVERED
。
https://developer.android.com/guide/topics/connectivity/nfc/nfc.html#mime
在AndroidManifest
:
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.com.mycompany.data"/>
</intent-filter>
</activity>
例如,要创建具有特定mime类型的标记:
NdefRecord mimeRecord = NdefRecord.createMime("application/vnd.com.mycompany.data",
"some data".getBytes(Charset.forName("US-ASCII")));