`
huobengluantiao8
  • 浏览: 1031361 次
文章分类
社区版块
存档分类
最新评论

Android 设置铃声

 
阅读更多

在网上找了很多关于铃声设置的,不晓得怎么回事就是没测试通过,后来换了另外一种方式解决了。回过头来看了一下原理是一样的,于是就把两者合并到了一起。原理:首先根据传进来的绝对路径来查询传进来路径的歌曲是否存在,如果存在则得到id和uri,通过ContentUris.withAppendedId(uri,id),将uri和id拼接成一个新的Uri,然后将新的uri设置成想要的铃声即可。

最主要的代码:RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri);

第一个参数表示上下文、第二个参数表示设置的铃声状态,第三个表示当前的歌曲uri。

如果传进来的歌曲路径不存在,则直接调用系统的插入数据方法,得到一个返回的uri,这里得到的uri是不带id参数的,不晓得为什么,这样设置铃声是不成功的。我想到的笨方法是,在插入数据之后应该立即发送广播让系统扫描媒体数据,然后来查询得到新的uri,然后再来设置。不晓得哪位大牛有什么好的方法能够借鉴一下。

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
这是之前在网上搜索的普遍方法,按照这个方法得到的uri是不带id参数的。只是将传入的文件添加到系统的媒体数据库中。
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

另外一种方法是调用系统的设置铃声的方法。如果不加自定义铃声的方法则调用的是系统默认的铃声设置。若添加了上面自定义铃声的代码则会将传进来的铃声

添加到铃声设置列表中供你选择。

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

最后需要添加修改系统设置的权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics