如何从Android代码中运行adb shell命令?

13

我想从Java代码中运行这些命令:

adb shell settings put secure location_providers_allowed gps, wifi,network 

a broadcast -a android.location.GPS_ENABLED_CHANGE --ez enabled true
请帮我学习如何从Android代码中运行。


所以你想要运行Shell命令? - Behnam
是的,我想运行shell命令来启用GPS。 - Getaw Dejen
2个回答

9
您可以使用此方法来运行命令。
private void runShellCommand(String command) throws Exception {
    Process process = Runtime.getRuntime().exec(command);
    process.waitFor();
}

11
这个错误信息 "java.io.IOException: Cannot run program "adb": error=13, Permission denied" 的意思是无法运行程序 "adb",因为权限不足。 - Hai Hw
2
@HaiHw,你解决过那个IO异常吗?我也遇到了同样的问题。 - Eugenio Lopez
@EugenioLopez 我认为需要root过的设备才能运行。 - Hai Hw
没有越狱的设备不会解决问题 @Eugenio Lopez - Ramandeep Singh
@HaiHw 只需编写命令本身:例如,使用“settings put secure location_providers_allowed”而不是“adb shell settings put secure location_providers_allowed...” - Mostafa Imani

4

好的,您将需要使用Runtime类。执行shell命令的教程可以在这里找到。如果需要快速回答,请尝试以下方法:

String commandToRun = "adb shell settings put secure location_providers_allowed gps, wifi,network a broadcast -a android.location.GPS_ENABLED_CHANGE --ez enabled true";
Runtime.getRuntime().exec(commandToRun);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接