在网上找了好久,发现没有能够连续读取NFC标签的方法,目前我的实现还有一定的局限性,如下:
要实现连续读取NFC标签,在不改变源码的情况下,需要你能够在应用内开关NFC,查看源码后发现NfcAdapter的disable与enable都属于系统api并且是hide的
所以如果要使用的话必须要使用反射调用并且是系统App。
当你满足这个条件后(或者你有其他黑科技),你就可以在App里开关NFC了。
然后你会发现,当你处于同一个Activity时,不停开关NFC,系统确实每次都会读取到NFC标签(滴的一声),但是只有第一次你的Activity里的onNewIntent会被调用,之后不会被调用,所以也无法再次接收到NFC标签,但是如果把标签拿远再靠近,又会走onNewIntent,感觉是Android系统设置的。
我的做法是在关闭NFC的同时,移除Activity的监听,然后再开启的地方,重新绑定监听
关闭NFC 开启NFC这样每次开启NFC时,都会接收到TAG的Intent,执行onNewIntent(),在其中获得标签内容即可。
网友评论