我想在应用程序运行时生成一个文件,因此我的计算机可以及时监控我的应用程序状态(手机始终通过USB连接)。
有没有让adb和app指向同一个目录?
另外,如果还有其他方法可以让android与计算机通信,请告诉我。
我试过的方法:
起初,我虽然
echo $EXTERNAL_STORAGE
和
Environment.getExternalStorageDirectory()
会返回相同的值。
值adb shell返回:
/storage/emulated/legacy
但是,在程序中调用Environment.getExternalStorageDirectory()的结果是:
/storage/emulated/0
然后,我制作android run shell命令
Process su = Runtime.getRuntime().exec("echo $EXTERNAL_STORAGE");
//also tried "echo \\$EXTERNAL_STORAGE"
su.waitFor();
in = su.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = reader.readLine())!= null){
result = result + line + "\n";
}
reader.close();
in.close();
su.destroy();
return result;
但它返回空字符串。
答案 0 :(得分:1)
echo
不是单独的可执行文件,而是shell
的内置命令。
使用Runtime.getRuntime().exec("sh -c 'echo $EXTERNAL_STORAGE'");
代替
答案 1 :(得分:1)
最后,我通过以下命令得到了值。
Runtime.getRuntime().exec(new String[] { "sh", "-c", "echo $EXTERNAL_STORAGE" });
感谢Alex P.鼓舞我。