我正在尝试通过以下解释和此代码将我自己的警报音复制到Android系统.
问题是我无法将文件从原始资源复制到外部存储器.我在这里看了其他问题,但似乎没有答案对我有用.
这是我的AndroidManifest(我把WRITE_EXTERNAL_STORAGE外应用程序标记为说明这里):
...
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application...
Run Code Online (Sandbox Code Playgroud)
这是我的代码.它运行在从我的主要活动的onCreate开始的新线程上.从该新线程调用方法"void onFirstTime()",并且此方法重复调用"void copyRawRingtone(File dstPath,int resId)":
void copyRawRingtone(File dstPath, int resId) {
final String fileName = getResources().getResourceEntryName(resId) + ".mp3";
File dstFile = new File(dstPath, fileName);
if (!dstFile.exists()) {
InputStream srcStream = getResources().openRawResource(resId);
FileOutputStream dstStream = null;
try {
dstFile.createNewFile(); // THIS THROWS THE EXCEPTION
dstStream = new FileOutputStream(dstFile);
byte[] buffer = new …Run Code Online (Sandbox Code Playgroud) android ×1