EnableReaderMode 的替代方法 - 使用 Android API 小于 19(ICS 和 Jelly Bean)..?
Alternative way for EnableReaderMode - to work with Android API's lesser than 19 (ICS and Jelly Bean)..?
我目前正在使用 Android 支付应用程序,它可以使用 NFC 与 ISO/IEC 14443-4 智能卡通信。
为此,我在 Activity 中使用
启用了 reader 模式
mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK, null);
并重写了 ReaderCallback
的 onTagDiscovered()
在 Android 应用程序和 ISO/IEC 14443-4 智能卡之间发送和接收 APDU 命令的方法。
由于 Reader回调和覆盖 onTagDiscovered()
从 API 级别 19 (KitKat) 开始可用,它在 KitKat Android 设备 运行 上工作正常.
我想让我的应用程序也能与 Android ICS 和 Jelly Bean 一起使用。是否有任何替代方法或解决此启用 Reader 模式,为 ICS 和 JellyBean 进行 APDU 通信..?
不,在 Android 4.4 之前没有直接等效于 enableReaderMode(以您使用它的方式)。但是,您可以通过使用 前台调度系统 实现类似的功能(请参阅 this answer 了解如何使用前台调度)。
不过,请注意使用 enableReaderMode(... FLAG_READER_NFC_B ... FLAG_READER_SKIP_NDEF_CHECK ...)
和使用 enableForegroundDispatch(...)
之间存在一些差异:
- 前台调度将在将卡片传递给您的应用程序之前执行 NDEF 检查。
- 前台调度将轮询所有技术(即使您选择仅处理具有适当意图过滤器的特定技术)。
- 基于 Broadcom NFC 芯片组的 Android 设备上的标签前缀检查机制存在一个已知错误,可能会干扰您的实际通信。这只能使用 reader 模式 API.
可靠地处理
- 您只能使用reader模式禁用标签扫描平台声音API。
我目前正在使用 Android 支付应用程序,它可以使用 NFC 与 ISO/IEC 14443-4 智能卡通信。
为此,我在 Activity 中使用
启用了 reader 模式mNfcAdapter.enableReaderMode(this, this, NfcAdapter.FLAG_READER_NFC_B | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK, null);
并重写了 ReaderCallback
的 onTagDiscovered()
在 Android 应用程序和 ISO/IEC 14443-4 智能卡之间发送和接收 APDU 命令的方法。
由于 Reader回调和覆盖 onTagDiscovered()
从 API 级别 19 (KitKat) 开始可用,它在 KitKat Android 设备 运行 上工作正常.
我想让我的应用程序也能与 Android ICS 和 Jelly Bean 一起使用。是否有任何替代方法或解决此启用 Reader 模式,为 ICS 和 JellyBean 进行 APDU 通信..?
不,在 Android 4.4 之前没有直接等效于 enableReaderMode(以您使用它的方式)。但是,您可以通过使用 前台调度系统 实现类似的功能(请参阅 this answer 了解如何使用前台调度)。
不过,请注意使用 enableReaderMode(... FLAG_READER_NFC_B ... FLAG_READER_SKIP_NDEF_CHECK ...)
和使用 enableForegroundDispatch(...)
之间存在一些差异:
- 前台调度将在将卡片传递给您的应用程序之前执行 NDEF 检查。
- 前台调度将轮询所有技术(即使您选择仅处理具有适当意图过滤器的特定技术)。
- 基于 Broadcom NFC 芯片组的 Android 设备上的标签前缀检查机制存在一个已知错误,可能会干扰您的实际通信。这只能使用 reader 模式 API. 可靠地处理
- 您只能使用reader模式禁用标签扫描平台声音API。