gpt4 book ai didi

android - 以编程方式强制关闭应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:56 24 4
gpt4 key购买 nike

我需要制作一个可以以编程方式执行强制停止按钮对应用程序执行的操作的应用程序。 (我正在使用 root 权限)

ScreenShot

我试过这段代码:

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 以编程方式执行应用信息中的强制停止按钮的操作?

最佳答案

我找到了一个解决方案:

Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());

os.writeBytes("adb shell" + "\n");

os.flush();

os.writeBytes("am force-stop com.xxxxxx" + "\n");

os.flush();

其中com.xxxxxx是强制停止应用程序的包名。

关于android - 以编程方式强制关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26186059/

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