/*
* Copyright 2009 Cedric Priscal
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android_serialport_api;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.Iterator;
import java.util.Vector;
import android.util.Log;
public class SerialPortFinder {
public class Driver {
public Driver(String name, String root) {
mDriverName = name;
mDeviceRoot = root;
}
private String mDriverName;
private String mDeviceRoot;
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;
}
public String getName() {
return mDriverName;
}
}
private static final String TAG = "SerialPort";
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) {
// Issue 3:
// Since driver name may contain spaces, we do not extract driver name with split()
String drivername = l.substring(0, 0x15).trim();
String[] w = l.split(" +");
if ((w.length >= 5) && (w[w.length-1].equals("serial"))) {
Log.d(TAG, "Found new driver " + drivername + " on " + w[w.length-4]);
mDrivers.add(new Driver(drivername, w[w.length-4]));
}
}
r.close();
}
return mDrivers;
}
public String[] getAllDevices() {
Vector<String> devices = new Vector<String>();
// Parse each driver
Iterator<Driver> itdriv;
try {
itdriv = getDrivers().iterator();
while(itdriv.hasNext()) {
Driver driver = itdriv.next();
Iterator<File> itdev = driver.getDevices().iterator();
while(itdev.hasNext()) {
String device = itdev.next().getName();
String value = String.format("%s (%s)", device, driver.getName());
devices.add(value);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return devices.toArray(new String[devices.size()]);
}
public String[] getAllDevicesPath() {
Vector<String> devices = new Vector<String>();
// Parse each driver
Iterator<Driver> itdriv;
try {
itdriv = getDrivers().iterator();
while(itdriv.hasNext()) {
Driver driver = itdriv.next();
Iterator<File> itdev = driver.getDevices().iterator();
while(itdev.hasNext()) {
String device = itdev.next().getAbsolutePath();
devices.add(device);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return devices.toArray(new String[devices.size()]);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
android-serialport-api串口通信精简demo
共73个文件
class:30个
java:10个
xml:10个
5星 · 超过95%的资源 需积分: 50 952 下载量 170 浏览量
2014-07-15
13:22:08
上传
评论 19
收藏 149KB ZIP 举报
温馨提示
关于利用android-serialport-api实现在安卓设备上进行串口通信,附精简版demo,亲测可用。符个人博文说明:http://blog.csdn.net/ckw474404603/article/details/37811499
资源推荐
资源详情
资源评论
收起资源包目录
myserial.zip (73个子文件)
myserial
.project 844B
project.properties 361B
proguard.cfg 1KB
src
android_serialport_api
SerialPort.java 2KB
sample
SendingActivity.java 2KB
SerialPortPreferences.java 2KB
MainMenu.java 2KB
Application.java 2KB
ConsoleActivity.java 2KB
SerialPortActivity.java 3KB
SerialPortFinder.java 3KB
AndroidManifest.xml 1021B
res
drawable-ldpi
ic_launcher.png 2KB
xml
serial_port_preferences.xml 559B
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
layout
sending.xml 430B
loopback.xml 3KB
console.xml 1019B
main.xml 1KB
drawable-xhdpi
values
baudrates.xml 346B
strings.xml 1KB
styles.xml 697B
.settings
org.eclipse.jdt.core.prefs 177B
assets
jni
Application.mk 35B
SerialPort.h 745B
SerialPort.c 4KB
gen_SerialPort_h.sh 90B
Android.mk 786B
gen
android_serialport_api
sample
BuildConfig.java 171B
R.java 3KB
libs
armeabi-v7a
libserial_port.so 12KB
x86
libserial_port.so 5KB
armeabi
libserial_port.so 12KB
.classpath 475B
bin
resources.ap_ 18KB
classes
android_serialport_api
SerialPortFinder$Driver.class 2KB
SerialPort.class 2KB
sample
R$layout.class 521B
R$style.class 464B
MainMenu.class 1KB
SerialPortPreferences$1.class 1KB
R$array.class 473B
SerialPortPreferences$2.class 1KB
BuildConfig.class 367B
R$drawable.class 440B
R$attr.class 373B
SendingActivity$SendingThread.class 1KB
MainMenu$1.class 1023B
ConsoleActivity.class 1KB
MainMenu$2.class 1017B
ConsoleActivity$1.class 2KB
R$xml.class 437B
Application.class 2KB
SerialPortActivity.class 3KB
SerialPortActivity$ReadThread.class 1KB
R$id.class 1KB
SendingActivity.class 1KB
MainMenu$3.class 1017B
ConsoleActivity$2.class 1009B
R.class 781B
R$string.class 582B
MainMenu$4.class 830B
SerialPortActivity$1.class 960B
SerialPortPreferences.class 2KB
SerialPortFinder.class 4KB
myserial.apk 45KB
AndroidManifest.xml 1021B
dexedLibs
annotations-6a50bd708df9535f5be57d7abaa7f45d.jar 943B
res
crunch
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
classes.dex 22KB
共 73 条
- 1
辛勤劳作的小武
- 粉丝: 4
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 实验项目一:线性表(模板 ).docx
- 基于LM317A设计交流220V输入可调5V-12V直流输出稳压电源电路multisim10仿真源文件.zip
- Screenshot_2024-04-25-17-04-18-55_2332cb9b27b851b548ba47a91682926c.jpg
- -基于AVR单片机的LNG加液机控制器设计.pdf
- ThePowerOfNow-EckhartTolle.mobi
- BLOCK_TYPE_HEARTBEAT_D70A3465D4EE4E9_046141_dump_1st.dmp
- 项目方法测试调用接口工具
- studyupdate
- 基于西瓜数据集的决策树实现.zip
- 60套HTML网站源码-响应式-涵盖(简历&作品展示&商业&科技&培训&商城&课设等)-适配移动设备-解压即用.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页