Я пытаюсь узнать, как работает администратор устройства и владелец профиля. Я следовал некоторым примерам с сайта Google, но до сих пор не совсем понимаю, как работает владелец профиля.
Чтобы проверить это, я создал образец приложения, которое попросит пользователя принять владельца профиля, а затем установит сертификат без взаимодействия с пользователем.
По просьбе владельца профиля я проделал это со своей активностью:
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 ():
if (!mDeviceController.isProfileActive()) {
Log.i("DeviceAdminSample", "Profile is disabled!!!!!");
}
Почему владелец профиля отключен, когда я перезапускаю приложение? Есть ли способ избежать включения пользователем режима владельца профиля каждый раз, когда он открывает приложение?
Кроме того, если я установлю сертификат с этим механизмом, другие приложения все равно смогут использовать этот сертификат, или сертификат будет работать только для созданного профиля?