[问题] 用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