SD卡——检查存储介质的可用性

每次使用外部存储之前,都应该先调用getExternalStorageState()方法来检查存储介质是否可用

调用getExternalFilesDir()方法,传入下面的参数可得到外部存储中的目录:

Environment.DIRECTORY_MUSIC:存放音乐文件

Environment.DIRECTORY_MOVIES:存放视频文件

Environment.DIRECTORY_DOWNLOADS:存放下载的文件

Environment.DIRECTORY_PICTURES:存放图片

Environment.DIRECTORY_RINGTONES:存放铃声文件

Environment.DIRECTORY_ALARMS:存放提示音文件

调用getExternalStoragePublicDirectory()方法可得到外部公用目录:

Music/:媒体扫描器会将这里的文件归类为音乐。

Podcasts/:媒体扫描器会将这里的文件归类为podcast(播客)。

Ringtones/:媒体扫描器会将这里的文件归类为铃声。

Alarms/:媒体扫描器会将这里的文件归类为警告音。

Notifications/:媒体扫描器会将这里的文件归类为通知声。

Pictures/:存放图片,不包括用照相机拍摄的图片。

Movies/:存放视频,不包括用照相机的摄像功能拍摄的视频。

Download/:存放各种下载的文件。

boolean exStorageReadable = false;
boolean exStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    /* 可以读写外部存储介质 */
    exStorageReadable = exStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    /* 只能读,不能写 */
    exStorageReadable = true;
    exStorageWriteable = false;
} else {
     // 不能读写,外部存储介质可能处于上文中所讲的任一一种不可用状态之中,或其他不可用的状态
    exStorageReadable = exStorageWriteable = false;
}
时间: 2024-11-07 07:43:53

SD卡——检查存储介质的可用性的相关文章

Android工具类整理(1)检查是否有网络、检查SD卡是否存在

以下工具类主要用于: (1)检查是否有网络. (2)检查是否有WIFI. (3)检查是否有移动网络 import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class CommonUtils { /** 检查是否有网络 */ public static boolean isNetworkAvailable(Context conte

Android USB大容量存储时SD卡状态监听(转)

对SD卡状态监听,到现在为止我知道的有两种方式: 1.注册StorageEventListener来监听sd卡状态 StorageEventListener中有onStorageStateChanged()方法,当sd卡状态改变时,此方法会调用,对各状态的判断一般会用到Environment类,此类中包含的有关sd卡状态的常量有: MEDIA_BAD_REMOVAL:表明SDCard 被卸载前己被移除 MEDIA_CHECKING:表明对象正在磁盘检查 MEDIA_MOUNTED:表明sd对象是

RAM、DRAM、SD卡

catalogue 1. ROM.RAM.DRAM.SRAM和FLASH的区别 2. 内存工作原理 3. DRAM基本结构与原理 4. SD卡基本结构与原理 1. ROM.RAM.DRAM.SRAM和FLASH的区别 0x1: ROM ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,ROM也有很多种 1. PROM是可编程的ROM: PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了 2. EPROM(可擦除可编程ROM

android 64 sd卡读写的操作

package com.itheima.writesd; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.

手机SD卡损坏补救措施

现在的应用程序越来越重,比如微信.来往之类的,稍微用一段时间,就会占用几十MB甚至上百MB的空间.而有时候甚至手机会出现"无响应"的现象,需要你选择"继续等待"还是"强行关闭":前阵子有几次,无响应之后我直接给强制重启了,结果发现重启完成之后,出现"SD卡已损坏,您可能必须将其重新格式化"的问题. 可是,我的SD卡里面还有一些之前的文件和资料等,需要拷贝出来,不能格式化,使用豌豆荚链接,不认识SD卡,于是寻找解决办法. 我找了

SD卡可用空间大小的判断

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File path = Environment.getExternalStorageDirectory(); /*StatFs: * Retrieve overall information about the space on a file

创见WiFi SD卡破解之路

我最近搞了张Transcend WiFi SD,颇为得意.它可以让我在几秒钟内将单反(奶昔,相当便携)中拍摄的照片传到任何支持wifi的设备上.我很喜欢在旅途中拍摄和分享图片,所以对我而言,可以无线传输图片的SD卡是一个很好的解决方案.确实如此!(以后也是!).不过移动应用程序可以好好改进下(下载7MB的图像仅仅为了渲染?点击下载后还要重新下载一遍!谁能告诉我这是为什么?),但是,嘿,它能够完成任务! 这个小小的设备不仅可以存储16GB数据(还有32GB版本),而且还是一个嵌入式系统,能够运行应

(待解决)开发板刷系统(一)---破坏bootloader以及从SD卡启动

开发板上默认在板载iNand中烧入了bootloader和Android系统镜像,如果想要从SD卡来启动,就必须先破坏掉iNand中的bootloader,让其校验失败,从而选择第二启动即从SD通道2启动. 破坏板载iNand中的bootloader的方法,可以参考九鼎的文档,其中提到的在Android平台下破坏iNand的bootloader的方法如下如所示: 执行上述指令后,在执行sync命令确保数据有效.解读下上面那条指令的意思: 输入文件是/dev/zero,输出文件是/dev/bloc

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap