我在尝试将文件写入android 4.0.3
中的外部SD卡时遇到问题,即使我已经使用了WRITE_EXTERNAL_STORAGE
和...之类的写入权限。 WRITE_MEDIA_STORAGE
,所以我找到了另一种方法来解决它,但现在我想知道我的应用程序是否可以写入可移动SD卡
或不,如果没有,那么我想切换到内部SD卡。
所以现在的问题是我如何知道是否支持写入可移动SD卡,所以如果有人做过任何类似的实现,请随时在这里分享代码。
答案 0 :(得分:1)
直接从API指南中回答:
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
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;
}
答案 1 :(得分:1)
我有一个应用程序可以写入内部和外部SD卡。我有WRITE_EXTERNAL_STORAGE权限,但没有别的。
处理外部SD卡的主要问题是找到路径,因为getExternalStorageDirectory()
通常会返回内部SD卡。它应该是/mnt
的子目录,如果有帮助的话。
答案 2 :(得分:0)
要查找您是否可以写入SD卡,请查看Environment
课程。
String externalStorageState = Environment.getExternalStorageState();
然后您可以使用
检查此状态 Environment.MEDIA_MOUNTED(externalStorageState)
和/或Environment.MEDIA_MOUNTED_READ_ONLY
(externalStorageState)