Можно ли изменить атрибут Android android: requireDeviceUnlock во время выполнения?
AndroidNFC 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 ответ:
На самом деле я рассматривал реализацию этой же функциональности, то есть создание пользовательского предпочтения, требующего разблокировки устройства или нет.
Однако, глядя на api
Https://developer.android.com/reference/android/nfc/cardemulation/HostApduService.html
На данный момент времени, похоже, нет подходящего вызова для изменения значения "requireDeviceUnlock", установленного в apduservice приложений.XML-файл.
Надеюсь, что это изменится в будущем. будущее.
Однако можно установить значение false, а затем в реализации apduservice проверить параметр sharedpreference, чтобы увидеть, что пользователь указал, а затем принять/отклонить ваш процесс оттуда.