據我所知,當Android手機觸碰到NFC標籤時,它會發送一個事件(NDEF_DISCOVERED意圖),但Android似乎並不關心這個標籤是否保留在原位。我的解決方案是鎖定屏幕,然後解鎖它。如果標籤仍然存在,我可以再讀一遍。這顯然是一個愚蠢的方式。有沒有更聰明的方法來做到這一點?如何找出NFC標籤是否仍在Android的範圍內?
4
A
回答
3
由您的活動收到的NFC意圖的一部分,您也將獲得意圖額外標籤手柄(Tag
對象):
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
根據標籤的類型,你就可以得到特定標籤技術的一個實例。舉例來說,如果它是一個NDEF標籤,你可以得到:
ndefTag.connect();
之後,你可以檢查標籤:
Ndef ndefTag = Ndef.get(tag);
然後你可以使用connect()方法連接到標籤還是通過定期嘗試從標籤讀取「連接」到設備:
try {
ndefTag.getNdefMessage();
} catch (IOException e) {
// if you receive an IOException, contact to the tag has been lost
}
注意,如果您的活動是在前臺所有的時間和屏幕保持這個只會工作。
1
有一項功能可以檢查卡是否仍然連接,稱爲isConnected()
。可以這樣使用:
try {
ndef.connect();
while(ndef.isConnected()){
//Your code here
}
} catch (IOException e) {
//Error
}
相關問題
- 1. 尋找是否在編程範圍內的某個範圍
- 2. 系統範圍內抓取NFC NDEF文字標籤?
- 3. 如何在Android中讀取NFC標籤?
- 4. 如何在Android中讀取Nfc標籤?
- 5. SharePoint Search是否支持範圍標籤?
- 6. 如何在Android中檢測NFC標籤中的UID是否是隨機的?
- 7. 如何查找範圍是否包含在另一個範圍內? VBA
- 8. 如何查找NSDate是否在指定範圍內?
- 9. 如何找出範圍指數是否存在?
- 10. 檢查鼠標是否在公差範圍內時出錯
- 11. 如何找出日期是否在一定範圍內?訪問2010
- 12. 如何找出某個Point3D是否在相機視圖範圍內?
- 13. Android:檢測WiFi接入點是否仍在範圍
- 14. 如何檢查範圍1內的任何值是否出現在範圍2內
- 15. 檢查鼠標光標是否在座標數組範圍內
- 16. 找出日期是否在特定範圍內的最佳方法是什麼?
- 17. Android標籤應用是否可識別NFC標籤中的vcard數據?
- 18. 與'undefined`比較是否仍然進行全局範圍查找?
- 19. Android NFC寫NFCA標籤
- 20. Android NFC:其他RFID標籤
- 21. 如何檢查命名範圍是否在我當前的範圍內?
- 22. NFC標籤貼紙在安裝了ICS的Android上顯示空的NFC標籤
- 23. 如何閱讀NFC標籤?
- 24. 如何鎖定NFC標籤?
- 25. Android瀏覽器:是否自動打開NFC標籤?
- 26. 查找時間是否在規定的範圍內
- 27. 查找數字是否在範圍內的最快方法
- 28. 如何使多個標籤出現在JQuery範圍滑塊?
- 29. 即使調試顯示它在範圍內,索引是否超出範圍?
- 30. 找出一個值是否在PHP中有一個if子句的範圍內?
還沒有嘗試過,但文檔指定了一個'TagLostException'。如果標籤超出範圍,後者是否會觸發?前者是否處理任何其他類型的I/O問題? – user149408
@ user149408'TagLostException * *是*特定類型的IO異常。所以,是的,在大多數設備上,'IOException e'將是'TagLostException'的一個實例。 –