DevicePolicyManager引发SecurityException

问题描述

我正在使用Samsung Knox和设备管理来创建应用程序。 我正在尝试禁用键盘锁,但消息不断出现SecurityException:

Admin ComponentInfo{com.samsung.safedrive/com.samsung.safedrive.data.receiver.AdminReceiver} does not own the profile

请求管理员权限

        override fun requestAdminRights() {
        val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
        val deviceAdminReceiver = ComponentName(this,AdminReceiver::class.java)
        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,deviceAdminReceiver)
        intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,packageName)
        startActivityForResult(intent,ADMIN_RIGHTS_REQUEST_CODE)
    }

使用政策

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <disable-keyguard-features />
        <force-lock />
    </uses-policies>
</device-admin>

DeviceAdminReceiver

class AdminReceiver: DeviceAdminReceiver() {

    override fun onEnabled(context: Context,intent: Intent) {
        super.onEnabled(context,intent)

        val devicePolicyManager = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
        val componentName = ComponentName(context,AdminReceiver::class.java)
        devicePolicyManager.setKeyguarddisabled(componentName,true)
    }

    override fun ondisabled(context: Context,intent: Intent) {
        super.ondisabled(context,intent)
    }
}

清单

<receiver
            android:name=".data.receiver.AdminReceiver"
            android:description="@string/enterprise_device_admin_description"
            android:label="@string/app_name"
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <Meta-data
                android:name="android.app.device_admin"
                android:resource="@xml/device_admin_receiver" />
            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>
***

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)