Android NFC扫描错误回调

标签 android callback nfc

我目前正在开发 NFC 阅读应用程序,我遇到了这个问题:

通常,当我扫描标签时,我会听到表示扫描成功的声音,并且我的应用会检测到标签。

但有时,如果我在每次扫描之间几乎没有延迟地扫描标签,我会听到不同的声音,这可能表示扫描过程中出现错误,我的应用程序未检测到标签。

短暂延迟后,我能够成功扫描相同的标签。

我想问一下,有没有可能检测到这种情况,并通知用户等待再尝试扫描标签?

提前致谢。

最佳答案

不,Android 仅在成功读取标签时通知应用,不提供任何方式在标签读取中断/失败时通知应用。

在获得 root 权限的设备上,您可以使用 Xposed 等动态修改框架来修改 NFC 服务的行为,以便检测此类事件。例如,您可以 Hook NFC 服务的方法 playSound()(参见 NfcService.java:625)并检查它是否使用参数 SOUND_ERROR 调用(假设声音是读取失败时播放)。

不过,这只能在 NFC 堆栈的较低层通知 NFC 系统服务有关标签扫描时通知您的应用程序。如果 NFC 堆栈下部的读取较早被中断,或者如果 NFC Controller 甚至没有将有关标签扫描的任何信息传递给主机系统,您仍然无法发现这一点。

关于Android NFC扫描错误回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35336901/

相关文章:

Android 在 SurfaceView 上重叠移动图标

BOOT_COMPLETED 上的 Android BroadcastReceiver 不启动警报

android - MediaCodec signalEndOfInputStream() 错误

javascript - 需要来自异步 API 调用的数据的构造函数?

android - 使用 NFC 将文本数据从 Android 发送到 IOS

c# - 如何通过 NFC 标签启动我的应用程序?

java - Android 项目中的 Creative SDK 图像编辑器 UI

php - 传递回调参数ajax post

android - 当回调是类的字段时,将回调转换为suspendCoroutine

android - 在 Delphi 中与 Mifare DESFire 通信