Is there a way to customize the Android Ringtone Picker Dialog?

how to play ringtone in android programmatically
android ringtone class
android set ringtone programmatically
how to set ringtone in android source code
ringtonemanager action_ringtone_picker
ringtone permission android
ringtonemanager getactualdefaultringtoneuri

I show a dialog for selecting one of the native ring tones / text tones with the following code:

private void showTonePicker(int toneType, String pickerTitle) {

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);

    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, toneType);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, pickerTitle);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, userTone.equals(TFSettings.SILENT_TONE_ID) ? null : Uri.parse(userTone));
    startActivityForResult(intent, (toneType == RingtoneManager.TYPE_RINGTONE ? 1 : 2));

I call the above method like this:

  • for selecting text tone: showTonePicker(RingtoneManager.TYPE_NOTIFICATION, getString(R.string.texting_tone));
  • for selecting ring tone: showTonePicker(RingtoneManager.TYPE_RINGTONE, getString(R.string.ringing_tone));

I have two problems to solve:

  1. I must show lower cased buttons

  2. In both cases (i.e. when selecting ring tone and also when selecting text tone), the native dialof shows "Default ringtone". I must display "Default text tone" in case of selecting a text tone (in this case toneType = RingtoneManager.TYPE_NOTIFICATION).

Is there a way to resolve these? Can we customize the native tone picker?

Thanks for the answers in advance!


To set default ringtone, you have to set EXTRA_RINGTONE_EXISTING_URI first.

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtoneUri);

How to customize the Android Ringtone Picker Dialog?, putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, uri); startActivityForResult(intent, 123); It open a ringtone select dialog like below. Now, Here� If that folder doesn’t already exist, just create it. Android should instantly see your new ringtone in Settings > Sounds > Phone ringtone, but in some cases it may require the phone to reboot before it shows up. You can also assign your custom ringtones to specific contacts, so you always know who’s calling.

Can we customize the native tone picker?

No, sorry, not with respect to the items that you describe. You would need to build your own UI for this.

Simple Ringtone Picker dialog which allows you to pick different , Android Ringtone Picker. Simple Ringtone Picker dialog How to use? call RingtonePicker.Builder#show() to display ringtone picker dialog. picker.addOnPositiveButtonClickListener { val (startOfRange, endOfRange) = it // in case date range operation val date = it // single select date } Apply Theming. In last I just wanna show you guys how we can change the Material Date Picker dialog to fullscreen and revert it to normal dialog. Here are a couple of material themes available. R.attr.materialCalendarTheme (default) R.attr.materialCalendarFullscreenTheme

I'm not sure it's possible. Besides, there is no guarantee the RingtonePreference is going to open the System's ringtone picker. The user might have another app installed that has an activity with the android.intent.action.RINGTONE_PICKER intent filter declared in the manifest and he might even have it as the default Ringtone picker.

You might implement a custom RingtonePreference and a custom RingtonePickerActivity and force your custom Ringtone picker to be open but you might irritate your users.

If I may ask, for what reason would you like to change it anyway?

Reset ringtone picker preferences, You can use Handcent app as the default ringtone picker. with a dialog box asking you to select one of the application as ringtone picker. not knowing how to clear them (like me) then they go and search for it and nobody knows .. im actually kind of thankful that it wasnt something more difficult to find, so .. there you go . Android Date Time picker are used a lot in android apps. In this tutorial we’ll demonstrate the use of a Date Picker and Timer Picker Dialog in our android application. These components are used to select date and time in a customised user interface.

Android Ringtone Picker, Simple Ringtone Picker dialog which allows you to pick different sounds from ringtone, alarm tone, notification tone and music from external storage Source link: How to use? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied� Although there is a standard way to call the contact list in Android, it does not always feel well-integrated in your app Android applications. UnifiedContactPicker is an Android library which allows you to easily integrate contact picking workflow into your application with minimal effort.

RingtoneManager, If you are showing a ringtone picker for some other type of sound, you are free to provide any Uri here. Value: "android.intent.extra.ringtone.DEFAULT_URI"� 27 May 2020 Recurrence picker view and dialog for Android. Fully customizable recurrence picker dialog and fragment, compatible with API 19. Easy to set up and to customize, almost every view can be styled with attributes.

RingtonePreference, All available ringtone sounds. notification, 2, Notification sounds. ringtone, 1, Ringtones. android:showDefault. Whether to show� We recommend that you use DialogFragment to host each time or date picker. The DialogFragment manages the dialog lifecycle for you and allows you to display the pickers in different layout configurations, such as in a basic dialog on handsets or as an embedded part of the layout on large screens.

  • Is there a way to preselect the default ring / text (notifcation) tone? "intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, Settings.System.DEFAULT_RINGTONE_URI);" seems to not work.
  • I had the same problem and I cannot believe that no one know the answer, though it's so common task. Didn't you find answer yet?