Android NFC应用程序检测
我想在我的Android应用程序中使用NFC。我能够使用NFC读写数据。我希望我的应用程序从特定应用程序接收NFC数据,而不是从设备中存在的所有其他应用程序接收NFC数据 我为此使用了以下代码Android NFC应用程序检测,android,nfc,intentfilter,ndef,Android,Nfc,Intentfilter,Ndef,我想在我的Android应用程序中使用NFC。我能够使用NFC读写数据。我希望我的应用程序从特定应用程序接收NFC数据,而不是从设备中存在的所有其他应用程序接收NFC数据 我为此使用了以下代码 NdefRecord.createApplicationRecord("com.example.android.beam") 但它使用其他包名与应用程序通信 请在这方面帮助我。对于Android应用程序记录,您只能确保不会因为您的NDEF消息而启动其他应用程序。您无法阻止另一个应用程序在前台接收您发送的
NdefRecord.createApplicationRecord("com.example.android.beam")
但它使用其他包名与应用程序通信
请在这方面帮助我。对于Android应用程序记录,您只能确保不会因为您的NDEF消息而启动其他应用程序。您无法阻止另一个应用程序在前台接收您发送的NDEF消息。你也不能真的阻止你的应用程序接收不适用于你的应用程序的NDEF消息。但是,您可以明显限制应用程序接收的NDEF消息 为了限制你的应用程序应该接收的NDEF消息,你首先要决定一个NDEF记录,你要用它来过滤。例如,特定于您的应用程序的NFC论坛外部类型请注意,类型名称必须全部小写: 您可以使用NdefRecord.createExternalexample.com、mytype、mydata;创建此文件;。接下来,您将使用此记录作为NDEF消息的第一条记录 现在,您可以创建仅匹配该特定记录的意图过滤器。例如,在应用程序的mainfest中:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/com.example:mytype" />
</intent-filter>
请参考此链接以及此链接是否有任何解决方案?一个解决方案是,当从您的应用程序发送数据时,我们应该添加一些密钥。如果消息具有该键,则读取数据
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/com.example:mytype" />
</intent-filter>
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
ndef.addDataScheme("vnd.android.nfc");
ndef.addDataAuthority("ext", null);
ndef.addDataPath("/com.example:mytype", PatternMatcher.PATTERN_PREFIX);
IntentFilter[] intentFiltersArray = new IntentFilter[] { ndef, };