getExternalStorageState() показывает "смонтированный", но все еще не может создать папку
Манифест имеет
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
Настройки приложения, "Хранилище" = изменить / удалить содержимое SD-карты "Те же результаты на Samsung Tablet с 2.3.5 и Motorola Droid с 2.3.4. Устройства не привязаны к разработке машины.
Код следует:
public class OutputStudentRecords extends StActivity{
SharedPreferences mStudentSettings;
protected Cursor mCursor;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_csv);
String state = Environment.getExternalStorageState();
Toast.makeText(getApplicationContext(),"State is " + state, Toast.LENGTH_LONG).show();
if (!Environment.MEDIA_MOUNTED.equals(state)){
//We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
Toast.makeText(getApplicationContext(), "We Can Read And Write ", Toast.LENGTH_LONG).show();
File file = new File(Environment.getExternalStorageDirectory()
+File.separator
+"studentrecords"); //folder name
file.mkdir();
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
Toast.makeText(getApplicationContext(), "We Can Read but Not Write ", Toast.LENGTH_LONG).show();
}else{
//something else is wrong
mExternalStorageAvailable = mExternalStorageWriteable = false;
Toast.makeText(getApplicationContext(), "We Can't Read OR Write ", Toast.LENGTH_LONG).show();
}
}
}
Toast возвращает State="mount", однако он пропускается до "мы не можем читать или писать" на обеих машинах. Я что-то пропустил, но не могу найти это, любая помощь будет оценена.
Спасибо
1 ответ
Решение
Может быть, вы должны изменить это:
if (!Environment.MEDIA_MOUNTED.equals(state)){
в это:
if (Environment.MEDIA_MOUNTED.equals(state)){
(т.е. удалите "!")