gpt4 book ai didi

Android 设备管理员/配置文件所有者

转载 作者:行者123 更新时间:2023-11-29 01:09:46 25 4
gpt4 key购买 nike

我想知道设备管理员和配置文件所有者是如何工作的。我遵循了谷歌网站上的一些示例,但我仍然不太了解配置文件所有者的工作原理。

为了对此进行测试,我构建了一个示例应用程序,它会要求用户接受配置文件所有者,然后在没有用户交互的情况下安装证书。

应个人资料所有者的要求,我在我的 Activity 中这样做了:

Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, getApplicationContext().getPackageName());
startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE);

在我的接收器上有这样的东西:

@Override
public void onProfileProvisioningComplete(Context context, Intent intent) {
// Enable the profile
DevicePolicyManager manager =
(DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
ComponentName componentName = getComponentName(context);
manager.setProfileName(componentName, context.getString(R.string.profile_name));

// If I do not do this, the application will not enter in profile mode, and I don't know why
Intent launch = new Intent(context, MainActivity.class);
launch.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(launch);
}

在这里我不知道为什么我需要重新启动应用程序才能进入配置文件所有者模式。虽然,当我让配置文件所有者工作并关闭应用程序并再次启动它时,我不会恢复配置文件所有者模式。

我通过在应用程序 OnCreate() 方法上执行类似的操作来检查配置文件所有者模式是否处于 Activity 状态:

  if (!mDeviceController.isProfileActive()) {
Log.i("DeviceAdminSample", "Profile is disabled!!!!!");
}

为什么当我重新启动应用程序时配置文件所有者被禁用?有什么方法可以避免用户每次打开应用程序时都启用配置文件所有者模式?

此外,如果我使用这种机制安装证书,其他应用程序仍然可以使用该证书,或者该证书仅适用于创建的配置文件?

最佳答案

看来你失踪了:

manager.setProfileEnabled(componentName);

我建议仔细查看下面的一些示例。我不确定 isProfileActive() 做了什么。我会使用:

manager.isProfileOwnerApp(getApplicationContext().getPackage())

当您创建受管理的个人资料时,受管理的个人资料的应用和数据与创建受管理的个人资料的用户的应用/数据是分开的(在大多数情况下,个人与工作)。如果您从原始用户的上下文中打开您的应用程序,它将再次尝试设置工作资料。要将您的应用程序视为配置文件所有者,您需要在托管配置文件的上下文中打开它(您的应用程序将是“徽章”,上面有一个小公文包)。此外,您的证书等数据将仅限于您的托管个人资料。

一个很好的初始示例: https://github.com/googlesamples/android-BasicManagedProfile

一个更复杂但更完整的示例。它可以配置为设备所有者或配置文件所有者: https://github.com/googlesamples/android-testdpc

关于Android 设备管理员/配置文件所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com