글쎄, 많은 일을 시도했지만 더 좋은 목표는 원하는 파일을 sd에 복사하는 것이지만 항상 새로운 파일 크기는 0 바이트입니다. (안드로이드 - res/raw 리소스를 SD에 정확하게 복사하십시오.
?!<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
: 문제를 알고 감사를 많이
을 내 매니페스트에 이러한 권한이 내 나쁜 english.Any의 하나
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = sonidoActual+".mp3";
File newSoundFile = new File(baseDir, fileName);
Uri mUri = Uri.parse("android.resource://com.genaut.ringtonelists/raw/"+sonidoActual);
AssetFileDescriptor soundFile;
try {
soundFile= getContentResolver().openAssetFileDescriptor(mUri, "r");
} catch (FileNotFoundException e) {
soundFile=null;
}
try {
byte[] readData = new byte[1024*500];
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);
Log.d("Degug - While: ", "i: "+i);
}
fos.flush();
fos.close();
} catch (IOException io) {
}
죄송합니다 :
이 내 코드입니다
더 많은 정보 : assets
에서 파일을 복사하고 작동하지 않는 몇 가지 코드를 시도했습니다. 벨소리를 잘 설정하는 일부 앱이 있습니다. 그래서 내 SD에 문제가 있다고 생각하지 않습니다. 나는 희망이 없다 : S
는이 분명히 잘 작동, 자산의 코드입니다 : https://stackoverflow.com/a/4530294/1422434
내가 getResources.openRawResource():
너무 노력하지만 당신으로
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = nombreActual+".mp3";
File newSoundFile = new File(baseDir, fileName);
try {
byte[] readData = new byte[1024*500];
InputStream fis = getResources().openRawResource(contexto.getResources().getIdentifier(sonidoActual,"raw", contexto.getPackageName()));
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) {
}
왜 대신 안드로이드'대부분-불법의'의 GetResources()'와'openRawResource을()'사용하지)'? http://goo.gl/e1JcL – CommonsWare
menifest 파일에 적절한 '권한'을 추가 했습니까?를 (를) 참조하십시오. –
퍼미션과 추가 정보가있는 첫 번째 게시물을 편집했습니다. thaks read – Genaut