[問題] 用app 執行底層的 shell command

作者: blueblueChen (藍藍欠)   2016-10-23 16:33:36
今天試了一整天,有點崩潰..開發環境 Android studio 2.1,試了網路上範例
device 是 nexus 6P 安卓7.0
onCreate(){
TextView tex = (TextView)findViewById(R.layout.textView);
try {
execCommand("ls");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void execCommand(String command) throws IOException {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command);
try {
if (proc.waitFor() != 0) {
System.err.println("exit value = " + proc.exitValue());
}
BufferedReader in = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
StringBuffer stringBuffer = new StringBuffer();
String line = null;
while ((line = in.readLine()) != null) {
stringBuffer.append(line+"-");
}
tex.setText(stringBuffer.toString());
} catch (InterruptedException e) {
System.err.println(e);
}
}
他可以印出執行完 "ls"後的字串,並展示在 app 上,其他
cat /proc/sys/net/ipv4/ip_forward 也可以展示出來
作者: ssccg (23)   2016-10-23 16:52:00
你有權限?
作者: blueblueChen (藍藍欠)   2016-10-23 17:06:00
請問您指的權限是?我在AndroidManifest.xml加上<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/> 結果相同...
作者: y3k (激流を制するは静水)   2016-10-23 17:36:00
你沒有用過Linux吧? 第一次的問題是你沒要系統管理員權限第二次是你要了但是拿不到 第三次(你剛剛的推文)是你的系統不給你 簡單講 這種code必須要在"root過"的手機上才能跑
作者: blueblueChen (藍藍欠)   2016-10-23 18:10:00
您好,我聽了各位的話...root nexus 6p 手機然後他就可以了! 只是我很那悶,我在還沒root時就已經看到 system/xbin/su 有這個檔案了,為啥我還需要 root tool??
作者: KeySabre (KeySabreur)   2016-10-23 18:20:00
樓上已經有人說出你該補的觀念囉

Links booklink

Contact Us: admin [ a t ] ucptt.com