在运行时更改Android <host-apdu-service>属性android:requireDeviceUnlock是否可能?

4

Android NFC HCE HostApduService 的配置通过 apduservice.xml 实现,其中包含:

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/servicedesc"
    android:requireDeviceUnlock="true" >

    <aid-group
        android:category="other"
        android:description="@string/aiddescription" >
        <aid-filter android:name="F0010203040506" />
    </aid-group>

</host-apdu-service>

我希望能够在运行时将requireDeviceUnlock设置为用户可配置。我怀疑我可以通过重新启动服务来强制重新加载XML文件:
stopService(new Intent(this, MyHostApduService.class));
startService(new Intent(this, MyHostApduService.class));

但是我如何在运行时更改XML文件中的设置?
1个回答

3

我实际上正在考虑实现同样的功能,即使用户可以选择是否需要设备解锁。

然而,查看API后发现

https://developer.android.com/reference/android/nfc/cardemulation/HostApduService.html

目前看来,似乎没有合适的调用来更改应用程序apduservice.xml文件中设置的“requireDeviceUnlock”值。

希望将来会有所改变。

但是,您可以将其设置为false,然后在您的apduservice实现中检查共享首选项设置以查看用户指定了什么,然后从那里接受/拒绝您的进程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接