ADB: получать уведомления в `DeviceAdminReceiver # onProfileProvisioningComplete` - PullRequest
0 голосов
/ 11 июня 2019

Я хочу подготовить свое приложение для киоска (для устройства COSU), используя adb, и получаю уведомление в методе onProfileProvisioningComplete, который я переопределяю в своем Reciever, который расширяет DeviceAdminReceiver.

системы, с которой мне удалосьпервая часть - установив владельца устройства с помощью abd и запустив мою активность, которая входит в режим блокировки задач. Тем не менее, я получил код конфигурации для моего приложения в onProfileProvisioningComplete - я прочитал содержимое записи android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE в Intent подготовки Intent.

Проблема в том, что метод не вызываетсяпосле установки владельца устройства со следующим

adb shell dpm set-device-owner my.package/.extends.device.AdminReceiver

Итак, я попытался отправить широковещательную рассылку с действием android.app.action.PROFILE_PROVISIONING_COMPLETE и поместил несколько пар ключ-значение в Intent:

adb shell am broadcast -a android.app.action.PROFILE_PROVISIONING_COMPLETE -e my_key my_value

Но получил следующее:

Permission Denial: broadcasting Intent { act=android.app.action.PROFILE_PROVISIONING_COMPLETE flg=0x400010 cmp=my.package/.extends.device.AdminReceiver (has extras) } from null (pid=4726, uid=2000) requires android.permission.BIND_DEVICE_ADMIN due to receiver my.package/.extends.device.AdminReceiver

Я пытался предоставить разрешение:

adb shell pm grant package android.permission.BIND_DEVICE_ADMIN

Но получил

Operation not allowed: java.lang.SecurityException: Package my.package has not requested permission android.permission.BIND_DEVICE_ADMIN

Очевидно, мое приложение не запрашивает разрешение- мой приемник делает.Однако, когда я попытался указать получателя как my.package/.extends.device.AdminReceiver в приведенной выше команде, это не сработало - я получил Bad argument.

Итак, я попытался поднять разрешение от получателя до уровня приложения.(через uses-permission).Также не сработало.

С этим фоном, как заставить мой код получать трансляцию android.app.action.PROFILE_PROVISIONING_COMPLETE, которую я отправляю с использованием adb?Возможно ли это даже через adb?

...