博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android监听外部存储设备的状态(SD卡、U盘等等)
阅读量:6277 次
发布时间:2019-06-22

本文共 1672 字,大约阅读时间需要 5 分钟。

近期在项目中须要对外部存储设备的状态进行监听,所以整理了此笔记,以便日后查看。

外部存储设备的状态变化时发出的广播

对照不同状态下的广播

1. 插入外部SD卡时:

2. 移除外部SD卡时:

3. 连接PC进入USB大容量存储模式时:

4. 连接PC退出USB大容量存储模式时:

代码实现监听

public void startListen(){    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);    intentFilter.setPriority(1000);      intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);    intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);    intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);    intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);     intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);    intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);     intentFilter.addAction(Intent.ACTION_MEDIA_CHECKING);    intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);    intentFilter.addAction(Intent.ACTION_MEDIA_NOFS);    intentFilter.addAction(Intent.ACTION_MEDIA_BUTTON);    intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);    intentFilter.addDataScheme("file");    registerReceiver(broadcastRec, intentFilter);}private final BroadcastReceiver broadcastRec = new BroadcastReceiver() {      @Override      public void onReceive(Context context, Intent intent) {          String action = intent.getAction();         Log.d("MediaAction", action);        if (action.equals("android.intent.action.MEDIA_MOUNTED"))        {          	//todo        } else if (action.equals(Intent.ACTION_MEDIA_UNMOUNTED))         {          	//todo        }else if (action.equals(Intent.ACTION_MEDIA_SCANNER_STARTED)){        }else if (action.equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)){        }else if (action.equals(Intent.ACTION_MEDIA_SHARED)){        }else {         }      }  };

你可能感兴趣的文章
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>
Python系语言发展综述
查看>>
新手 开博
查看>>
借助开源工具高效完成Java应用的运行分析
查看>>
163 yum
查看>>
第三章:Shiro的配置——深入浅出学Shiro细粒度权限开发框架
查看>>