gpt4 book ai didi

android - 以编程方式停用 Android 中的设备管理员?

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:41 26 4
gpt4 key购买 nike

是否可以通过编程方式停用(第三方)Device Administrator应用程序?

我能够使用 DevicePolicyManager 激活设备管理员来检索所有应用程序和 getActiveAdmins() :

final DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
final List<ComponentName> adminList = dpm.getActiveAdmins();

for ( ComponentName app : adminList ) {
Log.d(TAG, "App: ", app.getPackageName());
}

但是,为了停用它们,我不能使用 removeActiveAdmin(...) ,因为它不会删除不是我自己的应用程序的组件。

我正在考虑使用 IntentstartActivity()为了打开我要停用的特定组件的设备管理员停用页面。可能吗?

最佳答案

实际上,可以直接进入管理屏幕,但我不确定它有多安全,因为 API 本身不可用,并且路径可能会随着不同的 android 版本和 rom 而改变。

这是我测试过的:

这将直接转到您选择的应用程序的激活/停用屏幕:

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);

关于android - 以编程方式停用 Android 中的设备管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19908226/

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