我正在开发一个简单的应用程序,它应该能够访问来自内部存储和外部存储(可移动卡)的文件,如 Micro SD 卡(当用户插入 SDCARD 时)。
(不是设备附带的内部 SD 卡,我知道它可以使用Environment.getExternalStorageDirectory()
)
是否可以查明用户是否已将 SD 卡插入设备?
如果是,是否可以获取该 SD CARD 的路径?
我发现硬编码路径不是一个好的选择,因为不同的设备对于用户插入的 sdcard 有不同的路径。
很感谢任何形式的帮助。
谢谢你。
最佳答案
Android 仅将可移动存储介质(例如 SD 卡)或内部(不可移动)存储视为外部存储。
以下是表单 developer.android.com
要检查 SDCard 的可用性,您可以使用以下代码。
private boolean isExternalStorageAvailable() {
String state = Environment.getExternalStorageState();
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
// Something else is wrong. It may be one of many other states, but
// all we need
// to know is we can neither read nor write
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
if (mExternalStorageAvailable == true
&& mExternalStorageWriteable == true) {
return true;
} else {
return false;
}
}
请阅读 http://developer.android.com/guide/topics/data/data-storage.html#filesExternal