UPDATE3:我正在尝试从/dev/input/eventX
文件中读取内容。当我读取此文件的内容时,我在TextView中看到特殊字符。我希望看到二进制(1和0)。不幸的是还有麻烦。任何帮助将非常感谢!
摘要:我正在尝试阅读Android OS 4.4(KitKat)中的/dev/input/event1
。然后我想在GUI上的TextView中显示这些数据。
注意:的
我知道我需要获得该文件的权限。虽然我现在还没有在代码中编写它(为简单起见),但我已成功通过终端(chmod 666
)获得了该文件的权限。
MainActivity:我调用该函数来读取我的文件,然后在TextView中更新结果。
public class MainActivity extends AppCompatActivity {
...
protected void onCreate(Bundle savedInstanceState) {
...
runThread();
}
private void runThread() {
new Thread() {
public void run() {
while (true) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
getEvent.readEvent();
result = getEvent.logGetEventData();
textView.setText(getString(R.string.result_display,
result));
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
}
GetEvent:我获得root权限并在此处阅读我的文件。
public class GetEvent {
private File file = new File("/dev/input/event1");
public void readEvent() {
{
try {
mProcess = Runtime.getRuntime().exec("su");
fin = new FileInputStream(file);
fin.read(bytes);
s = new String(bytes);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
finally {
try {
if (fin != null) {
fin.close();
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
}
public String logGetEventData() {
retour = s;
return (retour);
}
}