Android系统级应用连续读取NFC标签实现

在网上找了好久,发现没有能够连续读取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(),在其中获得标签内容即可。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容