ADB:在DeviceAdminReceiver#onProfileProvisioningComplete中得到通知

问题描述 投票:0回答:1

我想使用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吗?

android broadcastreceiver adb android-broadcast
1个回答
0
投票

有人解决了这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.