使用HmsMessageService(HMS推送套件)无法在华为设备上获取通知

Unable to get Notifications on Huawei devices with HmsMessageService (HMS push kit)

我正在使用 HMS 推送套件来获取通知。大约 1 周前通知工作正常,但现在当我重新 运行 那个代码时,它不工作了。 我交叉检查了所有的东西,但找不到任何东西。 我正在使用的依赖项是:

implementation 'com.huawei.hms:push:5.1.1.301'

我在我的项目中也添加了 agconnect-services.json。 还在清单中添加了应用程序 ID。 SHA-256 密钥也可以。

接收通知的代码是:

public class HMSMessageService extends HmsMessageService {

@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
    
    }
}

我也在清单文件中添加了这个服务的标签。

我也尝试使用 HMS 工具包(android 工作室中的编码助手),从那里发送通知成功,但我没有在应用程序上收到它。

要查看 Logcat 日志,请单击 here

根据您提供的内容,以下方法用于接收数据消息,而不是通知消息。并在设备上显示通知消息。

public class HMSMessageService extends HmsMessageService {

@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
    
    }
}

如果仍然无法收到通知,您可以提供logcat日志和令牌数据存储位置等信息,我们可以据此分析此问题并尽力提供帮助。

这是由于一些后端问题。 由于安全原因,有一些检查(IP 被阻止)导致我无法收到通知。 (但奇怪的是,由于后端检查,只有 HMS 通知被阻止,而不是 firebase 通知)

可能你的设备在内网,有一些安全控制,请在你的防火墙中配置推送服务器的IP地址和端口: https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/restrictions-0000001050040064#section10881161131412

If a firewall is configured on the network of your app users, ensure that the following port numbers and IP addresses are enabled to allow traffic, so that your message delivery rate will not be affected:

Port numbers:

443
5223
IP addresses:

49.4.0.0/20
80.158.0.0/16
114.119.0.0/20
121.36.0.0/20
159.138.0.0/20
160.44.0.0/16