如何接收 android.nfc.action.TAG_LOST 检测标签删除的意图?
How to receive the android.nfc.action.TAG_LOST intent to detect tag removal?
根据AOSP source code,NfcAdapter
定义了一个常量ACTION_TAG_LEFT_FIELD
,字符串值为"android.nfc.action.TAG_LOST"
。
文件中的 Javadoc 指出:
Broadcast to only the activity that handles ACTION_TAG_DISCOVERED
Blame 表明该声明是在 2010 年最初的 NFC 实施期间添加的,因此任何支持 NFC 的 Android 版本都应该有它(除了专门删除它的版本)。
我有一个 activity 可以监听 ACTION_NDEF_DISCOVERED
、ACTION_TECH_DISCOVERED
和 ACTION_TAG_DISCOVERED
中的任何一个。我试图通过在清单中声明它和注册 BroadcastReceiver 来让它收听 ACTION_TAG_LEFT_FIELD
,但是 activity 从未收到意图。我已经尝试了 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 class 中定义,但 Android 并未使用它。 Android NFC 服务甚至不尝试发送此意图。因此,您的应用无法接收它。
根据AOSP source code,NfcAdapter
定义了一个常量ACTION_TAG_LEFT_FIELD
,字符串值为"android.nfc.action.TAG_LOST"
。
文件中的 Javadoc 指出:
Broadcast to only the activity that handles ACTION_TAG_DISCOVERED
Blame 表明该声明是在 2010 年最初的 NFC 实施期间添加的,因此任何支持 NFC 的 Android 版本都应该有它(除了专门删除它的版本)。
我有一个 activity 可以监听 ACTION_NDEF_DISCOVERED
、ACTION_TECH_DISCOVERED
和 ACTION_TAG_DISCOVERED
中的任何一个。我试图通过在清单中声明它和注册 BroadcastReceiver 来让它收听 ACTION_TAG_LEFT_FIELD
,但是 activity 从未收到意图。我已经尝试了 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 class 中定义,但 Android 并未使用它。 Android NFC 服务甚至不尝试发送此意图。因此,您的应用无法接收它。