Android通知频道设置-未列出应用提供的声音

时间:2018-08-14 00:09:08

标签: java android audio android-notifications

一整天都在工作,找不到答案。

以前,在Android Oreo之前,我们的应用程序将允许用户通过webview(我们自己的UI)通过html页面更改通知的色调。我们将显示位于android系统(铃声mgr)中的铃声,并获取apps raw文件夹中列出的所有内容。

在新的Android Oreo中,我们无法轻松更改通知铃声,我们必须使用频道。所以我只是将UI更改为。.

  

if(OS.version < Android Oreo) --->继续使用相同的UI并设置音调。

     

if(OS.version >= Android Oreo) --->创建意图,并为结果创建startActivity-   intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");

我认为一切都很好,但是意识到该应用程序提供的我最初在应用程序启动时设置的声音不在声音列表中。因此,如果用户转到频道设置,并将声音从“应用程序提供的声音”更改为其他声音,则用户没有办法无需重新安装就无法获得“应用程序提供的声音”。

有一个默认通知声音选项,但是,这不是我们的默认声音。 (也许这是android的默认通知声音。。。)默认通知声音应该是应用提供的声音。

我确实发现有一个文件夹可以放置一些通知声音。 Android \ media \ com.google.android.talk \ Notifications ,它会显示在该声音列表中,但是,可能不是所有电话上的位置相同,而且用户可能不知道哪种声音是实际的默认声音。

有什么想法吗?我是否需要传递一些额外信息,使默认声音成为应用程序提供的声音?我需要在清单中添加一些内容吗?

1 个答案:

答案 0 :(得分:0)

最终解决了我自己的问题。我实施的修复方法是获取原始声音并将其添加到铃声管理器中。之后,当要更改通道声音时,它将预先填充为“应用程序提供的声音”。

默认通知声音实际上是系统默认通知声音,您不想为任何人更改。 :)

以下URL帮助我找到了解决方案。

The method setActualDefaultRingtoneUri(Context, int, Uri) in the type RingtoneManager is not applicable for the arguments OnItemClickListener

http://programondaspot.blogspot.com/2015/09/set-raw-resource-file-as-ringtone-in.html