我在Android中执行shell getevent在发现获取数据时有延迟哪位伙伴知道怎么解决吗?
这里是执行代码
try {
Process process = Runtime.getRuntime().exec("su \n");
dataOutputStream = new DataOutputStream(process.getOutputStream());
dataOutputStream.writeBytes("getevent -l /dev/input/event3 \n");
dataOutputStream.flush();
dataOutputStream.close();
dataOutputStream = null;
inputStream = process.getInputStream();
int c;
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((c = inputStream.read()) != -1) {
stringBuilder.append((char)c);
if ('\n' == c) {
line = stringBuilder.toString();
stringBuilder.setLength(0);
Log.i(MainActivity.LOG_TAG, String.format("输出:%s", line));
}
}
process.waitFor();
Log.i(MainActivity.LOG_TAG, "监听触点结束");
} catch (Exception e) {
e.printStackTrace();
}
这是单击模拟器后的执行结果:
上图是点击模拟器后控制台的执行情况,可以看到Logcat没有输出但是terminal是有输出的。