Android开发-动态获取电视盒子U盘的插拔状态和路径
最近公司的盒子端扩展一个新功能:插入U盘后自动幻灯片播放U盘指定文件夹下的所有图片,拔出U盘后恢复视频播放。
直接上代码:
一、注册广播监听U盘的插拔
1.1、注册
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);//插
//intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);//拔
intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED); //完全拔出
intentFilter.addDataScheme("file");//没有这行监听不起作用
registerReceiver(receiver, intentFilter);1.2、广播接收者
private BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {Log.e("TAG", "action === " + intent.getAction());if (intent.getAction().equals("android.intent.action.MEDIA_MOUNTED")) {//U盘插入String path = intent.getDataString();String pathString = path.split("file://")[1];//U盘路径insertUSB(pathString);}else if (intent.getAction().equals("android.intent.action.MEDIA_REMOVED")) {//U盘拔出removeUSB();}}
};
这一步的注意事项:
1,intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED)添加完全拔出意图,因为U盘插入的时候:
E/TAG: action === android.intent.action.MEDIA_UNMOUNTED
E/TAG: action === android.intent.action.MEDIA_MOUNTED
E/TAG: U盘已插入,正在读取
2,intentFilter.addDataScheme(“file”),没有这行广播不起作用
二、获取U盘指定目录的所有图片文件
String imagesPath = pathString + "/aaa";File file = new File(imagesPath);//指定存放图片的文件夹不存在的情况if(!file.exists()) {Toast.makeText(this, "未在U盘中检测到【aaa】文件夹,请检查后重试!", Toast.LENGTH_LONG).show();return;}File[] files = file.listFiles();//空文件夹的情况if(files.length == 0) {Toast.makeText(this, "检测到【aaa】文件夹是空的,请检查后重试!", Toast.LENGTH_LONG).show();return;}//获取所有图片路径imgPathList = new ArrayList<>();for(int i = 0; i < files.length; i++) {File imageFile = files[i];if (checkIsImageFile(imageFile.getPath())) {//检查文件是不是图片imgPathList.add(imageFile.getPath());}}
}if(imgPathList.size() <= 0) {Toast.makeText(this, "检测到【aaa】文件夹中没有图片文件,请检查后重试!", Toast.LENGTH_LONG).show();return;}//排个序Collections.sort(imgPathList, new MapComparator());for(int i = 0; i < imgPathList.size(); i++) {Log.e("TAG", "排序后:" + imgPathList.get(i));}//设置幻灯片适配器initAdapter();
检查图片文件的方法:
private boolean checkIsImageFile(String fName) {boolean isImageFile;// 获取扩展名String FileEnd = fName.substring(fName.lastIndexOf(".") + 1, fName.length()).toLowerCase();if (FileEnd.equals("jpg") || FileEnd.equals("png") || FileEnd.equals("gif")|| FileEnd.equals("jpeg")|| FileEnd.equals("bmp") ) {isImageFile = true;} else {isImageFile = false;}return isImageFile;
}
Android开发-动态获取电视盒子U盘的插拔状态和路径相关推荐
- android获取版本号报错,Android开发:获取安卓App版本号的方法步骤
在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能.Android的App版本号相关内容比iOS的App版本号内容要多,而 ...
- Android开发之获取通话记录
上一篇讲的是Android开发之获取手机通讯录,这一篇博客也将针对手机联系人这一块进行开发.下面是获取手机通话记录的详细步骤: 1. 首先,我们需要新建一个类CallLogInfo,用于通话记录的数据 ...
- android获取安卓版本,Android开发:获取安卓App版本号的方法步骤
今天国庆节,在这举国欢庆的日子里,发一篇博文留念一下这个特殊的日子,国庆依然奋战在工作一线. 在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版 ...
- Android开发之获取相册照片和获取拍照照片
在Android的开发过程中,我们可能会读取手机里面的照片或者通过相机拍摄获取照片,这是两种常用的获取图片的方式,在做项目过程中也会经常遇到,下面来介绍一下这两种获取方式.. 1.从本地相册获取照片: ...
- android开发:获取键盘的高度(实测真实有效)
android开发:获取键盘的高度(实测真实有效) 由于最近在做即时通讯,做类似于微信的点击键盘消失,弹出表情页面(表情页面的高度和键盘的高度一致),于是在网上看了好多android测键盘高度的代码, ...
- Android开发——后台获取用户点击位置坐标(可获取用户支付宝密码)
1. getevent命令 我们首先是根据adb shell getevent命令获取到被点击位置的信息. 这里要说明的是,不同的手机手机获得的点击输出是不一样的.以我的真机为例,输出如下 本文原创, ...
- android u盘挂载监听,Android SD卡及U盘插拔状态监听及内容读取
本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...
- Android SD卡及U盘插拔状态监听和内容读取
本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...
- [转]VB:如何检测到U盘的插拔(源代码)
听说现在网络上流传着一些能实时检测到U盘插拔消息并能在其插入后伺机拷贝其中文档资料的恶意程序,而日前在CSDN论坛也看到有网友询问这类程序的实现原理,为此我想通过一个简单的VB程序演示一下核心操作过程 ...
最新文章
- CNN的一些可视化方法!
- 简易的 Linux 流量实时监控工具 watch+ifstat
- 基于MATLAB的RGB转YCBCR色彩空间转换
- SqlHelper 数据库操作类2
- hadoop整合纪要
- 3D点云论文汇总-实时更新
- jquery颜色选择器
- Apache Kafka 2.7.0 稳定版发布
- 实时导出正在运行的虚拟机或检查点
- cocos2d-x之SimpleGame分析
- 关于maven modules开发时候,eclipse的dubug模式不能找到源代码
- Security+ 学习笔记10 软件质量保证
- better-scroll插件 api
- 全国计算机b类一级考试试题题库,全国计算机等级考试模拟题:一级B试题(一)...
- Python如何实现人脸识别系统
- U盘系统安装步骤超级简单,弄懂ghost不管是windows7win10都不难
- DataGrip 保姆级教程 !
- 匿名者Anonymous 十项大事记
- linux循环显示系统时间,Linux shell时间处理大全,值得收藏
- K8S kube-scheduler-master CreateContainerError 问题解决及思路
热门文章
- XShell 和 WinScp 教程
- oracle截取字符段的函数,Oracle | 字符串操作 - SUBSTR 和 INSTR函数
- SAP PI PO 消息监控器 SXI_MONITOR 报文相关数据库表介绍 SXMSPMAST SXMSCLUP
- Java 实现出租车计费问题
- taro-ui 的 AtInput标签的bug
- vim编辑器配置文件
- docker安装各类软件以及创建私有仓库总结
- LV和Dior所属集团推出区块链平台以验证奢侈品真伪
- 游侠汽车宣布B+轮融资3.5亿美金 估值33.5亿美金
- centerandzoom 无效_百度地图api h5获取当前位置授权(iphone6s 和 iphone7失效)