Android:将声音保存为铃声和通知
作者:互联网
我正在保存我的应用程序中的声音,以用作铃声或通知声音.这是我的代码的一部分,取自this页面:
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, soundName);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
values.put(MediaStore.Audio.Media.ARTIST, "artist");
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(k.getAbsolutePath());
this.getContentResolver().insert(uri, values);
我的理解是声音将被保存以及铃声,通知声音和警报,因为标志都被设置为“真”.至少在模拟器上这确实有效,但在实际设备上,声音只出现在铃声列表中,我不知道为什么.
编辑:我已经尝试进一步调查:删除带有“IS_RINGTONE”的行不会改变任何东西(如果一次只能使用一个标志),声音不会显示在列表中,并带有通知 – 声音.
任何帮助表示赞赏.
亲切的问候,SelectOr
解决方法:
我玩了解决这个问题的路径,这是我到目前为止提出的解决方案:
在模拟器上路径无关紧要,声音将出现在铃声以及通知列表中.
在手机上,如果文件保存到/ media / audio / ringtones或/ media / audio /但不作为通知,声音将显示铃声列表.如果我使用路径/媒体/音频/通知声音最终出现在通知列表(!)中,但不再出现在铃声中.
所以我似乎要将声音保存两次才能进入两个列表? (但为什么一旦在模拟器上工作就保存它?)
如果还有另一种方法可以将声音传入两个列表(甚至是三个列表,也有警报音,我只是不打扰它们),只保存一次,请告诉我. (现在我的解决方法是一个对话框,让用户选择是将声音保存为铃声还是通知.)
标签:android,notifications,audio,ringtone 来源: https://codeday.me/bug/20190630/1341406.html