据我所知,要将声音设置为铃声,应将其插入MediaStore。对于在MediaStore中写入,需要WRITE_EXTERNAL_STORAGE权限。但是......有没有办法将声音(例如外部存储设备中的MP3文件)设置为铃声而不需要WRITE_EXTERNAL_STORAGE权限?
答案 0 :(得分:1)
您应该使用Android的RingtoneManager
。有一种方法叫[setActualDefaultRingtoneUri](http://developer.android.com/reference/android/media/RingtoneManager.html#setActualDefaultRingtoneUri(android.content.Context,int,android.net.Uri)):
public static void setActualDefaultRingtoneUri(Context context,int type,Uri ringtoneUri)
为给定的声音类型设置默认声音的Uri。
参数
- context:用于查询的上下文。
- type:应设置默认声音的类型。其中一个
TYPE_RINGTONE
,TYPE_NOTIFICATION
或TYPE_ALARM
- ringtoneUri:指向要设置的默认声音的Uri。
您可以使用File.toURI()
获取文件的Uri。