[摘]Android SD卡挂载状态

Android 91es.com@站长2018年7月12日 pm8:06发布6年前 (2018)更新
0
导航号,我的单页导航
目录

一、 Sd卡挂载主要ACTION

ACTION_MEDIA_BAD_REMOVAL

sd卡已经从sd卡插槽拔出,但是挂载点还没解除

ACTION_MEDIA_BUTTON

“媒体”按钮被按下

ACTION_MEDIA_CHECKING

存在外部媒体,磁盘检查挂载点的路径中包含的检查媒体意图

ACTION_MEDIA_EJECT

用户移除外部存储媒体

ACTION_MEDIA_MOUNTED

Sd卡被插入,且已经挂载

ACTION_MEDIA_NOFS

外部媒体存在,而是使用一个不兼容的fs(或者是空白)挂载点的路径中包含的检查媒体意图

ACTION_MEDIA_REMOVED

Sd卡被移除

ACTION_MEDIA_SCANNER_FINISHED

扫描完成

ACTION_MEDIA_SCANNER_STARTED

开始扫描

ACTION_MEDIA_SCANNER_SCAN_FILE

请求媒体扫描仪扫描一个文件,并将它添加到媒体数据库

ACTION_MEDIA_SHARED

Sd卡作为USB大容量存储被共享,挂载被解除

ACTION_MEDIA_UNMOUNTABLE

ACTION_MEDIA_UNMOUNTED

Sd卡存在,但还没有挂载

二、 热插拔sd卡

1. 直接拔掉sdcard

BroadcastReceiver.android.intent.action.MEDIA_UNMOUNTED

BroadcastReceiver.android.intent.action.MEDIA_BAD_REMOVAL

BroadcastReceiver.android.intent.action.MEDIA_EJECT

BroadcastReceiver.android.intent.action.MEDIA_SCANNER_STARTED

BroadcastReceiver.android.intent.action.MEDIA_SCANNER_FINISHED

2. 再次插入sd卡

BroadcastReceiver.android.intent.action.MEDIA_CHECKING

BroadcastReceiver.android.intent.action.MEDIA_MOUNTED

BroadcastReceiver.android.intent.action.MEDIA_SCANNER_STARTED

BroadcastReceiver.android.intent.action.MEDIA_SCANNER_FINISHED

3. 在通知栏卸载sdcard

BroadcastReceiver.android.intent.action.MEDIA_EJECT

BroadcastReceiver.android.intent.action.MEDIA_UNMOUNTED

注意:接收到 ACTION_MEDIA_EJECT 广播之后,sd 卡还是可以读写的,

直到接收到 ACTION_MEDIA_REMOVED、ACTION_MEDIA_UNMOUNTED等广播之后,sd 卡才不可以读写。

三、广播注册代码片段

		// 注册广播
		IntentFilter intentFilter = new IntentFilter();
		intentFilter.addAction(Intent.ACTION_MEDIA_EJECT); // 用户移除外部存储媒体
		intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED); // Sd卡被移除
		intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);// Sd卡被插入,且已经挂载
		intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);// Sd卡存在,但还没有挂载
		intentFilter.addAction(Intent.ACTION_MEDIA_CHECKING);// 存在外部媒体,磁盘检查挂载点的路径中包含的检查媒体意图
		intentFilter.addAction(Intent.ACTION_MEDIA_NOFS);// 外部媒体存在,而是使用一个不兼容的fs(或者是空白)挂载点的路径中包含的检查媒体意图
		intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);// 开始扫描
		intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);// 请求媒体扫描仪扫描一个文件,并将它添加到媒体数据库
		intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);// Sd卡作为USB大容量存储被共享,挂载被解除
		intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTABLE);
		intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);// 扫描完成
		intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);// sd卡已经从sd卡插槽拔出,但是挂载点还没解除
		intentFilter.addDataScheme("file");
		registerReceiver(sdBroadcast, intentFilter);

本文大部分摘于《Android SD卡挂载状态》,感谢源作者分享。

版权声明 1、 本站名称 91易搜
2、 本站网址 https://www.91es.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权请留言
4、 本站禁止发布或转载任何违法的相关信息,如有发现请向站长举报
导航号,我的单页导航

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...