2011-10-05 56 views
0

我使用這個代碼,我發現或多或少在這裏,但這個返回總是相同的答案: 「默認鈴聲是微光」,而不是。如何顯示當前鈴聲標題的報警,通知,語音通話,

我想顯示設置了什麼樣的聲音用戶: 報警,系統通知,voicecall,日曆通知,短信通知(?做我忘了一些)

我試圖用這個代碼:

SharedPreferences prefsRingtones = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
Uri ringtoneUri = Uri.parse(prefsRingtones.getString("RingtonePref","DEFAULT_RINGTONE_URI")); 
Ringtone ringtone = RingtoneManager.getRingtone(this, ringtoneUri); 
String ringToneName = ringtone.getTitle(this); 

或者這一翻譯DEFAULT_RINGTONE_URI使用DEFAULT_ALARM_ALERT_URI,DEFAULT_NOTIFICATION_URI

回答

1

嘗試設置prefsRingtones到RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)的默認值,而不是「DEFA ULT_RINGTONE」。

SharedPreferences prefsRingtones = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
Uri ringtoneUri = Uri.parse(prefsRingtones.getString("RingtonePref",RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))); 
Ringtone ringtone = RingtoneManager.getRingtone(this, ringtoneUri); 
String ringToneName = ringtone.getTitle(this); 

更改TYPE_NOTIFICATION您需要的任何聲音類型。

+0

另請注意,有一些特殊情況下無聲鈴聲,你必須處理(ringtoneUri將爲空) – dymmeh

2

謝謝,它正在工作。對於所有其他這是工作代碼:

Uri ringtoneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
Ringtone ringtone = RingtoneManager.getRingtone(this, ringtoneUri); 
String ringToneName = ringtone.getTitle(this);