Android开发-动态获取电视盒子U盘的插拔状态和路径
2016-11-15 16:33
696 查看
最近公司的盒子端扩展一个新功能:插入U盘后自动幻灯片播放U盘指定文件夹下的所有图片,拔出U盘后恢复视频播放。
直接上代码:
一、注册广播监听U盘的插拔
这一步的注意事项:
1,intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED)添加完全拔出意图,因为U盘插入的时候:
2,intentFilter.addDataScheme(“file”),没有这行广播不起作用
二、获取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() { @Override public 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 开发时如何正确获取使用扩展存储路径
- Android 蓝牙开发(二)开启蓝牙,获取状态,发现设备。
- Android开发中如何获取外置TF卡的路径
- android开发如何获取res/raw和assets文件夹的路径
- Android开发获取内存卡路径
- Android开发动态获取控件宽高
- android开发—如何获取内部储存中的文件路径
- Android开发动态获取控件宽高
- 外部U盘插入Android系统后获取外部U盘的路径
- Android开发动态的监听网络状态的变化
- android开发 根据Uri获取真实路径
- Android盒子开发,获取网络的信息(热点,WIFI,有线)
- Android开发—已root的手机获取data路径
- Android开发动态获取权限(6.0以上API>23)
- 开发android盒子,如何获取Android IP地址
- Android_在哪里获取Android应用开发技术最新动态
- android获取扩展存储路径,TF卡、U盘等
- android开发获取网络状态,wifi,wap,2g,3g.工具类(一)
- android开发如何获取res/raw和assets文件夹的路径:
- Android TV开发之监听网线,WiFi,蓝牙,U盘的状态