我正在开发Android HCE应用程序,我想在运行时为给定服务动态添加AID。幸运的是,Android API 21专门为此添加了方法CardEmulation.registerAidsForService()
。
不幸的是,无论如何我都无法工作。
我试图同时注册HostApduService
和普通Service
,但该方法始终返回false。
我无法弄清楚正确的方法是什么,因为文档非常稀缺,我找不到任何有效的例子。
为AID组静态注册服务对我有用,所以我认为它不应该是HCE问题,权限问题或设备本身的问题(注4 N910C)。
我不知道应该采取什么其他方法。 任何信息都会很棒。
感谢。
答案 0 :(得分:0)
自己修正了。
似乎可以使用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中的代码。