CardEmulation.registerAidsForService无效

时间:2015-07-24 11:51:40

标签: android hce

我正在开发Android HCE应用程序,我想在运行时为给定服务动态添加AID。幸运的是,Android API 21专门为此添加了方法CardEmulation.registerAidsForService()。 不幸的是,无论如何我都无法工作。 我试图同时注册HostApduService和普通Service,但该方法始终返回false。

我无法弄清楚正确的方法是什么,因为文档非常稀缺,我找不到任何有效的例子。

为AID组静态注册服务对我有用,所以我认为它不应该是HCE问题,权限问题或设备本身的问题(注4 N910C)。

我不知道应该采取什么其他方法。 任何信息都会很棒。

感谢。

1 个答案:

答案 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中的代码。