RingtonePreference通过ringtoneType属性将系统中的可用声音分为:①铃声(ringtone)、②通知(notification)、③警报(alarm)等类型,它们最终会表现为形如content://settings/system/notification_sound的资源位置,因此只要在Settings对应的ContentProvider应用中有正确的数据输出,则在Messaging应用中的使用就没有问题。目前在模拟器上无法再做进一步验证,因为系统中没有可用的声音资源可供选择。
?
?
其实,可用提示音列表的实际动作并不是RingtonePreference中完成的,它调用了RingtoneManager服务的ACTION_RINGTONE_PICKER意图来达成的,
而被选择铃音的播放则是通过为Notification对象赋予正确的sound属性来达成。