我正在使用NFC保護設置配置在NFC論壇中指定的標籤上寫入靜態切換選擇記錄。 (SSID,加密,...)。Nexus 4 - NFC AAR和過濾器
類型是application/vnd.wfa.wsc
另外我想補充的Android應用程序記錄的最後NDEF記錄了我的NDEF消息。
我還在我的Android Manifest XML中爲NFC標籤發現了一個過濾器。
問題是:如果應用程序啓動並且顯示Reader活動,我可以讀取標記並且一切正常。
現在我想要以下內容: 如果我掃描我的標籤,並且活動不是@前臺或未啓動,則應用程序應自行啓動並自動切換到閱讀器模式。
- 如果我這樣做,Nexus 4不會由AAR啓動......它只是開始,如果我把這個記錄放在NDEF消息的第一個位置,但然後我放鬆了事件發現Ndef/Tech/Tag。
- 我也有我的Android manififest過濾,但這似乎沒有做任何事情,我嘗試了所有三場比賽,但什麼也沒發生
此外,如果標籤被掃描,通常如果有更多的應用程序過濾功能事件,我得到一個應用程序選擇器,我想爲這個標籤啓動哪個應用程序。但我的應用程序沒有在這裏列出。
這是我如何創建消息:
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活動中過濾,但這不起作用,因此我在MainActivity中也添加了過濾器,但這也無能爲力。
我希望你能幫助我。
謝謝!
第一個記錄是切換選擇,第二個是應用程序/ vnd.wfa.wsc。我通過將完整的Techlist添加到開發者網站上提供的intent-filter來解決LG Nexus 4現在的問題。但是,如果AAR-Record不在NDEF消息的第一位,則AAR-Record將被完全忽略。但是在這個位置上,我不需要它。但是輸入必須正確,因爲我使用恩智浦的應用程序掃描了TAG,並向我顯示了3條NDEF消息,並且AAR與我的應用程序正確鏈接了......有些想法爲什麼AAR不起作用? –
隨着Handover Select作爲第一條記錄,Android將自行處理消息,而不是將它傳遞給應用程序。但是,目前它只支持切換到藍牙。應用程序無法篩選切換選擇消息(這是一個衆所周知的類型記錄;沒有語法來處理那些具有意圖過濾器的語法)。 –