在網(wǎng)上找了好久米酬,發(fā)現(xiàn)沒有能夠連續(xù)讀取NFC標簽的方法桌硫,目前我的實現(xiàn)還有一定的局限性夭咬,如下:
要實現(xiàn)連續(xù)讀取NFC標簽,在不改變源碼的情況下铆隘,需要你能夠在應用內(nèi)開關NFC卓舵,查看源碼后發(fā)現(xiàn)NfcAdapter的disable與enable都屬于系統(tǒng)api并且是hide的
所以如果要使用的話必須要使用反射調(diào)用并且是系統(tǒng)App。
當你滿足這個條件后(或者你有其他黑科技)膀钠,你就可以在App里開關NFC了掏湾。
然后你會發(fā)現(xiàn),當你處于同一個Activity時肿嘲,不停開關NFC融击,系統(tǒng)確實每次都會讀取到NFC標簽(滴的一聲),但是只有第一次你的Activity里的onNewIntent會被調(diào)用雳窟,之后不會被調(diào)用尊浪,所以也無法再次接收到NFC標簽,但是如果把標簽拿遠再靠近涩拙,又會走onNewIntent际长,感覺是Android系統(tǒng)設置的。
我的做法是在關閉NFC的同時兴泥,移除Activity的監(jiān)聽工育,然后再開啟的地方,重新綁定監(jiān)聽
這樣每次開啟NFC時搓彻,都會接收到TAG的Intent如绸,執(zhí)行onNewIntent(),在其中獲得標簽內(nèi)容即可旭贬。