簡體   English   中英

Android Studio:將原始文件夾中的 mp3 設置為 2020 年的設備鈴聲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM