[英]Android Studio: Set mp3 from raw folder as device ringtone in 2020
我想將位於我的原始文件夾中的原始 mp3 文件設置為設備鈴聲(使用 java)。 不幸的是,舊教程不再適用,通常是因為您需要一些寫入權限。 我嘗試了所有方法,但沒有解決方案有效(解決方案都非常老了......)。
任何人都可以幫助我嗎? 有沒有人解決這個問題的好代碼示例?
如果您不介意將文件放在資產文件夾中,那么您可以這樣做:
將您的 mp3 從資產復制到可訪問的設備 memory
使用將新復制的文件設置為鈴聲
void set_asset_ringtone(Context context, String output_file_path, String asset_name) throws IOException { ///////////////copying from assets to filepath//////////////// InputStream externalDbStream = context.getAssets().open(asset_name); String outFileName =output_file_path+"/"+asset_name; OutputStream localDbStream = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = externalDbStream.read(buffer)) > 0) { localDbStream.write(buffer, 0, bytesRead); } localDbStream.close(); externalDbStream.close(); //////Setting the ringtone ///////////////// File rigntone_file=new File(outFileName); ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, rigntone_file.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, "ring"); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); values.put(MediaStore.MediaColumns.SIZE, rigntone_file.length()); values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name); 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); Uri uri = MediaStore.Audio.Media.getContentUriForPath(rigntone_file.getAbsolutePath()); Uri newUri = getContentResolver().insert(uri, values); try { RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri); } catch (Throwable t) { } }
您將需要這些權限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
有可能
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.