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存储设备(如:U盘,移动硬盘)相关推荐

  1. Android中使用外置存储设备(U盘/移动硬盘等)

    本来是计划每个月至少写2篇博客的,可是2018年的第一个月就失言了.上个月实在是太忙了,从元旦收假上班开始,就开启了天天加班的新年征程,周六一样不放过. 谁让我是IT人呢?不过偶尔加班也没什么不好,对 ...

  2. 计算机怎样发现路由器上u盘,360 P2 无线路由器通过电脑终端查看路由USB存储设备操作流程 路由器...

    首先,将您的U盘 或 插入存储卡的读卡器 或 移动硬盘(以下称为USB存储设备),插入5G路由后面的USB接口上,如下图 插入USB存储设备后,5G路由面板上的USB指示灯(左数第三个)和后面USB卸 ...

  3. 树莓派linux系统识别u盘启动,树莓派Raspberry Pi实战之命令行下实现USB存储设备自动挂载...

    简单介绍实现命令行下USB存储设备自动挂载的方法,Linux gnome/kde窗口环境下有移动存储的管理程序,可以实现自动挂载移动存储设备,但是在命令行下 通常需要用mount命令手动挂载USB存储 ...

  4. 将windows系统装到USB存储设备

    将windows系统装到USB存储设备 需求: 1)一般公司比较规范,计算机系统有严格的限制策略,如果自己不懂得如何更改或者没有权限更改,将极其不便. 2)计划在家里完成在公司未完成的事,甚至异地出差 ...

  5. 用 C# 编写 USB 存储设备使用痕迹检测和删除工具

    编写 USB 存储设备使用痕迹检测和删除工具 (C# Windows Form 编程练习) [版权所有 邱秋 2014 metaphysis@yeah.net, 转载请注明出处] 第一节 准备知识 之 ...

  6. 掀开USB存储设备自动运行的面纱(精简版)

    前前言2:为什么有精简版? 考虑原文(http://blog.sina.com.cn/u/56b798f8010007ht)太长而且比较罗嗦,部分新手会失去耐心看完,因此特地修改原文推出精简版.精简版 ...

  7. android检测usb存储,android 监听检测USB存储设备

    1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致. private USBBroadCastReceiver mBroadcastReceiver; In ...

  8. 如何安全可控的使用USB存储设备

    U盘.USB移动硬盘.智能手机等移动存储介质作为日常的信息交换载体被广泛应用,然而超强的便捷性也带来了两个关键的安全风险: 一.数据泄密 对信息安全防控方面不熟悉的用户通常会直接将重要数据存储到移动硬 ...

  9. Linux系统卸载USB存储设备失败导致kworker进程CPU占用异常问题的解决办法

    问题描述 U盘或移动硬盘umount弹出设备失败,后台会出现一个kworker进程,疯狂占用CPU资源,其中: top命令直接可以看到kworker进程: htop命令默认隐藏了内核进程,需要在按F2 ...

最新文章

  1. 微信小程序 之 请求函数封装
  2. Linux 命令之 gunzip -- 用来解压缩文件
  3. gacutil不是内部或外部命令_Win7命令提示符输入taskkill提示不是内部或外部命令...
  4. 疯狂的折叠屏!不买折叠手机的5个理由
  5. 开发者该如何进行小程序技术选型?
  6. django之创建第11个项目-页面整合
  7. Oracle12c操作命令
  8. Centos7.9源码编译安装Apache
  9. 移动安全初探:窃取微信聊天记录、Hacking Android with Metasploit
  10. excel退出打印预览快捷键?
  11. Android应用开发性能优化的知识点
  12. Mac 安装 双系统 体验极差的好几天
  13. 微信小程序服务器端用什么语言开发?
  14. 蓝桥杯试题:求数差(简单易懂无脑)java
  15. 联想小新13pro锐龙版网卡_联想小新Pro13 锐龙版简测
  16. Failed to start monitoring
  17. LABVIEW以及各种驱动(VDM/VAS等)的安装教程
  18. 高级计算机体系结构知识点,高级计算机体系结构知识点.pdf
  19. cocos2dx中的内存管理
  20. 高清地图数据获得方法

热门文章

  1. 解决windows server 2008 R2安装到D盘的问题
  2. 通用Windows驱动程序设计原则DCHU
  3. 《济南济南》吉他弹唱
  4. _undo_autotune(关闭undo retention优化建议)
  5. [手机分享]黑莓手机7系列分享之——7100G
  6. laravel php 默认图片下载
  7. python 破解WinRAR,zip文件密码
  8. 毕设-基于SpringBoot房屋租赁系统
  9. SUN/FUJITSU 小型机 镜像硬盘更换方案
  10. 华东交通大学计算机专业导师,华东交通大学计算机专业2017考研调剂信息