我正在使用 NFC 论坛中指定的 Wifi 保护设置配置在标签上编写静态切换选择记录。(SSID,加密,...)。
类型是application/vnd.wfa.wsc
此外,我将 Android 应用程序记录作为最后一个 NDEF 记录添加到我的 NDEF 消息中。
我还在我的 Android Manifest XML 中为发现的 NFC 标签定义了一个过滤器。
问题是:如果启动了应用程序并显示了 Reader Activity,我可以读取标签并且一切正常。
现在我想要以下内容:如果我扫描我的标签,并且活动不是@foreground 或未启动,则应用程序应该自行启动并自动切换到阅读器模式。
- 如果我这样做,则 AAR 不会启动 Nexus 4……如果我将此记录放在 NDEF 消息的第一位,它就会启动,但随后我会丢失 Ndef/Tech/Tag 发现的事件.
- 我的android清单中也有过滤器,但这似乎没有做任何事情,我尝试了所有三个事件但没有任何反应
此外,如果标签被扫描,通常如果更多应用程序正在过滤事件,我会得到一个应用程序选择器,我想为此标签启动哪个应用程序。但是我的申请没有在这里列出。
这就是我创建消息的方式:
new NdefMessage(new NdefRecord[] { Utils.createHandoverSelectRecord(ac_record.toByteArray()), wpsRecord, aarRecord });
这是我的android清单中的过滤器:
<activity android:name=".activities.NFCWriterActivity"></activity>
<activity android:name=".activities.NFCReaderActivity" android:exported="true" android:permission="android.permission.NFC">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".activities.NFCBeamActivity"></activity>
<activity android:name=".activities.WifiManagerActivity"></activity>
<activity android:name=".activities.WifiConfiguratorActivity"></activity>
<activity android:name=".activities.TagWriterOptionsActivity"></activity>
<activity android:name=".activities.WifiScannerTagActivity"></activity>
<activity android:name=".activities.WifiScannerActivity"></activity>
<activity android:name=".activities.WifiListActivity"></activity>
<activity
android:name=".activities.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.TAG_DISCOVERED"/>
<!-- <data android:mimeType="application/vnd.wfa.wsc" /> -->
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
我真的不知道应该在哪里过滤,我认为在 Reader Activity 中过滤就足够了,但这不起作用,所以我也在 MainActivity 中添加了过滤器,但这也没有任何作用。
我希望你能帮助我。
谢谢!