import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* @title 外接设备工具类
*/
publicclassDeviceUitl{
/**
* 获取所有的外接设备目录
* @return
*/
publicstaticList<String>getDeviceFiles(){
List<Partitions> partitionList=getPartitions();//获得挂载点列表
List<String>devicePathList=newArrayList<String>();
if(partitionList!=null&&partitionList.size()>0){//有挂载点
FilemountsFile=newFile("/proc/mounts");
if(mountsFile.exists()&&mountsFile.isFile()&&mountsFile.canRead()){
BufferedReaderreader=null;
try {
reader=newBufferedReader(newFileReader(mountsFile));
List<String> devList = new ArrayList<String>();
String tempString = null;
while ((tempString = reader.readLine()) != null) {
if (tempString.startsWith("/dev/block/vold/")) {
devList.add(tempString);
}
}
for (String strs : devList) {
String[] args = strs.split(" ");
if (args!=null && args.length>2) {
if(isThePartitionPath(partitionList,args[0])){
devicePathList.add(args[1]);
}
}
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
}
returndevicePathList;
}
/**
* 验证该挂载点是否是移动设备
* @param partitionList 移动设备挂载点列表
* @param point 挂载点
* @return
*/
privatestaticbooleanisThePartitionPath(List<Partitions>partitionList,Stringpoint){
booleanisPartition=false;
if(partitionList!=null&&point!=null){
for(Partitionsp:partitionList){
if(point.endsWith(p.getMajor()+":"+p.getMinior())){
isPartition=true;
break;
}
}
}
returnisPartition;
}
/**
* 获取外接设备挂载点
* @return
*/
publicstaticList<Partitions>getPartitions(){
FilepartitonsFile=newFile("/proc/partitions");
List<Partitions>partitionList=newArrayList<Partitions>();
if(partitonsFile.exists()&&partitonsFile.isFile()){
List<String>lineList=newArrayList<String>();
BufferedReaderreader=null;
try {
reader=newBufferedReader(newFileReader(partitonsFile));
String tempString = null;
while ((tempString = reader.readLine()) != null) {
lineList.add(tempString);
// Log.d("--------partitions tempString:"+tempString);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
for (String line : lineList) {
String[]strs=line.trim().split(" ");
Partitionspartitions=newPartitions();
for (int i = 0; i < strs.length; i++) {
if (!"".equals(strs[i])) {
try {
if(partitions.getMajor()==null){
partitions.setMajor(Integer.valueOf(strs[i]));
continue;
}
if(partitions.getMinior()==null){
partitions.setMinior(Integer.valueOf(strs[i]));
continue;
}
if(partitions.getBlocks()==null){
partitions.setBlocks(Long.valueOf(strs[i]));
continue;
}
if(partitions.getName()==null){
partitions.setName(strs[i]);
continue;
}
} catch (Exception e) {
//e.printStackTrace();
continue;
}
}
}
//名称不能为空,不能是mtd
if(partitions.getName()!=null&&!partitions.getName().trim().equals("")&&!partitions.getName().startsWith("mtd")){
partitionList.add(partitions);
}
}
}
returnpartitionList;
}
/**
* @title 挂载点
*/
publicstaticclassPartitions{
privateIntegermajor;//父节点
privateIntegerminior;//分区节点
privateLongblocks;//容量
privateStringname;//名称
publicIntegergetMajor(){
returnmajor;
}
publicvoidsetMajor(Integermajor){
this.major=major;
}
publicIntegergetMinior(){
returnminior;
}
publicvoidsetMinior(Integerminior){
this.minior=minior;
}
publicLonggetBlocks(){
returnblocks;
}
publicvoidsetBlocks(Longblocks){
this.blocks=blocks;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name = name;
}
}
}
相关推荐
Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的 Android ...直接与 USB 设备通信的第三方网络相机应用访问 UVC 设备时所需的相机权限与所有常规相机应用所需的权限相同。
实现Android外接扫描枪,获取扫描枪扫条码内容,无需权限。 如遇分高,Q2206143885 私。 支持条形码扫描枪、二维码扫描枪、扫码平台。 支持同界面EditText手输条码
Android UVCCamera USB外接摄像头源码,支持打开UVC协议的摄像探头
适合开发需要开发外接摄像头的,可以实现拍照、录像以及上下转动摄像头。
demo实现了usb外接摄像头的连接、图像显示以及拍照并保存在本地
Android UVC驱动外接摄像头 https://blog.csdn.net/qq_31939617/article/details/82348796
微信平台外接设备协议, 官方协议接口,比如 绑定微信电视,手环,空调 等等。。
java 获取 USB 外接设备 信息 pid vid 例子
Android 外接基于UVC协议的摄像头并实现预览 demo
Android手机通过otg线外接usb摄像头,亲自测试可以使用
数据库 sql sever 2005 语言 vb 和 C++ 网页制作控制设备的策略
为了节约成本,扫码枪可以直接通过蓝牙连接android或其他设备。 那么android设备如何通过蓝牙获取扫描内容的呢? 1. 蓝牙配对,连接设备 打开系统设置,找到蓝牙,打开扫码枪,配对扫码枪设备。输入一个固定的配对...
配合Activity下的dispatchKeyEvent使用,扫码枪本质是键盘输入事件
Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的 Android ...直接与 USB 设备通信的第三方网络相机应用访问 UVC 设备时所需的相机权限与所有常规相机应用所需的权限相同。
手机、数码相机、数码摄像机蓝牙驱动安装程序
java 获取 usb 外接设备 信息。
检测Android主板外接USB摄像头的PIC和VID,根据PIC和VID指定打开摄像头,自助切换并实现拍照功能,有完整的demo。
AndroidUSb外接摄像头驱动,IntelliJ IDEA开发环境。 源码可直接使用。
JAVA调用外接设备(制卡机)---JQuery跨域,AJAX跨域问题
android通过USB外接摄像头这是一个例子