如何从铃声首选项中读取铃声

时间:2015-01-02 05:25:35

标签: android android-fragments android-preferences

我试过下面的代码。但是我无法从铃声首选项中读取铃声。

        <RingtonePreference 
            android:title="@string/RING_TONE_SETTING" 
            android:summary="@string/RING_TONE_SETTING_DESCRIPTION" 
            android:ringtoneType="notification"
            android:showSilent="true"
            android:showDefault="true"
            android:key="prefnotificationTone"/>

这就是我的阅读方式,

 SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(this);
    String strRingtonePreference = preference.getString("prefnotificationTone", "DEFAULT_SOUND");        

    Uri notification = Uri.parse(strRingtonePreference);

    mMPlayer = MediaPlayer.create(getApplicationContext(), notification);
    mMPlayer.start();

我总是得到DEFAULT_SOUND。

2 个答案:

答案 0 :(得分:0)

将以下属性添加到XML中的首选项:

android:persistent="true"

答案 1 :(得分:0)

SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(context);
String strRingtonePreference = preference.getString("ring_tone_pref", "DEFAULT_SOUND");        

你刚刚获得了上面的铃声。你必须将其解析为url,然后从系统中获取相应的铃声。

defaultRingtoneUri = Uri.parse(strRingtonePreference);
    defaultRingtone = RingtoneManager.getRingtone(this, defaultRingtoneUri);

希望这有帮助。