我發現當我將Nexus S(運行Android 2.3.6)旁邊的NFC標籤包含NDEF消息,並且URI記錄指向一個網站,這將導致(如預期的)NFC活動選擇器顯示(因爲我有幾個NFC讀卡器應用程序安裝,我正在我自己的應用程序,也攔截檢測到的NFC標籤)。Android 2.3.6和4.x的NFC檢測功能有所不同
但是,使用Galaxy Nexus(Android v4,Ice Cream Sandwich),活動選擇器不會顯示。它將直接啓動瀏覽器。 logcat中會顯示這樣的:
D/NfcService(438): TAG: Tech [android.nfc.tech.MifareUltralight, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
I/ActivityManager(196): START {flg=0x10008000 cmp=com.android.nfc3/com.android.nfc.NfcRootActivity (has extras)} from pid 438
I/ActivityManager(196): START {act=android.nfc.action.NDEF_DISCOVERED dat=http://www.someURL.com/someotherstuff cmp=com.google.android.browser/com.android.browser.BrowserActivity (has extras)} from pid 438
所以這給了我兩個問題:
A)的Android 2.3.6和4.x決定不同的表現,becaaaause ...?
二)即使當我試圖限制我的應用程序,以匹配包含www.someURL.com主機只NFC標籤,通過把
<data
android:host="www.someURL.com"
android:pathPattern="/*"
android:scheme="http" />
到我的3個意向過濾器(一個用於TAG_DISCOVERED即一個用於TECH_DISCOVERED,一個用於NDEF_DISCOVERED,我真的試圖在那裏抓住NFC活動選擇器的注意力..),結果不會改變。它只會打開瀏覽器。 ATM唯一可行的是前臺調度...
任何想法?
準確地說是什麼問題。現在我正在使用'android:pathPrefix =「/ someotherstuff」'。前綴中不需要「*」。 – NameZero912 2012-02-29 14:52:17