I have a mp3 file "a.mp3" on my sdcard. I want to set this as my phone ringtone..... Below is the code I found from different answers but when I run the code, the ringtone in changed to None, not a.mp3. Please help me. I am a beginner. Thanks in advance.
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/a.mp3";
File k = new File(path, "a.mp3");
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "A");
values.put(MediaStore.MediaColumns.SIZE, 210341);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mpeg");
values.put(MediaStore.Audio.Media.ARTIST, "");
values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
// Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(FirstActivity.this, RingtoneManager.TYPE_RINGTONE, newUri);
Also if I want the user to choose another ringtone, what should I do? I want to start an Intent (which will open File Explorer) and then I will get the path of that sound file. which I will save in the path String and will continue the same code. Please guide me how to start that intent too.