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", "")

posted on 2012-05-15 10:22  Scott_wb  阅读(1773)  评论(0)    收藏  举报

导航