How to set ringtone with RingtoneManager.ACTION_RINGTONE_PICKER? How to set ringtone with RingtoneManager.ACTION_RINGTONE_PICKER? android android

How to set ringtone with RingtoneManager.ACTION_RINGTONE_PICKER?


You must implement onActivityResult() to receive result from user's pick, then save it.

if (resultCode == RESULT_OK) {    Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);    if (uri != null) {    String ringTonePath = uri.toString();}

Here an example: http://www.ceveni.com/2009/07/ringtone-picker-in-android-with-intent.html

EDIT: update

RingtoneManager.setActualDefaultRingtoneUri(    myActivity,    RingtoneManager.TYPE_RINGTONE,    uri);

You must call this :)


Intent intent=new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtone);intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtone);startActivityForResult(intent , 1);

"ringtone" is the uri in which I am saving the picked tone in onActivityResult().

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    if (resultCode == RESULT_OK) {        switch (requestCode) {        case 1:            ringtone = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);            // Toast.makeText(getBaseContext(),RingtoneManager.URI_COLUMN_INDEX,            // Toast.LENGTH_SHORT).show();            break;        default:            break;        }    }}

Hope it helps you. Hit answered if it does.


The code is perfect and works for me. But you forgot to mention the permissions required..here it is. try this code..hope it helps

<uses-permission android:name="android.permission.WRITE_SETTINGS" ></uses-permission>  <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" ></uses-permission>