如何检测可用于存储的已安装设备(如Pen-Drive)?如何找到安装的存储设备的路径,以便我可以从中读取文件?USBdevice识别为存储设备并找到路径

我用下面取权限访问安装器件广播接收机:

private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

if (ACTION_USB_PERMISSION.equals(action)) {

synchronized (this) {

UsbDevice device = (UsbDevice) intent

.getParcelableExtra(UsbManager.EXTRA_DEVICE);

if (intent.getBooleanExtra(

UsbManager.EXTRA_PERMISSION_GRANTED, false)) {

if (device != null) {

// call method to set up device communication

Log.d(TAG, "onReceive: "+intent.getExtras().toString());

Log.d(TAG, "onReceive: "+intent.getData());

LinearLayout layoutUsbList = (LinearLayout)findViewById(R.id.layout_usb_list);

Button btn = new Button(MainActivity.this);

btn.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

layoutUsbList.addView(btn);

btn.setText(device.getDeviceId()+"\t"+device.getDeviceName());

Log.d(TAG, "onReceive: "+intent.getExtras().toString());

final String path = intent.getData().getPath();

Log.e(TAG, "onReceive: path of device received from intent: "+ path);

btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

File file = new File(path);

Toast.makeText(MainActivity.this, "file exists --> "+file.exists()+"", Toast.LENGTH_SHORT).show();

Toast.makeText(MainActivity.this, "file is directory --> "+file.isDirectory()+"", Toast.LENGTH_SHORT).show();

Log.d(TAG, "onClick: file is directory --> "+file.isDirectory()+"");

try{

Toast.makeText(MainActivity.this, file.listFiles().length+"", Toast.LENGTH_LONG).show();

}catch(Exception e){

Toast.makeText(MainActivity.this, "error while showing total items", Toast.LENGTH_SHORT).show();

}

}

});

}

} else {

Log.d("ERROR", "permission denied for device " + device);

}

}

}

}

};

清单文件:

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

android:name=".MainActivity"

android:configChanges="keyboard|orientation"

android:label="@string/app_name">

android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"

android:resource="@xml/device_filter"/>

2017-01-27

A_rmas

android检测usb存储,USBdevice识别为存储设备并找到路径相关推荐

  1. android检测usb设备——usb打印机

    最近弄了一个安卓的项目,需要外接usb打印机,从网上找了一些方法,下面这个是测试了以后,没有问题的.主要是担心再次访问404,所以我做个备份,这里附一下原文链接. 在此之前,我先说几个我踩的坑. 这个 ...

  2. android检查usb广播,Android 检测USB 音频设备

    1.广播检测USB 音频设备 注册广播: "android.hardware.usb.action.USB_DEVICE_ATTACHED"; "android.hard ...

  3. Android 检测USB连接状态

    Android 4.4上发现采用原来的什么Intent.ACTION_UMS_CONNECTED完全不能够检测到USB让连接状态, 翻看了一下源码,找到一个方法: [java] view plainc ...

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

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

  5. windows Android Studio连接手机无法识别为安卓设备

    最近Mac坏了,掏出我11年前的Windows顶一下,在为 Android Studio 配置环境的时候,在连接真机进行调试的过程中,驱动程序都安装好了,手机开发者模式,USB调试全都打开了,但就是提 ...

  6. Android Studio连接手机无法识别为安卓设备

    最近为了毕设倒弄安卓,在为 Android Studio 配置环境的时候,在连接真机进行调试的过程中,驱动程序都安装好了,手机开发者模式,USB调试全都打开了,但就是提示无法将我的手机识别成 Andr ...

  7. Android + kernel USB host 如何判断插入的设备是高速还是低速的设备

    d+      d- 0        0         PC 0        1         错误设备 1        0         非标准充电器 1        1        ...

  8. 计算机无法识别华为usb设备,计算机在使用过程中可识别USB3.0设备,无法识别USB2.0设备...

    解决方案 软件故障排除方法: 第一步:检查BIOS下面是否有禁用USB接口:开机按F2进入BIOS,检查选项USB Port Enable是否设置为Disable,如果为Disable,修改为Enab ...

  9. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作

    前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...

最新文章

  1. GC rich的区域不易测序的原因
  2. Java中的equals学习小结
  3. MySQL-数据库监控初探
  4. java中VO、PO、DTO 、DO、POJO、BO、TO
  5. Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round) 题解
  6. python字符串解释_python基础之字符串详解
  7. C++实现utf8和gbk编码字符串互相转换
  8. Tensorflow中的TFRecord、Queue和多线程
  9. bigemap 软件功能对比
  10. 7. 敏捷软件开发框架 - 极限编程XP
  11. MeasureSpec的简单说明
  12. JAVA 根据身份证计算年龄
  13. html在按钮中加图片,在html里面怎么为一个按钮添加图片
  14. png转ico图标的在线网站
  15. win11u盘无法弹出怎么办?win11u盘老是被占用不能退出?
  16. 技术分享| RTC通讯中常用的音频格式
  17. Latex数学公式-矩阵中省略号的表示
  18. CAD学习笔记中级课【CAD快捷键】
  19. CAD矩形阵列应用与实战技巧
  20. vs 2010 sp1 中文版 安装sliverlight 5 正式版

热门文章

  1. 简述机器指令与微指令之间的关系_机器指令与微指令之间的关系是(
  2. 桶排序基数排序代码及简要说明
  3. 安居客爬虫项目,爬取房源,保存mysql数据库,详细代码如下!!!
  4. oracle固定资产减少怎么查,固定资产原值减少账务处理是怎样的
  5. 怎样开启电脑护眼模式
  6. 重整晋商雄风,再现汇通天下 -------《晋商》阅读笔记第1-4章
  7. 格林威治时间转换成北京时间,Mon May 10 2021 15:34:42 GMT+0800 (中国标准时间) TO 2021/5/10
  8. 预训练语言模型 | (3) Bert
  9. fopen函数的用法示例_在C和C ++中使用fopen()函数的用法以及示例
  10. flash工具快捷键