на самом деле можно перейти прямо к экрану администратора, но я не уверен, насколько это безопасно, так как сам API недоступен, а пути могут меняться в разных версиях Android и ромах.
вот что я тестировал:
это перейдет непосредственно к экрану активации/деактивации выбранного вами приложения:
final Intent intent=new Intent();
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.DeviceAdminAdd"));
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,componentName);
activity.startActivity(intent);
это попадет в список приложений администратора:
final Intent intent=new Intent();
intent.setComponent(new ComponentName("com.android.settings","com.android.settings.DeviceAdminSettings"));
activity.startActivity(intent);
если у кого-то есть более официальный и безопасный способ сделать это, пожалуйста, напишите.
это довольно рискованно, поэтому вы можете сначала использовать этот метод:
Intent intent=new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
final PackageManager packageManager=context.getPackageManager();
final List<ResolveInfo> resolveInfos=packageManager.queryIntentActivities(intent,0);
if(resolveInfos!=null&&!resolveInfos.isEmpty())
try
{
final ResolveInfo resolveInfo=resolveInfos.get(0);
intent=new Intent();
intent.setComponent(new ComponentName(resolveInfo.activityInfo.packageName,resolveInfo.activityInfo.name));
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,componentNameResult);
context.startActivity(intent);
return true;
}
catch(final Exception e)
{}
вы можете добавить try-catch для каждого из методов, и если все не удалось, используйте:
final Intent intent=new Intent(Settings.ACTION_SECURITY_SETTINGS);
activity.startActivity(intent);
person
android developer
schedule
07.01.2014