【问题标题】:Why can't I create a restricted profile when an owner device app is set?为什么在设置所有者设备应用程序时无法创建受限配置文件?
【发布时间】:2015-01-13 20:34:15
【问题描述】:

我最近注意到,当设置设备所有者应用程序时,无法创建受限配置文件。

第一种情况:当我的设备所有者应用未设置时。
设置>用户:我可以“添加用户或个人资料”,然后在用户受限个人资料之间进行选择em>。

第二种情况:当我的设备所有者应用设置时。
Settings>Users :我只能“添加用户”,然后我得到确认以创建新用户。在第二种情况下,无法创建受限配置文件。

我想知道为什么它在这种情况下不可用,以及如何在这种情况下创建受限配置文件?
我的问题的第二部分是:如何使用现有的DevicePolicyManager API 以编程方式创建受限配置文件或等效行为(据我所知,没有公共 API 可以创建受限配置文件)?

更新: 我制作了一个示例应用程序来说明这一点。它可以在Github 上找到。

复制步骤

  • 编译应用程序
  • 将应用程序上传到您的设备
  • 使用 dpm 命令行工具将应用程序设置为设备所有者:adb shell dpm set-device-owner com.mytest.minimalistdeviceowner/.DeviceAdminRcvr
  • 检查配置文件的创建在设置>用户中是否可用
  • 在应用中点击“取消设置设备所有者”,取消将应用设置为设备所有者。
  • 在设置>用户中检查创建现在是否可用

【问题讨论】:

  • 我被否决了。也许是因为不清楚如何重现这一点。我在 github 上添加了一个示例应用程序并更新了问题以添加重现此行为的步骤。

标签: android android-5.0-lollipop device-policy-manager device-owner


【解决方案1】:

受限配置文件不适用于拥有设备所有者的平板电脑或手机。它显示在设置应用程序源代码中,可用here

DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
                Context.DEVICE_POLICY_SERVICE);
// No restricted profiles for tablets with a device owner, or phones.
if (dpm.getDeviceOwner() != null || Utils.isVoiceCapable(context)) {
    mCanAddRestrictedProfile = false;
    mAddUser.setTitle(R.string.user_add_user_menu);
}

所以这不是错误,而是功能。它可能已禁用以避免干扰您的设备所有者应用程序。 您应该意识到这一点,并且因为您对您的设备所有者应用程序拥有更多权力,这意味着您必须自己限制您的用户使用此设备所有者应用程序。

为此,您可以使用通过 DevicePolicyManager.addUserRestriction()DevicePolicyManager.setGlobalSetting()DevicePolicyManager.setSecureSetting() 提供的所有限制 API 来配置设置,还可以使用 DevicePolicyManager.setApplicationHidden() 来限制用户的应用程序访问。

【讨论】:

    【解决方案2】:

    为什么我不能在所有者设备应用程序运行时创建受限配置文件 设置好了吗?

    可能是因为设备所有者应用已经管理了配置文件。我想在不绕过设备所有者应用限制的情况下这样做会更容易。

    如何以编程方式创建受限配置文件?

    DevicePolicyManager.createAndInitializeUser() 方法可用于创建托管配置文件。无法直接在设置中管理此配置文件,但设备所有者应用可以访问几乎相同的功能。

    我找不到的一项功能是能够共享从所有者配置文件到托管应用程序的应用程序。

    【讨论】:

    • 脚注:当 API 24 出来时,DevicePolicyManager.createAndInitializeUser() 被删除。它已被DevicePolicyManager.createAndManageUser() 取代。
    猜你喜欢
    • 2020-11-24
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 2017-09-06
    • 2014-05-04
    • 1970-01-01
    • 2014-04-04
    • 2021-02-05
    相关资源
    最近更新 更多