gpt4 book ai didi

android - 如何接收 android.nfc.action.TAG_LOST Intent 来检测标签移除?

转载 作者:行者123 更新时间:2023-11-29 19:21:05 25 4
gpt4 key购买 nike

根据AOSP source code , NfcAdapter 定义了一个字符串值为 "android.nfc.action.TAG_LOST" 的常量 ACTION_TAG_LEFT_FIELD

文件中的 Javadoc 指出:

Broadcast to only the activity that handles ACTION_TAG_DISCOVERED

Blame 表明这个声明是在 2010 年初始 NFC 实现期间添加的,因此任何支持 NFC 的 Android 版本都应该有它(除了专门删除它的构建)。

我有一个监听任何 ACTION_NDEF_DISCOVEREDACTION_TECH_DISCOVEREDACTION_TAG_DISCOVERED 的 Activity 。我试图通过在 list 中声明它和注册 BroadcastReceiver 来让它收听 ACTION_TAG_LEFT_FIELD,但 Activity 从未收到 Intent 。我已经尝试了 NDEF 格式的标签和通用标签(一个触发 ACTION_NDEF_DISCOVERED,另一个触发 ACTION_TAG_DISCOVERED),并且有两种不同的设备运行不同版本的 Android。

如果这很重要:应用程序从不执行显式 connect() 操作来读取标签,而是从 Intent extras 中获取所有标签数据。

有没有人成功收到android.nfc.action.TAG_LOST广播?我做错了什么?

最佳答案

该字段确实在 NfcAdapter API 中声明:

/**
* Broadcast to only the activity that handles ACTION_TAG_DISCOVERED
* @hide
*/
public static final String ACTION_TAG_LEFT_FIELD = "android.nfc.action.TAG_LOST";

但是,请注意它被声明为隐藏的 (@hide),因此它不是任何公共(public) API 的一部分,因此,没有记录使用它的方法。

事实上,尽管它已在 NfcAdapter API 类中定义,但 Android 并未使用它。 Android NFC 服务甚至不会尝试发送此 Intent。因此,您的应用无法接收它。

关于android - 如何接收 android.nfc.action.TAG_LOST Intent 来检测标签移除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com