2015-10-19 67 views
1

据我所知,要设置一个声音作为铃声,它应该被插入MediaStore。而对于在MediaStore中写入,WRITE_EXTERNAL_STORAGE权限是必需的。但是......有没有办法将声音(例如外部存储中的MP3文件)设置为铃声而不需要WRITE_EXTERNAL_STORAGE权限?将声音设置为没有WRITE_EXTERNAL_STORAGE权限的铃声?

+0

到目前为止的解决方案? – Ton

回答

1

您应该使用Android的RingtoneManager。有一个名为[setActualDefaultRingtoneUri](http://developer.android.com/reference/android/media/RingtoneManager.html#setActualDefaultRingtoneUri(android.content.Context,INT,android.net.Uri))方法:

公共静态无效setActualDefaultRingtoneUri(上下文语境,诠释 类型,乌里ringtoneUri)

设置给定声音类型的默认声音的Uri。

参数

  • 方面:用于查询的上下文。
  • 类型:应该设置默认声音的类型。其中TYPE_RINGTONE,TYPE_NOTIFICATIONTYPE_ALARM
  • ringtoneUri:指向默认声音设置的Uri。

您可以通过使用File.toURI()得到一个文件的URI。

+0

谢谢。它可以工作,但是当我进入声音设置 - >通知声音时,而不是看到我选择的声音,我看到“未知”,并且没有声音被选中。 –

+0

@SergioViudes,同样的问题在这里,我看到未知的声音,甚至声音文件不存在于铃声列表中,你做了什么,请分享。 –

+0

我没有解决它。任何帮助将不胜感激 –