【问题标题】:Android SecurityException: Admin does not own the profileAndroid SecurityException:管理员不拥有配置文件
【发布时间】:2015-06-03 11:28:56
【问题描述】:

我有一个设备管理器应用程序,我正在尝试使用自 API 21 以来可用的 DevicePolicyManager 类的 setScreenCaptureDisabled(..) 函数。

DevicePolicyManager pManager = (android.app.admin.DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
pManager.setScreenCaptureDisabled(admin.getReceiverName(), true);

我收到以下错误:

03-30 13:50:24.623: E/AndroidRuntime(11564): 
java.lang.SecurityException: Admin 
ComponentInfo{com.example.xxv/com.example.xxv.DeviceAdminReceiver} 
does not own the profile

知道如何解决这个问题吗?

如果需要任何许可,请指出是什么。

【问题讨论】:

    标签: android android-activity android-5.0-lollipop android-securityexception


    【解决方案1】:

    您的应用需要成为设备所有者或个人资料所有者。对一台设备执行此操作的最简单方法是在此处使用 adb:

    http://florent-dupont.blogspot.co.uk/2015/01/android-shell-command-dpm-device-policy.html

    基本上来自命令提示符

    adb shell 
    dpm set-device-owner com.foo.deviceowner/.DeviceAdminRcvr
    

    其中com.foo.deviceowner 是您的应用程序包,DeviceAdminRcvr 是您的程序包中的DeviceAdminReceiver。请注意,除非您已从设备中删除所有帐户,否则您将收到 java.lang.IllegalStateException (Settings > Accounts)。

    另一种方法是创建一个 NFC 配置应用程序:

    https://source.android.com/devices/tech/admin/provision.html

    【讨论】:

    • 我们可以以编程方式执行 'dpm set-device-owner' 命令吗...?
    • @Dhruv 不,你不能。您只能通过 adb 管理设备(通过 usb 或 nfc)。
    【解决方案2】:

    我认为您需要使用此代码设置配置文件

    Intent intent = new Intent(**ACTION_PROVISION_MANAGED_PROFILE**);
    intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
    activity.getApplicationContext().getPackageName());
    if (intent.resolveActivity(activity.getPackageManager()) != null) {
        startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE);
        activity.finish();
    } else {
        Toast.makeText(activity, "Stopping.",Toast.LENGTH_SHORT).show();
    }
    

    【讨论】:

      【解决方案3】:

      您是否正确注册为DeviceAdminReceiver

      根据 Android 文档HERE,调用设备管理员必须是设备或配置文件所有者。如果不是,则会引发安全异常。

      从日志中可以清楚地看出,您并不拥有个人资料!

      【讨论】:

      • @AshokBijoyDebnath 你有没有找到这个答案?如何拥有个人资料?
      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 2019-11-07
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多