首页 > 代码库 > Android监听外部存储设备的状态(SD卡、U盘等等)
Android监听外部存储设备的状态(SD卡、U盘等等)
最近在项目中需要对外部存储设备的状态进行监听,所以整理了此笔记,以便日后查看。
外部存储设备的状态变化时发出的广播
对比不同状态下的广播
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 { } } };
Android监听外部存储设备的状态(SD卡、U盘等等)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。