Android: как заставить функцию «Сохранить на SD-карту» работать как до, так и после Android 2.2

Вероятно, очень простое решение, но у меня пока очень мало опыта. Как мне изменить следующее, чтобы оно работало как для Android 2.2 (mnt/sdcard), так и для предыдущих версий (/sdcard).

Заранее спасибо!

String path="/sdcard/media/audio/notifications/";      
String filename="sound1"+".ogg";        

boolean exists = (new File(path)).exists();
         if (!exists){new File(path).mkdirs();}          
FileOutputStream save;      
try {        save = new FileOutputStream(path+filename);          
save.write(buffer);          
save.flush();          
save.close();         } 
catch (FileNotFoundException e) {        
// TODO Auto-generated catch block          
return false;        } catch (IOException e) {       
// TODO Auto-generated catch block          
return false;      }      

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));        

File k = new File(path, filename);         

ContentValues values = new ContentValues();         
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());         
values.put(MediaStore.MediaColumns.TITLE, "sound1 Notification");         
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");         
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");         
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);         
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);         
values.put(MediaStore.Audio.Media.IS_ALARM, true);         
values.put(MediaStore.Audio.Media.IS_MUSIC, false);           

//Insert it into the database      
this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values);       
return true;      }

//После комментария пользователя432209 у меня есть это, и оно работает

Путь к файлуDir = Environment.getExternalStorageDirectory();

Строка path=pathDir+"/media/audio/notifications/"; Строка filename="sound1"+".ogg";


person Aaron    schedule 24.01.2011    source источник


Ответы (1)


Вы, вероятно, не хотите сохранять прямо на SD-карту. Я бы порекомендовал «спросить у телефона», куда он хочет, чтобы вы сохранили.

File externalDirectory = Environment.getExternalStorageDirectory();
person user432209    schedule 24.01.2011
comment
Спасибо за ответ, пожалуйста, извините за мое невежество, как мне это внедрить в вышеизложенное. - person Aaron; 24.01.2011
comment
Неважно, я понял, я думаю. Если это неправильно, пожалуйста, дайте мне знать, как я могу сделать это лучше. Большое Вам спасибо!!! - person Aaron; 24.01.2011