Android下读取dev下的设备文件
最近的项目需要在一般的手机上使用游戏手柄,所以需要写一个驱动,但是不知道怎么从dev下读取设备文件。现在遇到的问题就是读不到数据。
Process process = Runtime.getRuntime().exec("su");
这样做了之后可以拿到手机上的root权限,但是还是不能读dev下的文件。
也尝试过使用NDK的方式,但是NDK下不知道怎么提高权限,求大神指教,给点思路。
也在shell下将usb文件夹chmod 777,但是还是不行。。。。 --------------------编程问答-------------------- 楼主这样写:
//获得root权限
String command = "chmod -R 777 /dev";
try {
Process process = Runtime.getRuntime().exec(new String[] {"su", "-c", command});
process.waitFor();
} catch(IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
其实只要加入-R就可以,这个表示/dev下的都改变权限,加入异常更严谨,我在工程中用过,保证没问题,但是,必须强调的是,这个修改是一次性的,比如说你插上U盘,执行这段代码,就改变权限了,但是再拔了,再插,这个时候dev/bus/usb下的文件就没有root权限了,请楼主注意 --------------------编程问答-------------------- 现在是能读取设备了,可新的问题又出现了,我用读文件的方式读设备:
String fileName = "/dev/usb/input1-1.2";
String res="";
FileInputStream fin;
fin = new FileInputStream(fileName);
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
fin.close();
tv.setText(res);
但是一直是IOException....应该怎么解决? --------------------编程问答-------------------- 这个我就不清楚了,楼主看看日志,如果异常是我给你的那部分代码造成的话,就说明我的方法有问题,但是我用了很多次了,本人是搞usb的,从来没异常过 --------------------编程问答-------------------- 可以的,我尝试过这种过程,应该没有问题的!!尝试着获取ROOT权限吧!! --------------------编程问答-------------------- 我想读的设备是摇杆,尝试过jni读数据,和java直接读文件,手机也是root过的,把dev的权限也设置为777,在adb下不用root就能cat出数据,但就是读不出来数据。。。。。都要被折腾疯了。。。 --------------------编程问答-------------------- 现在我插上摇杆,dev/input和dev/usb下都能读到设备,应该是读哪一个? --------------------编程问答-------------------- 建议楼主用eclipse的DDMS看看你的摇杆文件到底在哪个目录下,那个能显示出来 --------------------编程问答-------------------- Mike_IoT,
你IOException问题如何解决的?能否共享下?
补充:移动开发 , Android