[摘]Android SD卡挂载状态

Android2018年7月12日 pm8:06发布6年前 (2018)更新 3xcn.com@站长
0 0 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、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

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

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。