android 卡仿真.registerAidsForService不工作

xvw2m8pv  于 2022-11-03  发布在  Android
关注(0)|答案(1)|浏览(187)

我正在开发一个Android HCE应用程序,我想在运行时为给定的服务动态添加AID。幸运的是,Android API 21专门为此添加了CardEmulation.registerAidsForService()方法。不幸的是,无论如何我都无法使其工作。我尝试注册HostApduService和普通的Service,但该方法总是返回false。
我不知道什么是正确的方法,因为文档是相当稀缺的,我找不到任何工作的例子。
为AID组静态注册服务对我来说很有效,所以我认为这不应该是HCE问题、权限问题或设备本身的问题(Note 4 N910 C)。
我不知道我还能采取什么方法。任何信息都是最好的。

  • 谢谢-谢谢
bxgwgixi

bxgwgixi1#

我自己修好的。
看起来我正在使用HostApduService,但是我忽略了将下面一行添加到清单文件中:

<meta-data android:name="android.nfc.cardemulation.host_apdu_service" android:resource="@xml/apduservice"/>

在我的愚蠢,我认为它可能是无用的动态使用。对于那些感兴趣的xml/apduservice.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/servicedesc"
    android:requireDeviceUnlock="false">
</host-apdu-service>

毫无疑问,该代码与示例here中的代码类似。

相关问题