【问题标题】:How can I set a ringtone programmatically android [duplicate]如何以编程方式设置铃声android [重复]
【发布时间】:2025-12-01 01:45:01
【问题描述】:

我必须在 android 中以编程方式设置铃声。 如何在 android 中设置铃声?我在网上搜索但找不到好的示例 谁能帮帮我?

【问题讨论】:

标签: android set picker ringtone


【解决方案1】:
ContentValues values = new ContentValues();
   values.put(MediaStore.MediaColumns.DATA, ringFile.getAbsolutePath());
   values.put(MediaStore.MediaColumns.TITLE, "ring");
   values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
   values.put(MediaStore.MediaColumns.SIZE, rindFile.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(ringFile.getAbsolutePath());
   Uri newUri = mCr.insert(uri, values);


   try {
       RingtoneManager.setActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_RINGTONE, newUri);
   } catch (Throwable t) {

   }

ringFile 是铃声的文件路径。

【讨论】:

  • 这个代码是在onActivityResult方法中添加的?
  • 你在哪里声明了 mCr?
  • Uri newUri = getContentResolver().insert(uri, values);