【发布时间】:2018-01-14 20:27:15
【问题描述】:
我正在通过设备管理 api 工作,并且在调用 DevicePolicyManager 上的 setPermissionGrantState 函数时,我得到了
Unable to start receiver com.xx.admin.receivers.AdminReceiver: java.lang.SecurityException: Admin ComponentInfo{com.xx/com.xx.admin.receivers.AdminReceiver} does not own the profile.
我了解某些功能只能由设备/配置文件所有者运行。此外,NFC provisioning and dpm command 是通过它的方式。但这几乎不是我分发应用程序时想要进行的方式。有没有什么方法可以通过请求用户允许我的应用程序拥有具有/不具有 root 的个人资料所有权来自动执行此授权。
这是我的接收器
class AdminReceiver : DeviceAdminReceiver() {
var manager: DevicePolicyManager? = null
override fun onEnabled(context: Context?, intent: Intent?) {
super.onEnabled(context, intent)
manager = getManager(context)
manager!!.setPermissionGrantState(getComponentName(context!!)
, "com.abc.app"
, Manifest.permission.WRITE_EXTERNAL_STORAGE
, DevicePolicyManager.PERMISSION_GRANT_STATE_DENIED)
}
fun getComponentName(context: Context): ComponentName {
return ComponentName(context.applicationContext, AdminReceiver::class.java)
}
}
【问题讨论】:
标签: android kotlin device-admin