问题标签 [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.

0 投票
3 回答
56206 浏览

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是一种有效的解决方法,但它不起作用。

0 投票
1 回答
811 浏览

android - Android 通知频道默认静音铃声

我想为默认声音静音Android Oreo创建一个通知通道,我尝试不指定声音,并且在发送通知时它仍然会播放声音。有任何想法吗?

0 投票
2 回答
1976 浏览

android - 如何在 Android 8.0 中检测通知通道被用户阻止

当用户阻止我的应用程序创建的通知通道时,我的应用程序是否会收到任何回调,或者以后可以检测到它?

0 投票
4 回答
14004 浏览

android - 从 Android O Api 创建通知通道的正确方法

从 Android O (API 26) 版本引入的通知渠道。我从以下链接中了解了它:

问题:

  1. 如果我有多个通知,那么在应用程序启动时创建通知通道并将其保持在一个好主意ApplicationScope吗?

    /li>
  2. 如果我new Notification.Builder(getApplicationContext(), PRIMARY_CHANNEL)在将频道添加到通知管理器之前尝试执行此行会发生什么

0 投票
2 回答
4305 浏览

android - 为应用程序启用后台限制的 Android O 设置

根据文档-

注意:默认情况下,这些限制仅适用于面向 Android 8.0(API 级别 26)或更高版本的应用。但是,用户可以从“设置”屏幕为任何应用启用大部分这些限制,即使应用的目标 API 级别低于 26。

我的目标是低于 API 26,但我找不到在官方 android 模拟器中启用限制的设置。

此设置在哪里可用?

0 投票
4 回答
3576 浏览

android - Android O:通知通道本地化

我创建了一个这样的通知通道:

我为R.string.notification_channel_foobar提供了不同的翻译,并且频道是使用创建时使用的语言创建的,因此如果我最终更改设备的语言,该频道将保持旧语言。有没有办法克服这个问题,或者这是一个限制,即设计?

0 投票
1 回答
2016 浏览

android - Android 通知通过 NotifiationChannel.enableVibration(false) 振动

对于 API 26 (Android 8.0),我们需要为每个通知定义一个NotificationChannel。每个通道都有自己的干扰设置(例如振动、灯光、声音)。

问题: 当我禁用此频道的振动并将其部署在 Android 8.0(2017 年 9 月安全更新)手机(Nexus 5X)上时,通知无论如何都会触发振动并自动打开(弹出式),我没有设置但想要禁用。

  1. 我在 MainActivity 中注册了一个 NotificationChannel:

    /li>
  2. 我为通知设置了 NotificationChannel:

    /li>

更新(2017 年 10 月 5 日安全更新)

现在一切都按预期工作,没有变通方法,所以我可以选择 targetSDK 26(之前,我使用 25 来避免这种错误行为)。对于其他版本有类似错误的其他手机尚未收到最新更新的情况,我将以下解决方法标记为已接受答案。

0 投票
1 回答
1625 浏览

android - 如何为较低的 API(<26)创建 NotificationChannel?

如何为较低的 API ( < 26 ) 创建 NotificationChannel?AppCompat 有什么办法吗?

0 投票
1 回答
2612 浏览

android - android oreo 上的通知 - 动态启用声音/振动

我有一个显示进度通知的前台服务,如果它完成了,该通知将作为普通通知重用以显示服务的结果

我允许用户在我的应用程序中定义最终通知是否静默。所以这就是我所做的:

问题

  • 一位安卓奥利奥用户告诉我,通知在每次更新时都会发出声音/振动
  • 同一个用户告诉我,重新启动后,声音/振动消失了

我想要的是

  • 我希望通知频道默认振动并播放声音(如果用户没有在我的频道的 android 设置中更改此设置)
  • 我想动态决定即使启用声音/振动也不播放声音/振动
  • 如果用户为我的频道禁用声音/振动,我很好,我不会在任何时候播放声音或振动

我应该如何实现这一目标?

编辑 - 一种解决方案如下:

使用两个渠道:

  • 一个用于更新通知
  • 一个用于最终结果通知。

这对我来说看起来很奇怪,我假设我可以使用一个通道,默认设置为声音并使用这个通道。如果用户允许我播放声音(似乎我目前被迫播放声音),我应该能够定义自己是否播放声音。否则我当然不会播放声音。看起来目前每个服务都需要两个通道,在通知中显示进度并在完成时默认播放声音。这很难向用户解释,因为您需要两个通道来执行相同的操作,一个用于进度,一个用于最终结果......

0 投票
1 回答
8597 浏览

android - 更新通知渠道名称的正确方法是什么?

我想根据 Locale 更新通知频道名称。为了做到这一点,我正在使用 BroadcastReceiver 并监听 ACTION_LOCALE_CHANGED 广播。

我的问题是更新名称的正确方法是什么?

我应该做这样的事情吗?

或者我应该像这样重新创建频道?

通过这样做(第二种方法),我是否会覆盖除频道名称之外的任何内容?