首先,代码都是用在项目里的,肯定是可用的。踩过的一些坑一起会写在下面。如果有更好的方法,请告知我。

用广播接收U盘插板的状态,其中插板的判断可以加入"android.intent.action.MEDIA_MOUNTED".equals(action)
&& "/storage/usbdrive".equals(path)

其中”/storage/usbdrive”是我修改过的U盘的挂载路径,根据你们自己系统的路径进行修改。

<receiver android:name=".receiver.USBDiskReceiver"><intent-filter android:priority="1000" ><action android:name="android.intent.action.MEDIA_MOUNTED" /><action android:name="android.intent.action.MEDIA_UNMOUNTED" /><data android:scheme="file" /></intent-filter></receiver>

public class USBDiskReceiver extends BroadcastReceiver {public SharedPreferences cacheSp;@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();String path = intent.getData().getPath();if (!TextUtils.isEmpty(path)){if ("android.intent.action.MEDIA_UNMOUNTED".equals(action)) {Log.d("usb",unmounted);}if ("android.intent.action.MEDIA_MOUNTED".equals(action)) {Log.d("usb",mounted);}}}
}

用这个方法是没有办法判断U盘是不是已经挂载上了,比如开机前别人就插上了U盘。
提供两个方法判定U盘是不是插入了:
1、提供一个方法,原理是U盘在挂载上的时候会在/proc/mounts里写入U盘的挂载路径,所以我的path传入”/storage/usbdrive”即可判定

public class USBDiskState {private static final String MOUNTS_FILE = "/proc/mounts";public static boolean isMounted(String path) {boolean blnRet = false;String strLine = null;BufferedReader reader = null;try {reader = new BufferedReader(new FileReader(MOUNTS_FILE));while ((strLine = reader.readLine()) != null) {if (strLine.contains(path)) {blnRet = true;break;}}} catch (Exception e) {e.printStackTrace();} finally {if (reader != null) {try {reader.close();} catch (IOException e) {e.printStackTrace();}reader = null;}}return blnRet;}}

2、这是一种更简单粗暴的方法,android在U盘插入的时候会自动生成一个LOST.DIR的文件夹,所以直接判断目录下是否有文件也行file.listFiles().length == 0。

几个方法结合使用,效果更佳。


读U盘内容是没问题,再说说写入U盘权限的问题。
也是两个方法,自用第一条。。
1、因为我们是自研版,所以写出来的应用是系统级别的,添加了一条系统权限就行了

<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE"/>

2、可以参考
Android实现识别/挂载U盘

Android U盘插拔监听详细版以及U盘写入权限解决办法相关推荐

  1. Android USB摄像头插拔监听

    Android USB摄像头插拔监听 一.简要介绍 二.使用广播监听USB摄像头插拔情况 1.注册监听USB设备插拔广播 2.判断UsbDevice是否是Camera设备 (重点) 二.通过UsbMa ...

  2. android u盘挂载监听,Android SD卡及U盘插拔状态监听及内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

  3. Android SD卡及U盘插拔状态监听和内容读取

    本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...

  4. Android的Usb设备的监听(Dev)外设端口的判定以及耳机的插拔

    最近在公司用到外设,需要判断接入的外设的VendorId和ProductId,然后给大家说一下自己的学习成果把 ,首先我门可以通过android.hardware.usb.action.USB_STA ...

  5. android u盘广播路径,android6.0 外部存储设备插拔广播以及获取路径(U盘)

    android4.1版本时U盘插拔时的广播 在android4.1时我们可以用以下的BroadcastReceiver接收U盘广播. 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 a ...

  6. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键

    本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){         ...

  7. android 窗口监听按键,Android编程实现Dialog窗体监听的方法

    本文实例讲述了Android编程实现Dialog窗体监听的方法.分享给大家供大家参考,具体如下: 今天做了一个Dialong窗体监听包括窗体内的xml监听. 效果图: test.class代码 pac ...

  8. 小伙利用C++实现U盘热插拨监听程序,走上人生巅峰

    想象这样一个场景:在严重堵车的高速公路上,除了等待道路恢复畅通,似乎并没有什么更好的办法.此刻的你一定恨不得前方恰巧就是高速闸道口可以助你迅速走上人生巅峰. VC++ U盘热插拨监听程序,自动发现U盘 ...

  9. android 关机消息广播,Android开机、关机播音监听

    Android开机.关机广播监听 一.开机广播的监听 1.在AndroidManifest.xml文件注册接收开机广播 2.在BroadcastReceiver里执行要做的事情 public clas ...

最新文章

  1. mysql平均锁_MySQL锁情况分析
  2. 【pytorch】pytorch-backward()的理解
  3. windows环境下,mysql的root密码丢失后重置方法
  4. redux 入门到实践
  5. BZOJ1086:[SCOI2005]王室联邦——题解
  6. selenium2与python自动化6-select下拉框
  7. DM365 dvsdk_2_10_01_18开发环境搭建
  8. golang(5):编写WebSocket服务,client和html5调用
  9. [Unity优化]overdraw01:不可见遮罩
  10. Eclipse 修改文本编码方式
  11. MVP on Board 没用小技巧
  12. [Java基础]字符流中的编码解码问题
  13. 工业交换机的性能优势有哪些?
  14. git 分支查看与切换
  15. java manualbuffer_FlatBuffer Java Bean自由转换
  16. 《TCP/IP详解卷1:协议》第12章 广播和多播---读书笔记
  17. HBuilder使用夜神模拟器
  18. 基于opencv求直线方程
  19. 大话西游服务器维护多长时间,《大话西游3》2010-9-21服务器停机维护公告(二)...
  20. C++后台开发面试题总结(涉及C++基础、多线程多进程、网络编程等)

热门文章

  1. NBIOT----BC28模块使用
  2. 知乎问答推广怎么做,知乎问答营销技巧
  3. 全国计算机理论知识,全国计算机等级考试理论知识(冲刺练习)
  4. 一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010
  5. 【课程作业|图论】第一章课后习题
  6. asp easp 开源框架_国内ASP开源建站系统一览
  7. 企业OA有哪些好处?所有企业都要用OA吗?
  8. 五分钟搞定:Centos中Kafka和Zookeeper的快速安装教程
  9. pyspark学习笔记,欢迎朋友们留言交流探讨!
  10. PLC信号处理系列之RC低通滤波器(梯形图)