当我接近NFC标签时,如何使列表消失?

时间:2015-10-21 21:32:16

标签: android android-intent nfc

我的问题是,当我接近NFC标签时,立即出现一个包含我为使用NFC开发的所有应用程序的列表,我不希望这样! 我希望只使用特定的NFC标签启动其中一个应用程序。

出现的列表如下: enter image description here

我想要的应用程序" NFC UidClass"显示,不显示列表(我不会卸载其他NFC应用程序)。像这样的东西: enter image description here

这是我的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" />

请有人帮助我。 :)

1 个答案:

答案 0 :(得分:1)

你必须使用mime类型。您可以使用特定的mime类型添加intent-filter ACTION_NDEF_DISCOVEREDhttps://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")));