0

I want to have a custom ringtone. I am able to check for ringtones, but not able to set it as ringtone. I am having issues with finding the URI of that ringtone.

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select     
ringtone:");
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, 
true);

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_ALL);
            startActivityForResult(intent, 1);


protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case 1:
                /*Toast.makeText(getBaseContext(), 
 RingtoneManager.ID_COLUMN_INDEX, Toast.LENGTH_SHORT).show();
                  Uri targetUri = data.getData();*/

                Uri uri = data.getData();
                String[] ringTonePath = new String[0];
                    ringTonePath[0] = uri.getPath();
                    Cursor c = getContentResolver().query(uri, ringTonePath, null, null, null);
                    int columnIndex = c.getColumnIndex(ringTonePath[0]);
                    String tonepath = c.getString(columnIndex);
                    toneurl.setText(tonepath);
                    Log.w("Path of tone from 
    home......******************.........", tonepath + "");

   RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), 
   RingtoneManager.TYPE_NOTIFICATION, uri);

                    break;

            default:
                break;
        }
Dimitar
  • 4,402
  • 4
  • 31
  • 47
Nikhil Kumar
  • 141
  • 1
  • 14
  • java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://media/external/audio/media/15 (has extras) }} to activity {com.example.rknikhil.myapplication/com.example.rknikhil.myapplication.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 – Nikhil Kumar Apr 23 '15 at 10:09
  • i am getting the above error – Nikhil Kumar Apr 23 '15 at 10:09

1 Answers1

1

Inside OnActivityResult , use

Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
N Kaushik
  • 2,198
  • 18
  • 29