Ответ 1
Для звука уведомления по умолчанию:
String defaultPath = Settings.System.DEFAULT_NOTIFICATION_URI.getPath();
Я пишу приложение, которое предназначено для замены стандартного/биржевого мессенджера. Поэтому мне нужно определить мелодию по умолчанию для входящих сообщений. Я имею в виду входящую SMS-оповещение.
Кто-нибудь знает, как его получить?
Для звука уведомления по умолчанию:
String defaultPath = Settings.System.DEFAULT_NOTIFICATION_URI.getPath();
Чтобы получить объект Ringtone
стандартного рингтона, используйте RingtoneManager
:
Ringtone ringtone = RingtoneManager.getRingtone(context, Settings.System.DEFAULT_RINGTONE_URI);
Если пользователь изменил мелодию звонка по умолчанию на мелодию звонка, предоставленную в стороннем приложении-мессенджере, AFAIK вы не сможете получить доступ к новой мелодии звонка, если стороннее приложение не предоставляет свои рингтоны через ContentProvider
.
Если вы используете классы Notification.Builder
или NotificationCompact.Builder
, вызов setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
в конструкторе должен сделать трюк.
Это будет воспроизводить тональный сигнал уведомления по умолчанию, который пользователь выбрал, когда система отображает ваше уведомление.
Тот, который мне помог,
RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
.