I’ve been able to fix it . Thanks @hirnsushi for showing me how to get the logs.
I’ll leave the solution here for anyone else to find it:
Root Cause of this
Using some file manager app (e.g. Amaze) to select the ringtone results in a setting being stored that crashes the com.android.soundpicker
.
Symptoms
- Your selected ringtone will not play
- since the
com.android.soundpicker
handles this and it cannot parse the setting so it defaults to the default sound
- since the
- You cannot undo the mistake inside the Android UI
- since
com.android.soundpicker
cannot start with the existing setting, but it’s the only app that would store a correct setting
- since
Solution: adb shell to the rescue
Luckily one can set the settings manually through adb:
1. Preparation
- Connect your phone to your computer
- Setup adb (see first steps of How to gather logs )
2. Get Settings
List all system settings:
adb shell settings list system
- Look for:
alarm_alert=
,notification_sound=
, andringtone=
- Any entry which does NOT start with
content://0@media
will probably crash - In my case the problem was
ringtone=content://0@com.amaze.filemanager/storage_root/storage/emulated/0/Ringtones/monk_theme.mp3
3. Get one of the not broken alarm settings
adb shell settings get system notification_sound
In my case this returns:
content://0@media/external/audio/media/30?title=Snappy&canonical=1
Since the above seems to be a default android sound you can probably just copy it
4. Overwrite the settings that cause com.android.soundpicker
to crash
adb shell settings put system ringtone content://0@media/external/audio/media/30?title=Snappy&canonical=1
5. Use Android UI again
Now you can use the Android UI again to change the sound settings as com.android.soundpicker
will no longer crash.
Remember to only use the soundpicker to set your ringtones. Otherwise you might need to do the whole ceremony again