android各种获取sdcard状态
2014-11-26 20:17
253 查看
安卓程序在对sdcard操作时,常常需要先获取sdcard的当前状态,常见的sdcard状态获取和判断取有如下方法
通过广播机制判断当前sdcard的状态
注册sdcard状态广播:
定义sdcard状态广播:
<span style="font-size:18px;">/** 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory(); /** StatFs 看文件系统空间使用情况 */ StatFs statFs=new StatFs(sdcardDir.getPath()); /** Block 的 size*/ Long blockSize=statFs.getBlockSize(); /** 总 Block 数量 */ Long totalBlocks=statFs.getBlockCount(); /** 已使用的 Block 数量 */ Long availableBlocks=statFs.getAvailableBlocks(); /** 格式化可用大小 */ Formatter.formatFileSize(getApplicationContext(), availableBlocks);</span>
通过广播机制判断当前sdcard的状态
注册sdcard状态广播:
private void initSDCard() { IntentFilter intentFilter = new IntentFilter(); intentFilter.setPriority(1000);// 设置最高优先级 intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);// sd卡被插入,且已经挂载 intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);// sd卡存在,但还没有挂载 intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);// sd卡被移除 intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);// sd卡作为 // USB大容量存储被共享,挂载被解除 intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);// sd卡已经从sd卡插槽拔出,但是挂载点还没解除 // intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);// 开始扫描 // intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);// 扫描完成 intentFilter.addDataScheme("file"); registerReceiver(sdCardReceiver, intentFilter);// 注册监听函数 }
定义sdcard状态广播:
private final BroadcastReceiver sdCardReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("android.intent.action.MEDIA_REMOVED")// 各种未挂载状态 || action.equals("android.intent.action.MEDIA_UNMOUNTED") || action.equals("android.intent.action.MEDIA_BAD_REMOVAL") || action.equals("android.intent.action.MEDIA_SHARED")) { finish(); Toast.makeText(MainContentActivity.this, "SD卡已被拔出,本地数据没法初始化!", Toast.LENGTH_SHORT).show(); } } };
相关文章推荐
- Android各种机型,各种系统版本,如何获取外置SDCard路径
- android获取监听SD Card状态的方法
- android SD卡路径问题以及如何获取SDCard 内存
- Android 解析如何获取SDCard 内存
- Android 获取sdcard音乐文件
- Android SD卡路径问题以及如何获取SDCard 内存详解
- Android(判断wifi是否开启,手机屏幕状态,sdcard是否被拔出,设置全屏)
- android SD卡路径问题以及如何获取SDCard 内存
- Android 获取SDCard上图片和视频的缩略图
- 【转】Android 如何获取SDCard 内存(一)
- Android 小项目之--解析如何获取SDCard 内存
- Android 获取系统或SDCARD剩余空间信息
- Android 小项目之--解析如何获取SDCard 内存
- android SD卡路径问题以及如何获取SDCard 内存
- Android SD卡路径问题以及如何获取SDCard 内存
- Android 有两种办法可以监控SDCARD的状态
- Android 小项目之--解析如何获取SDCard 内存
- Android中StatFs获取系统/sdcard存储(剩余空间)大小
- Android 获取系统或SDCARD剩余空间信息
- android 手机内存 和 sdcard的 大小的获取