使用android代码运行adb shell命令

时间:2013-05-22 09:05:26

标签: android shell adb android-notifications led

echo 0 > /sys/class/leds/button-backlight/brightness

以上命令通过adb shell完美运行。但是当我尝试运行我的代码时没有任何效果。这是我的代码。

Process mSuProcess;
mSuProcess = Runtime.getRuntime().exec("su"); 
DataOutputStream mSuDataOutputStream = new DataOutputStream(mSuProcess.getOutputStream()); 
mSuDataOutputStream.writeBytes("echo 0 > /sys/class/leds/button-backlight/brightness \n");
mSuDataOutputStream.flush();
mSuDataOutputStream.close();

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

如果您正在使用的设备未植根,则可能无效..

答案 1 :(得分:1)

Google原始su二进制文件检查UID,仅在rootshell用户运行时才有效。这就是当您以交互方式从adb shell运行命令时它的工作原理。要从Java应用程序运行此代码,您需要使用修补的su二进制文件 - 不进行UID检查。