标签:android tags android-intent nfc
据我所知,当Android手机触摸到NFC标签时,它会发送一个事件(NDEF_DISCOVERED意图),但Android似乎并不关心这个标签是否留在原地.我的解决方案是锁定屏幕然后将其解锁.如果标签仍然存在,我可以再次阅读.这显然是一种愚蠢的方式.有没有更聪明的方法呢?
解决方法:
作为您的活动收到的NFC意图的一部分,您还将获得额外意图中的标记句柄(标记对象):
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
根据标签的类型,您可以获得特定标签技术的实例.例如,如果它是NDEF标记,您可以获得:
Ndef ndefTag = Ndef.get(tag);
然后,您可以使用connect()方法连接到标记:
ndefTag.connect();
之后,您可以通过定期尝试从标签中读取来检查标签是否仍与设备“连接”:
try {
ndefTag.getNdefMessage();
} catch (IOException e) {
// if you receive an IOException, contact to the tag has been lost
}
请注意,这仅在您的活动始终处于前台并且屏幕保持打开时才有效.
标签:android,tags,android-intent,nfc 来源: https://codeday.me/bug/20190629/1321936.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。