2011-02-12 23 views
5

私は次の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クラスで生成され、受信者が何かをキャッチするたびに新しい通知が作成されます...通知の着信音が環境設定で設定された着信音に基づいて変更されます。

どうすればいいですか?

マイク

答えて

24

ネヴァーマインド

おかげで、私はそれを見つけた:

SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(context); 
String strRingtonePreference = preference.getString("ring_tone_pref", "DEFAULT_SOUND");   
notification.sound = Uri.parse(strRingtonePreference); 
+0

した後、あなたがPreferenceFragmentでOnPrefrenceChangeListenerを()を使用しましたか? –

+0

@mixkat。 RingTonePreferenceのサマリーとしてどのように着信音の名前を設定できますか? –

3
<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); 
+0

RingTonePreferenceのサマリーとして着信音の名前を設定するにはどうすればよいですか? –

+0

が正しく説明されました –

関連する問題