开发项目中经常会遇到很多手机厂商制造的麻烦.如涉及权限,程序授权(受信任应用),或service自启动管理等.由于android手机种类繁多,厂商自制系统各自为王.弄得我们有时不得不针对固定的厂商或机型做定制开发.
本文就提供一种靠adb命令获取手机当前activity的方法!
1.首先 要配置adb环境变量 这里就不多说了,自己百度就好了,非常简单!
2.配置好环境变量后,就可以运用adb 命令了.
以OPPO r9S获取自启动管理界面为例:
将手机调好到指定界面后:打开cmd 输入
1) adb devices //查看链接设备
adb shell dumpsys activity top //获取栈顶activity
![Q%T]TN0RQ0X{@GP~TVZFG.png](http://upload-images.jianshu.io/upload_images/3995903-d4895ea759168dc6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2) 1.cmd命令中输入:adb shell 进入shell命令模式
2.shell中输入:logcat | grep ActivityManager 真机运行应用,可以实时 查看当前正在运行的Activity;
或者也可以用第二种方法.
至于用那种,看界面吧,这里第二种就不贴图了.读者自己去尝试吧!
补充:已测试手机(为service开启自启动或设置受保护程序);
Intent intent3 = new Intent();
intent3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName comp = null;
if (brand.equals("Huawei")) {//华为
comp = ComponentName
.unflattenFromString("com.huawei.systemmanager/.optimize.process.ProtectActivity");//设置管用,而且通知栏有通知
intent3.setComponent(comp);
startActivity(intent3);
} else if (brand.equals("Xiaomi")) {//小米
comp = ComponentName
.unflattenFromString("com.miui.securitycenter/com.miui.permcenter.autostart.AutoStartManagementActivity");
intent3.setComponent(comp);
startActivity(intent3);
} else if (brand.equals("vivo")) {//vivo
comp = ComponentName
.unflattenFromString("com.iqoo.secure/.ui.phoneoptimize.AddWhiteListActivity");
intent3.setComponent(comp);
startActivity(intent3);
} else if (brand.equals("OPPO")) {//oppo
comp = ComponentName
.unflattenFromString("com.coloros.safecenter/.startupapp.StartupAppListActivity");
intent3.setComponent(comp);
startActivity(intent3);
}else if (brand.equals("LeEco")) {//乐视
comp = ComponentName
.unflattenFromString("com.letv.android.letvsafe/.BackgroundAppManageActivity");
intent3.setComponent(comp);
startActivity(intent3);
}else if (brand.equals("HONOR")) {//荣耀畅玩5A
comp = ComponentName
.unflattenFromString("com.huawei.systemmanager/.optimize.process.ProtectActivity");
intent3.setComponent(comp);
startActivity(intent3);
}else{
//以测魅族走这个
Intent intent = new Intent(Settings.ACTION_SETTINGS);
startActivity(intent);
}