如何查看USB方式连接Android设备的外接设备信息
1,USB存储设备(如:U盘,移动硬盘):
//USB存储设备 插拔监听与 SD卡插拔监听一致。
private USBBroadCastReceiver mBroadcastReceiver;
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addAction(Intent.ACTION_MEDIA_REMOVED);
iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
iFilter.addDataScheme("file");
mBroadcastReceiver = new USBBroadCastReceiver();
registerReceiver(mBroadcastReceiver, iFilter);
private class USBBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_MEDIA_EJECT)) {
//USB设备移除,更新UI
} else if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
//USB设备挂载,更新UI
}
}
}
//获得挂载的USB设备的存储空间使用情况
public static String getUSBStorage(Context context){
// USB Storage
//storage/udisk为USB设备在Android设备上的挂载路径.不同厂商的Android设备路径不同。
//这样写同样适合于SD卡挂载。
File path = new File("/storage/udisk");
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long availableBlocks = stat.getAvailableBlocks();
String usedSize = Formatter.formatFileSize(context, (totalBlocks-availableBlocks) * blockSize);
String availableSize = Formatter.formatFileSize(context, availableBlocks * blockSize);
return usedSize + " / " + availableSize;//空间:已使用/可用的
}
2,USB外接输入设备(如:键盘,鼠标,扫描枪)
try {
//获得外接USB输入设备的信息
Process p=Runtime.getRuntime().exec("cat /proc/bus/input/devices");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while((line = in.readLine())!= null){
String deviceInfo = line.trim();
//对获取的每行的设备信息进行过滤,获得自己想要的。
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
另:设备信息也可以通过 adb shell 进入执行 cat /proc/bus/input/devices看到。
USB外接输入设备信息打印如下:
I: Bus=0003 Vendor=11c0 Product=0030 Version=0110
N: Name="ACRUX USB Keyboard"
P: Phys=usb-0000:00:04.0-1.3/input1
S: Sysfs=/devices/pci0000:00/0000:00:04.0/usb1/1-1/1-1.3/1-1.3:1.1/input/input3
U: Uniq=
H: Handlers=mouse1 event3
B: PROP=0
B: EV=17
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=11c0 Product=0030 Version=0110 这行信息会在Android设备与USB设备数据交互的是否使用到。
关于USB外接设备如何与Android设备数据数据交互的代码书写可以参考:
http://developer.android.com/guide/topics/connectivity/usb/index.html
N: Name="ACRUX USB Keyboard" 这行说明了外接的USB设备的名称。
P: Phys=usb-0000:00:04.0-1.3/input1
S: Sysfs=/devices/pci0000:00/0000:00:04.0/usb1/1-1/1-1.3/1-1.3:1.1/input/input3
这两行可用于识别该USB设备连接在Android设备的哪一个USB口.
如何查看USB方式连接Android设备的外接设备信息的更多相关文章
- Ubuntu杂记——Ubuntu下以USB方式连接Android手机调试
在Ubuntu下进行Android开发,发现自己的手机就算打开USB连接.USB调试还是连不上,一直都是显示??????.百度了很多,发现都是要改“ /etc/udev/rules.d/50-andr ...
- adb通过wifi连接android设备
问题背景 近期的项目测试中,需要将移动设备与厂商机器进行usb连接视频传输(投屏).测试过程中需要定位问题,经常需要查看实时日志,移动设备已经和厂商机器usb连接投屏,无法用usb连接到PC,那么有什 ...
- ADB连接手机的两种方式(usb数据线连接和wifi连接)
ADB(Android Debug Bridge)安卓测试桥,它是连接电脑开发端和安卓设备的桥梁,这个安卓设备可以是真实的安卓手机或者平板,也可以是虚拟的安卓模拟器, 这里介绍ADB连接手机的两种 ...
- 无线连接Android设备
有时设备处于低电,此时又需要进行设备与PC的数据传输,但是通过USB连接充电速度太慢.这时就可以通过无线进行传输数据,然后通过AC充电.一举两得. 前提: 1.在Android设备的开发者模式-打开U ...
- 【转】ubuntu连接android设备(附最简单方法)
原文网址:http://blog.csdn.net/maosidiaoxian/article/details/22661725 在ubuntu下连接android设备,虽然不用像windows那样安 ...
- ubuntu连接android设备(附最简单方法)
在ubuntu下连接android设备,虽然不用像windows那样安装驱动,然而却会遇见一个错误:输入adb shell,会提示insufficient permissions for device ...
- 在Linux中连接android设备
1.用usb线连接电脑和android设备,在命令行中输入lsusb可查看采用usb连接到电脑的设备 找到设备的vendor ID. 如上图: "Bus 002 Device 007: ID ...
- 通过wifi连接android设备的方法
[转自]http://blog.csdn.net/kuanxu/article/details/7444874 最近由于要在另外一台android设备上调试代码,在本机PC上查看其log.两台机器离的 ...
- ubuntu下USB连接Android手机
初始工作:将Android手机通过usb连接到电脑,之后点击VM-Removable Devices-google Android - Connect,即可. 若通过usb连接到电脑,Removabl ...
随机推荐
- Mac下在Intellij Idea里设置VM运行参数的正确方法
打开应用程序,右键选择显示包内容 可以看到idea的初始jvm配置的位置: 但是真正生效的配置是个人目录下的此文件,注意每个版本都会重新生成一次 设置idea使其在右下角的位置显示内存使用情况:483 ...
- C语言:通过函数指针来完成两个数的加减乘除(函数指针当做参数使用)
// // main.c // Function_pointer // // Created by mac on 15/8/2. // Copyright (c) 2015年. All rig ...
- OTL翻译(5) -- otl_stream流相关绑定变量
声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并 ...
- CURL库在C++程序中的运用浅析
最近由于要做一个爬虫项目,要对很多网站进行爬取,所以一直都在看这方面的文章.在翻阅了很多资料后,下载了一个curl库,着实对项目有了很大的帮助. 一.LibCurl基本编程框架 二.一些基本的函数 三 ...
- Pytorch torch.optim优化器个性化使用
一.简化前馈网络LeNet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 im ...
- iOS开发-UIWebView加载本地和网络数据
UIWebView是内置的浏览器控件,可以用它来浏览网页.打开文档,关于浏览网页榜样可以参考UC,手机必备浏览器,至于文档浏览的手机很多图书阅读软件,UIWebView是一个混合体,具体的功能控件内置 ...
- Web项目添加Maven支持
很多时候,进入到某个项目组,并非项目刚刚开始:同样,很多时候,项目并非一开始就有Maven支持: 对现有的项目支持Maven,需要修改以下地方: 1. 将以下代码拷贝到工程根路径下的 .projec ...
- [Javascript] Closure Cove, Common mistake
They’ve got a problem with their existing code, which tries to use a closure. Check it out: function ...
- css选择器顺序的小技巧
在线演示 本地下载 css的选择器的顺序其实很有意思,如果应用的好的话,可以做一些简单的逻辑出来,配合上css3,就可以尽可能的脱离js了. 这里的演示是一个带有hover事件的四张照片,效果来自一个 ...
- Android开发之发送邮件功能的实现(源码分享)
Android开发中可能会碰到怎样发送邮件的困扰,之前我也查了相关的文档,博友们也分享了不少的发送邮件的办法.总共同拥有3种把,我细致阅读了下,发现有的讲的太过复杂跟麻烦,不够清晰.我今天就来分享下我 ...