我正在Android上开发看门狗系统服务。 如果我检测到某些前台应用被阻止/停止,我想强制重启该应用。
我已经尝试杀死后台应用程序,但没有成功(因为我正试图杀死前台应用程序)。 同样,通过exec(adb shell su killall com.package.name)崩溃也没有权限,因为我是“公正”系统,而不是根目录设备。
答案 0 :(得分:0)
终于有办法了。
您可以通过以下方式获取pid名称
private int getAppUid(String packageName){
ActivityManager mActivityManager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pidsTask = mActivityManager.getRunningAppProcesses();
for(int i = 0; i < pidsTask.size(); i++) {
if (pidsTask.get(i).processName.equals(packageName)){
return pidsTask.get(i).uid;
}
}
return -1;
}
在那之后,你可以用
杀死它android.os.Process.killProcess(pUID);
适用于我的android 7设备。