我已经开发了一个改变铃声的Android应用程序。它工作得很好,但有一件事困扰着我。
当我将铃声设置为通知音时,它会在我收到SMS消息时播放。但是,如果我之前选择了自定义短信铃声(即,在SMS设置中,当我收到SMS时,新的通知音将不会播放。
这可能会导致这样的情况:有人从Android市场安装铃声应用程序,设置通知音,并且因为选择的通知在他收到SMS时不会播放而感到失望。解决方案很简单(短信->设置->选择铃声->默认铃声),但它确实是一个麻烦,如果(S)他不知道这一点。
这是我用来设置通知音调的方法:
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
.
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, persistentUri);
发布于 2012-03-12 13:26:06
除非您以root身份执行此操作,否则无法执行此操作。
股票彩信/短信应用程序使用的铃声存储在它自己的shared_preferences中。因为每个shared_preference都只能由它的所有者访问(这是由android强制执行的,除非你是超级用户),这是根本不可能的。
如果你有一部带根目录的手机(或者只是使用模拟器),你可以自己查一下,然后通过adb shell
在设备上查看/data/data/com.android.mms/shared_prefs/com.android.mms_preferences.xml
。
它包含应用程序使用的shared_preferences,还包含一个包含内容URI的密钥pref_key_ringtone
。
编辑:我还没有确认这一点,但我认为pref_key_ringtone
的默认值将设置为Settings.System.DEFAULT_NOTIFICATION_URI。当播放时,这将路由到系统默认通知声音。如果用户未对此进行更改,则您的解决方案将起作用。
https://stackoverflow.com/questions/9545906
复制