当前位置:编程学习 > wap >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,