Как получить мелодию звонка во время выполнения? - PullRequest
5 голосов
/ 12 февраля 2011

у меня есть следующий xml:

 <?xml version="1.0" encoding="utf-8"?>
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Ringtone preference" android:key="ringtone_option_preference">
    <RingtonePreference 
    android:key="ring_tone_pref"
    android:title="Set Ringtone Preference"
    android:showSilent="true"
    android:ringtoneType="notification"
    android:summary="Set Ringtone"/>
 </PreferenceScreen>

И я хочу, чтобы каждый раз, когда собирается показывать уведомление, смотреть на значение мелодии звонка и подавать соответствующий звуковой сигнал:) ... Если быть более точным, мои уведомления генерируются в классе broadcastReceiver, и каждый раз, когда получатель ловит что-то оно создает новое уведомление ... Я просто хочу, чтобы мелодия уведомления менялась в зависимости от мелодии звонка, установленной в настройках ..

Как я могу это сделать?

Спасибо

Mike

Ответы [ 2 ]

24 голосов
/ 12 февраля 2011

Неважно, я нашел это:

 SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(context);
 String strRingtonePreference = preference.getString("ring_tone_pref", "DEFAULT_SOUND");        
 notification.sound = Uri.parse(strRingtonePreference);
4 голосов
/ 17 мая 2016
<RingtonePreference
            android:defaultValue="true"
            android:key="ringtone_sound"
            android:ringtoneType="notification"
            android:showSilent="true"
            android:showDefault="true"
            android:title="Sound"
            android:enabled="true" />

Затем После

String PREFERENCE_SOUND = "ringtone_sound";

private SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)

String strRingtonePreference = sharedPreferences.getString(PREFERENCE_SOUND, "DEFAULT_SOUND");
Uri defaultSoundUri = Uri.parse(strRingtonePreference);
notificationBuilder.setSound(defaultSoundUri);
...