问题标签 [notification-channel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 Android 8 中为 FCM 推送消息指定 Android 通知通道
我们的应用现在有targetSdkVersion 26
(Android 8)并且应用使用 FCM 推送通知。
按照FCM 文档的规定,我将 FCM 客户端库更新到了 11.2.0 版:
通过此 FCM 客户端库更新,FCM 通知开始出现在 Android 设备上。很好,但是当应用程序在后台时,系统会处理 FCM 消息,因此它使用名为“Miscellaneous”的默认 Android 通知通道,这不是我们想要的(我们有其他通知通道,并且“Miscellaneous”在该列表中听起来令人困惑)。
正如FCM 文档所说,有一种方法可以为 FCM 消息指定默认通知通道:
(可选)在应用程序组件中,元数据元素为通知设置默认图标、颜色和通知通道(Android O 中的新功能)。每当传入消息未明确设置图标、颜色或notification_channel时,Android 都会使用这些值。
但是没有显示代码示例(示例仅显示图标和颜色)。所以我刚刚通过谷歌搜索github 上的Firebase Cloud Messaging Quickstart中的示例找到:
但它不起作用 - FCM 通知仍然出现在“杂项”频道中。我在日志中看到:
W/FirebaseMessaging:AndroidManifest 中缺少默认通知通道元数据。将使用默认值。
当然,我尝试重新安装该应用程序。仍然有问题。
好吧,理想情况下,应该有某种方法在发送消息时在后端指定通知通道。允许测试发送的 FCM 开发控制台现在在 UI 中有这样一个选项:
它工作正常。但是我们的后端使用 Java Amazon SNS API,我不知道该 API 是否允许在发送消息时指定 Android 通知通道(因为它是一个新的 Android 功能,亚马逊需要时间来采用它)。因此,目前设置默认通知通道AndroidManifest.xml
是一种有效的解决方法,但它不起作用。
android - Android 通知频道默认静音铃声
我想为默认声音为静音的Android Oreo创建一个通知通道,我尝试不指定声音,并且在发送通知时它仍然会播放声音。有任何想法吗?
android - 如何在 Android 8.0 中检测通知通道被用户阻止
当用户阻止我的应用程序创建的通知通道时,我的应用程序是否会收到任何回调,或者以后可以检测到它?
android - 从 Android O Api 创建通知通道的正确方法
从 Android O (API 26) 版本引入的通知渠道。我从以下链接中了解了它:
问题:
如果我有多个通知,那么在应用程序启动时创建通知通道并将其保持在一个好主意
/li>ApplicationScope
吗?如果我
new Notification.Builder(getApplicationContext(), PRIMARY_CHANNEL)
在将频道添加到通知管理器之前尝试执行此行会发生什么
android - 为应用程序启用后台限制的 Android O 设置
根据文档-
注意:默认情况下,这些限制仅适用于面向 Android 8.0(API 级别 26)或更高版本的应用。但是,用户可以从“设置”屏幕为任何应用启用大部分这些限制,即使应用的目标 API 级别低于 26。
我的目标是低于 API 26,但我找不到在官方 android 模拟器中启用限制的设置。
此设置在哪里可用?
android - Android O:通知通道本地化
我创建了一个这样的通知通道:
我为R.string.notification_channel_foobar提供了不同的翻译,并且频道是使用创建时使用的语言创建的,因此如果我最终更改设备的语言,该频道将保持旧语言。有没有办法克服这个问题,或者这是一个限制,即设计?
android - Android 通知通过 NotifiationChannel.enableVibration(false) 振动
对于 API 26 (Android 8.0),我们需要为每个通知定义一个NotificationChannel。每个通道都有自己的干扰设置(例如振动、灯光、声音)。
问题: 当我禁用此频道的振动并将其部署在 Android 8.0(2017 年 9 月安全更新)手机(Nexus 5X)上时,通知无论如何都会触发振动并自动打开(弹出式),我没有设置但想要禁用。
我在 MainActivity 中注册了一个 NotificationChannel:
/li>我为通知设置了 NotificationChannel:
/li>
更新(2017 年 10 月 5 日安全更新)
现在一切都按预期工作,没有变通方法,所以我可以选择 targetSDK 26(之前,我使用 25 来避免这种错误行为)。对于其他版本有类似错误的其他手机尚未收到最新更新的情况,我将以下解决方法标记为已接受答案。
android - 如何为较低的 API(<26)创建 NotificationChannel?
如何为较低的 API ( < 26 ) 创建 NotificationChannel?AppCompat 有什么办法吗?
android - android oreo 上的通知 - 动态启用声音/振动
我有一个显示进度通知的前台服务,如果它完成了,该通知将作为普通通知重用以显示服务的结果
我允许用户在我的应用程序中定义最终通知是否静默。所以这就是我所做的:
问题
- 一位安卓奥利奥用户告诉我,通知在每次更新时都会发出声音/振动
- 同一个用户告诉我,重新启动后,声音/振动消失了
我想要的是
- 我希望通知频道默认振动并播放声音(如果用户没有在我的频道的 android 设置中更改此设置)
- 我想动态决定即使启用声音/振动也不播放声音/振动
- 如果用户为我的频道禁用声音/振动,我很好,我不会在任何时候播放声音或振动
我应该如何实现这一目标?
编辑 - 一种解决方案如下:
使用两个渠道:
- 一个用于更新通知
- 一个用于最终结果通知。
这对我来说看起来很奇怪,我假设我可以使用一个通道,默认设置为声音并使用这个通道。如果用户允许我播放声音(似乎我目前被迫播放声音),我应该能够定义自己是否播放声音。否则我当然不会播放声音。看起来目前每个服务都需要两个通道,在通知中显示进度并在完成时默认播放声音。这很难向用户解释,因为您需要两个通道来执行相同的操作,一个用于进度,一个用于最终结果......
android - 更新通知渠道名称的正确方法是什么?
我想根据 Locale 更新通知频道名称。为了做到这一点,我正在使用 BroadcastReceiver 并监听 ACTION_LOCALE_CHANGED 广播。
我的问题是更新名称的正确方法是什么?
我应该做这样的事情吗?
或者我应该像这样重新创建频道?
通过这样做(第二种方法),我是否会覆盖除频道名称之外的任何内容?