我是靠谱客的博主 时尚手机,最近开发中收集的这篇文章主要介绍Android 应用程序查找设备的方法——以串口为例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 应用程序查找设备的方法——以串口为例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部