Aandroid使用RingtonePreference获取系统铃声名称和Uri
使用android内置的首选项(Preference)组件可以很方便我们进行软件参数的设置,下面介绍RingtonePreference选择铃声组件的使用
RingtonePreference mAlarmPref = (RingtonePreference) findPreference("alarm"); mAlarmPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub mAlarmPref.setSummary(getRingtonName(Uri.parse(newValue.toString()))); SharedPreferences sp=mAlarmPref.getPreferenceManager().getSharedPreferences(); sp.edit().putString("alarm", newValue.toString()).commit(); return false; } }); public String getRingtonName(Uri uri) { Ringtone r=RingtoneManager.getRingtone(this, uri); return r.getTitle(this); }
当选择好铃声后返回值是newValue,并且类型是Uri,并Uri保存起来
通过Uri查询系统铃声的名称,就是调用getRingtoName()方法.
下面是获取存储的Uri值,保存的文件路径在/data/data/[PackageName]/shared_prefs/[PackageName]_preferences.xml中
mAlarmPref.getSharedPreferences().getString("alarm", "")