android – 如何将我的应用程序的通知声音添加到通知声音列表?

前端之家收集整理的这篇文章主要介绍了android – 如何将我的应用程序的通知声音添加到通知声音列表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我希望用户能够为我的应用选择通知声音,因此我使用以下代码

Intent ringtoneIntent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,false);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT,false);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,"Choose");
ringtoneIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,(Uri) null);
fragment.startActivityForResult(ringtoneIntent,REQUEST_RINGTONE);

不幸的是,我的应用程序自己的通知声音不在列表中. Google环聊,日历和Facebook都在列表中.我假设这些程序已经做了一些注册android,但我找不到任何关于如何做到这一点的文档.

最佳答案
首先将文件复制到rigntones文件夹(请参阅Environment.DIRECTORY_RINGTONES)

然后注册声音:

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA,file.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE,nameOfSound);
values.put(MediaStore.MediaColumns.MIME_TYPE,"audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST,yourAppName);
values.put(MediaStore.Audio.Media.IS_RINGTONE,true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION,true);
values.put(MediaStore.Audio.Media.IS_ALARM,true);
values.put(MediaStore.Audio.Media.IS_MUSIC,false);

Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
getContentResolver().insert(uri,values);

猜你在找的Android相关文章