我可以从运行 Android 4.3(或更低版本)的设备访问使用 Android HCE 的设备吗?

Posted

技术标签:

【中文标题】我可以从运行 Android 4.3(或更低版本)的设备访问使用 Android HCE 的设备吗?【英文标题】:Can I access a device using Android HCE from a device running Android 4.3 (or below)? 【发布时间】:2015-04-23 07:56:13 【问题描述】:

我开发了一个使用 android HCE 模拟非接触式智能卡的应用,以及一个访问(读取)该模拟卡的应用。两者都在 Android 4.4 (KitKat) 及更高版本上运行。

不,我想为运行 Android 4.3(或更低版本)的设备开发阅读器端。是否可以从 API 级别

【问题讨论】:

在我们给您答案之前,您应该先了解您的问题。你真正需要的是什么? 【参考方案1】:

不,这是不可能的。默认情况下,两台 Android 设备(放在一起时)将以对等模式进行通信。即使一个或两个设备支持主机卡仿真也是如此。一旦 Android 设备成功建立了点对点模式链接,它将不会尝试在同一目标上使用读取器/写入器模式

为了允许 Android HCE 模拟卡对第二台 Android 设备可见(可从中访问),该第二台设备必须禁用其对等模式功能并仅在读/写模式。

这正是您使用 Android 阅读器模式 API 所做的事情(您似乎在 Android 4.4 的阅读器应用程序中使用了该 API)。将 NfcAdapter.enableReaderMode() 与标志 FLAG_READER_NFC_AFLAG_READER_NFC_B 一起使用会强制 Android 在读取器/写入器模式下运行并禁用点对点模式。

由于此 API(或等效的东西)在 Android 4.3 及更低版本(即 API 级别 19 之前)上不可用,因此您无法以编程方式1禁用点对点模式。因此,您在 Android 4.3 上的阅读器应用无法与 Android HCE 模拟卡通信。


1) 请注意,在“设置”中禁用 Android Beam也不会禁用点对点模式。这只会禁用通常在对等模式之上运行的 Beam 功能。

【讨论】:

以上是关于我可以从运行 Android 4.3(或更低版本)的设备访问使用 Android HCE 的设备吗?的主要内容,如果未能解决你的问题,请参考以下文章

上传失败您需要使用版本号为29或更低的SDK

iOS5 情节提要错误:情节提要在 iOS 4.3 及更低版本上不可用

Android - 更改所有 Android 版本的应用程序语言

类似的工具,如内核版本 2.6.9(或更低版本)的 inotify

如何在 iOS 10 或更低版本中使用 webview? [复制]

iOS v10 或更低版本:如何以编程方式在导航栏底部添加 UISearchController