这个“供应商应用程序”是什么样的应用程序?
配置提供程序应用程序是在设备上运行的另一个应用程序。此应用程序通常由管理员控制。管理员将配置更改传达给提供者应用程序,而此应用程序反过来更改托管应用程序上的配置。
查看 BasicManagedProfile 示例:https ://github.com/googlesamples/android-BasicManagedProfile 。这正是这种应用程序。
这个应用程序是否应该实现任何 Android API 以充当配置提供者?
是的,此应用应要求配置托管配置文件:
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, "Device provisioning is not enabled. Stopping.",
Toast.LENGTH_SHORT).show();
}
这个配套应用程序如何将配置更改挂钩到 RestrictionsManager,以便托管应用程序能够检索它们?
它使用 DevicePolicyManager 对托管应用实施限制:
DevicePolicyManager manager = (DevicePolicyManager) getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE);
Bundle settings = new Bundle();
settings.putBoolean("downloadOnCellular", true);
manager.setApplicationRestrictions(
BasicDeviceAdminReceiver.getComponentName(getActivity()),
PACKAGE_NAME_MANAGED_APP, settings);
再次,看看在示例项目中这是如何完成的。