我需要制作一个应用程序,该程序可以通过程序以做什么强制停止按钮对应用程序起作用。 (我用根权限)强制以编程方式关闭应用程序
我曾尝试这样的代码:
private void killApp(){
try {
int pid = getPid(com.XXX);
if(pid != -1){
String command = "kill "+pid;
Log.i("Got PID",pid + "");
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes(command + "\n");
os.flush();
Log.i("Executed","Kill " + pid);
} catch (IOException e) {
// Handle error
}
} else {
Log.i("Not Found","App Not Found");
}
} catch (Exception e) {
e.printStackTrace(); // Device not rooted!
}
}
private int getPid(String packageName){
ActivityManager am = (ActivityManager)getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> pids = am.getRunningAppProcesses();
int processid = 0;
for(int i = 0; i < pids.size(); i++) {
ActivityManager.RunningAppProcessInfo info = pids.get(i);
Log.i("PID",pids.get(i) + "");
Log.i("PID Package",info.processName);
if(info.processName.equalsIgnoreCase(packageName)){
processid = info.pid;
return processid;
}
}
return -1;
}
但问题是,这一进程没有找到,即使强行停止按钮不是呈灰色。
即使使用:
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
os.writeBytes("kill "+ APP_PID + "\n");
os.flush();
没有做什么力停止按钮不会因为后,我执行这个代码的力停止按钮不变灰。
使用root我怎样才能以编程方式执行应用程序信息中的强制停止按钮?
你有没有针对非root的解决方案? – 2017-12-17 21:04:21