android检测usb存储,USBdevice识别为存储设备并找到路径
如何检测可用于存储的已安装设备(如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识别为存储设备并找到路径相关推荐
- android检测usb设备——usb打印机
最近弄了一个安卓的项目,需要外接usb打印机,从网上找了一些方法,下面这个是测试了以后,没有问题的.主要是担心再次访问404,所以我做个备份,这里附一下原文链接. 在此之前,我先说几个我踩的坑. 这个 ...
- android检查usb广播,Android 检测USB 音频设备
1.广播检测USB 音频设备 注册广播: "android.hardware.usb.action.USB_DEVICE_ATTACHED"; "android.hard ...
- Android 检测USB连接状态
Android 4.4上发现采用原来的什么Intent.ACTION_UMS_CONNECTED完全不能够检测到USB让连接状态, 翻看了一下源码,找到一个方法: [java] view plainc ...
- android检测usb存储,android 监听检测USB存储设备
1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致. private USBBroadCastReceiver mBroadcastReceiver; In ...
- windows Android Studio连接手机无法识别为安卓设备
最近Mac坏了,掏出我11年前的Windows顶一下,在为 Android Studio 配置环境的时候,在连接真机进行调试的过程中,驱动程序都安装好了,手机开发者模式,USB调试全都打开了,但就是提 ...
- Android Studio连接手机无法识别为安卓设备
最近为了毕设倒弄安卓,在为 Android Studio 配置环境的时候,在连接真机进行调试的过程中,驱动程序都安装好了,手机开发者模式,USB调试全都打开了,但就是提示无法将我的手机识别成 Andr ...
- Android + kernel USB host 如何判断插入的设备是高速还是低速的设备
d+ d- 0 0 PC 0 1 错误设备 1 0 非标准充电器 1 1 ...
- 计算机无法识别华为usb设备,计算机在使用过程中可识别USB3.0设备,无法识别USB2.0设备...
解决方案 软件故障排除方法: 第一步:检查BIOS下面是否有禁用USB接口:开机按F2进入BIOS,检查选项USB Port Enable是否设置为Disable,如果为Disable,修改为Enab ...
- Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...
最新文章
- GC rich的区域不易测序的原因
- Java中的equals学习小结
- MySQL-数据库监控初探
- java中VO、PO、DTO 、DO、POJO、BO、TO
- Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round) 题解
- python字符串解释_python基础之字符串详解
- C++实现utf8和gbk编码字符串互相转换
- Tensorflow中的TFRecord、Queue和多线程
- bigemap 软件功能对比
- 7. 敏捷软件开发框架 - 极限编程XP
- MeasureSpec的简单说明
- JAVA 根据身份证计算年龄
- html在按钮中加图片,在html里面怎么为一个按钮添加图片
- png转ico图标的在线网站
- win11u盘无法弹出怎么办?win11u盘老是被占用不能退出?
- 技术分享| RTC通讯中常用的音频格式
- Latex数学公式-矩阵中省略号的表示
- CAD学习笔记中级课【CAD快捷键】
- CAD矩形阵列应用与实战技巧
- vs 2010 sp1 中文版 安装sliverlight 5 正式版
热门文章
- 简述机器指令与微指令之间的关系_机器指令与微指令之间的关系是(
- 桶排序基数排序代码及简要说明
- 安居客爬虫项目,爬取房源,保存mysql数据库,详细代码如下!!!
- oracle固定资产减少怎么查,固定资产原值减少账务处理是怎样的
- 怎样开启电脑护眼模式
- 重整晋商雄风,再现汇通天下 -------《晋商》阅读笔记第1-4章
- 格林威治时间转换成北京时间,Mon May 10 2021 15:34:42 GMT+0800 (中国标准时间) TO 2021/5/10
- 预训练语言模型 | (3) Bert
- fopen函数的用法示例_在C和C ++中使用fopen()函数的用法以及示例
- flash工具快捷键