Метод PackageInstaller.uninstall () не работает в Android -TV (окно настройки) - PullRequest
2 голосов
/ 24 февраля 2020

Для блока установки, работающего на Android (Q), мы хотим, чтобы приложение, находящееся в разделе /priv-app/, могло автоматически удалять пакеты без вмешательства пользователя.

У меня есть root доступ к Устройство. Приложение имеет разрешения android.permission.INSTALL_PACKAGES и android.permission.DELETE_PACKAGES, объявленные в манифесте. Когда тот же код запускается на Android телефонах / эмуляторах с доступом root, он может удалить приложение с устройства (когда приложение сделано как владелец устройства).

Но в случае Android -TV, нет положения / раздела для включения приложений администратора устройства, и если я пытаюсь включить его с помощью строки adb shell dpm set-device-owner com.tvdevice.deviceadminapp/.DevAdminReceiver, он выдает ошибку

java.lang.RuntimeException: Can't set package ComponentInfo{com.tvdevice.deviceadminapp/com.tvdevice.deviceadminapp.DevAdminReceiver} as device owner.
        at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:177)
        at com.android.commands.dpm.Dpm.onRun(Dpm.java:106)
        at com.android.internal.os.BaseCommand.run(BaseCommand.java:54)
        at com.android.commands.dpm.Dpm.main(Dpm.java:41)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:340)

Так что в качестве обходного пути я непосредственно отредактировал xml файлы device_owner_2.xml и device_policies.xml на /data/system/ для включения моего приложения в качестве владельца устройства, но все равно не удается удалить приложение, установленное из какого-либо другого пакета (например: com.android.vending, установщик пакета для приложений) установлен из игры).

Примечание. Приложение может удалить установленные им пакеты (для которых текущее приложение установщик пакета ), но для установленных приложений происходит сбой. из других источников.

Есть ли способ сделать, если работает? Пожалуйста, помогите.

...