I’m trying to find a way to set a new default ringtone by code from my Android activity.
I have already downloaded the ringtone into a bytearray.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Finally, I managed to set the default ringtone to one that i downloaded.
The download code is not included below, only what was needed to set it as default ringtone.
Anyway, I do not totally understand what this code is doing.
The Ringtone manager needs a uri to the file that is to be set as new ringtone. But this uri can not be directly to the sdcard like “/sdcard/media/ringtones/mysong.mp3”. That does not work!
What you need is the external file uri of the file which could be something like
“/external/audio/media/46”
The 46 is the id of the column in the MediaStore database, so thats why you need to add the sdcard file into the database first.
Anyway, how does mediastore maintain its ids? This number can get really high, as you do this operation many times.
Do i need to delete this row my self? Problem is that some times i dont even controll the deleting of the file since it can be deleted directly from the sdcard with a filebrowser.