We recently encountered the same problem. This is not a good solution, but WhatsApp does the same. Basically, we show the selection of the ringtone inside our application, and then delete and recreate the notification channel with the new channel identifier and the selected uri ringtone. You can copy most of the settings made to the channel to a new one, except for do not disturb.
As I said, this is not a good solution, and I don’t know what will happen if the channel is recreated a lot. But I hope the melody does not change too often.
Note. The notification settings screen displays the number of deleted channels as a spam prevention mechanism.
source share