概述
Android 应用程序要经常访问底层设备,访问设备就要用到设备文件描述符,在应用 open ()函数打开设备前,需要先找到设备的路径,因此我们需要通过 JDK 中各种访问文件的方法来查找到设备的路径。这里以串口设备的查找为例,分析一下 Android 应用程序查找设备路径的过程:
1. 查找设备驱动
这是查找串口驱动的源码程序:
private Vector<Driver> mDrivers = null ;
Vector<Driver> getDrivers() throws IOException {
if ( mDrivers == null ) {
mDrivers = new Vector<Driver>();
LineNumberReader r = new LineNumberReader(new FileReader("/proc/tty/drivers"));
String l;
while ((l = r.readLine()) != null ) {
String[] w = l.split( " +" );
if ((w. length == 5) && (w[4].equals( "serial" ))) {
Log.d( TAG , "Found new driver: " + w[1]);
mDrivers .add( new Driver(w[0], w[1]));
}
}
r.close();
}
return mDrivers ;
}
该步骤先创建一个新的行号阅读器 LineNumberReader ,读取 /proc/tty/drivers 文件,我在开发板上摘取 /proc/tty/drivers 的文件内容如下:
# cat drivers
/dev/tty /dev/tty 5 0 system:/dev/tty
/dev/console /dev/console 5 1 system:console
/dev/ptmx /dev/ptmx 5 2 system
/dev/vc/0 /dev/vc/0 4 0 system:vtmaster
sdio_uart /dev/ttySDIO 250 0-7 serial
usbserial /dev/ttyUSB 188 0-253 serial
ttySAC /dev/s3c2410_serial 204 64-67 serial
serial /dev/ttyS 4 64-67 serial
pty_slave /dev/pts 136 0-1048575 pty:slave
pty_master /dev/ptm 128 0-1048575 pty:master
pty_slave /dev/ttyp 3 0-255 pty:slave
pty_master /dev/pty 2 0-255 pty:master
unknown /dev/tty 4 1-63 console
然后,逐行读取,取出满足条件的行,添加到驱动队列中。
2. 查找设备
这是查找串口设备的源码程序:
Vector<File> mDevices = null ;
public Vector<File> getDevices() {
if ( mDevices == null ) {
mDevices = new Vector<File>();
File dev = new File( "/dev" );
File[] files = dev.listFiles();
int i;
for (i=0; i<files. length ; i++) {
if ( files[i].getAbsolutePath().startsWith(mDeviceRoot) ) {
Log.d( TAG , "Found new device: " + files[i]);
mDevices .add(files[i]);
}
}
}
return mDevices ;
}
在找到驱动后,就要查找符合驱动的设备,本段程序实现在 "/dev" 文件下查找串口驱动的设备,这里 mDeviceRoot 是 /dev/ttySDIO 、 /dev/ttyUSB 、 /dev/s3c2410_serial 和 /dev/ttyS 。
下面是开发板上的 "/dev" 文件部分内容:
# cd /dev
# ls
:
:
s3c-pp
s3c-rotator
s3c2410_serial0
s3c2410_serial1
s3c2410_serial2
s3c2410_serial3
snd
socket
:
:
ttyS0
ttyS1
ttyS2
ttyS3
:
:
通过这个方法的实现,便可以查找到串口设备的路径。
最后
以上就是时尚手机为你收集整理的Android 应用程序查找设备的方法——以串口为例的全部内容,希望文章能够帮你解决Android 应用程序查找设备的方法——以串口为例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复