我想使用adb
设置我的自助服务终端应用程序(用于COSU设备),并在onProfileProvisioningComplete
方法中得到通知,该方法在扩展系统DeviceAdminReceiver
的接收器中被覆盖。
我成功完成了第一部分-通过使用abd
设置设备所有者并开始进入锁定任务模式的活动。 但是,我在onProfileProvisioningComplete
中获得了应用程序的配置代码-我在此处读取了供应意图的android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE
条目的内容。
问题是,使用以下方法设置设备所有者后未调用该方法
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
吗?
有人解决了这个问题吗?