Android SD卡检测错误
我有这段代码,当SD卡从Android设备上移除时,应该执行这段代码(通过移除,我理解,用户从Android设备菜单或配置中选择Android SD卡检测错误,android,android-sdcard,Android,Android Sdcard,我有这段代码,当SD卡从Android设备上移除时,应该执行这段代码(通过移除,我理解,用户从Android设备菜单或配置中选择remove,就像在物理移除卡之前从任何其他系统移除USB设备或SD卡一样): 应该卸载并移除该卡,但看起来它实际上是在这个过程中安装的 我做错了什么?您可以在中找到更多信息 这里有一个关于通过USB检测挂载sd卡的不错的话题 您也可以改用此有用的方法: static public boolean hasStorage(boolean requireWriteAcces
remove
,就像在物理移除卡之前从任何其他系统移除USB设备或SD卡一样):
应该卸载并移除该卡,但看起来它实际上是在这个过程中安装的
我做错了什么?您可以在中找到更多信息 这里有一个关于通过USB检测挂载sd卡的不错的话题 您也可以改用此有用的方法:
static public boolean hasStorage(boolean requireWriteAccess) {
//TODO: After fix the bug, add "if (VERBOSE)" before logging errors.
String state = Environment.getExternalStorageState();
Log.v(TAG, "storage state is " + state);
if (Environment.MEDIA_MOUNTED.equals(state)) {
if (requireWriteAccess) {
boolean writable = checkFsWritable();
Log.v(TAG, "storage writable is " + writable);
return writable;
} else {
return true;
}
} else if (!requireWriteAccess && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
代码时,我删除卡是挂载,但它必须卸载。我用另一个代码解决了这个问题。运行平稳。没问题
sSDpath = null;
fileCur = null;
for (String sPathCur : Arrays.asList("ext_card", "external_sd", "ext_sd", "external","extSdCard", "externalSdCard")) // external sdcard
{
fileCur = new File("/mnt/", sPathCur);
if (fileCur.isDirectory() && fileCur.canWrite()) {
sSDpath = fileCur.getAbsolutePath();
kartk.setText("Hafıza Kartı Takılı");
Toast.makeText(getApplicationContext(), "kkkBirinci", Toast.LENGTH_LONG).show();
break;
}
}
fileCur = null;
if (sSDpath == null) {
sSDpath = Environment.getExternalStorageDirectory().getAbsolutePath();
kartk.setText("Hafıza Kartı Takılı Değil");
Toast.makeText(getApplicationContext(), "kkkikinci", Toast.LENGTH_LONG).show();
}
sSDpath = null;
fileCur = null;
for (String sPathCur : Arrays.asList("ext_card", "external_sd", "ext_sd", "external","extSdCard", "externalSdCard")) // external sdcard
{
fileCur = new File("/mnt/", sPathCur);
if (fileCur.isDirectory() && fileCur.canWrite()) {
sSDpath = fileCur.getAbsolutePath();
kartk.setText("Hafıza Kartı Takılı");
Toast.makeText(getApplicationContext(), "kkkBirinci", Toast.LENGTH_LONG).show();
break;
}
}
fileCur = null;
if (sSDpath == null) {
sSDpath = Environment.getExternalStorageDirectory().getAbsolutePath();
kartk.setText("Hafıza Kartı Takılı Değil");
Toast.makeText(getApplicationContext(), "kkkikinci", Toast.LENGTH_LONG).show();
}