Привет, у меня проблема с сохранением звука в качестве мелодии звонка или уведомления. Я продолжаю получать свой набор Toast - Failed - Check your SDCard
Где ошибка?
Привет, у меня проблема с сохранением звука в качестве мелодии звонка или уведомления. Я продолжаю получать свой набор Toast - Failed - Check your SDCard
Где ошибка?
Проблема здесь
String path=Environment.getExternalStorageDirectory().getPath()+"/sdcard/media/ringtone/";
Environment.getExternalStorageDirectory()
в любом случае вернет вам путь /SDCard, используйте другое имя папки для хранения рингтона. как /yourPackage/media вместо /sdcard/media
как это будет интерпретировано как /SDCard/yourPackage/media/
Надеюсь, поможет
Environment.getExternalStorageDirectory()
в любом случае вернет вам путь /SDCard, поэтому вместо этого пропустите эту часть
- person Some one Some where; 05.03.2012
/sdcard
создал ли он папку com.ring/
Я начинаю сомневаться, что это операция чтения, которая вызывает исключение при чтении необработанного файла медиафайла
- person Some one Some where; 05.03.2012
getBaseContext().getResources().openRawResource(ressound);
попробуйте поместить статический файл как ressound=R.raw.yourFile.ogg
просто для проверки.
- person Some one Some where; 05.03.2012
хорошо, вот пример кода, который я сейчас использую в своем приложении для хранения данных на моей SDCard, посмотрите и попробуйте использовать его.
File newSoundFile;
ContentResolver mCr;
Log.e("check this tag","path for SDCard:"+Environment.getExternalStorageDirectory().getAbsolutePath());
//storing at: /mnt/sdcard/media
File directoryStructure=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Halloween");
//if directory doesn't exist create a directory if that fails too return false
if(!(directoryStructure.exists())){
if(!(directoryStructure.mkdirs())){
return false;
}
}
/*for(int allRing=0;allRing<ringId.length;allRing++)*/{
newSoundFile = new File(directoryStructure, "/"+HalloweenWallpaper.longPressSelected+".mp3");
Uri mUri = Uri.parse("android.resource://"+getApplication().getPackageName()+"/"+ringId[HalloweenWallpaper.longPressSelected]);
mCr = HalloweenWallpaper.this.getContentResolver();
AssetFileDescriptor soundFile;
try {
soundFile= mCr.openAssetFileDescriptor(mUri, "r");
} catch (FileNotFoundException e) {
soundFile=null;
Log.e("first check", "here --"+e.getMessage());
return false;
}
try {
byte[] readData = new byte[1024];
FileInputStream fis = soundFile.createInputStream();
FileOutputStream fos = new FileOutputStream(newSoundFile);
int i = fis.read(readData);
while (i != -1) {
fos.write(readData, 0, i);
i = fis.read(readData);
}
fos.close();
} catch (IOException io) {
Log.e("Second Check", "--"+io.getMessage());
return false;
}
}
//STORES SUCCESFULLY