提出问题:
消息的提醒级别importance设置的是NORMAL,我指的importance是通知channel的importance值,通过下面一段代码跳转到通知页,调整通知渠道channel的重要性为“高”,值为4。
Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
} else {
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", context.getPackageName());
intent.putExtra("app_uid", context.getApplicationInfo().uid);
}
if (currentActivity != null) {
currentActivity.startActivity(intent);
NotificationManager notificationManager = (NotificationManager) currentActivity.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
notificationManager.areNotificationsEnabled();
}
}
但是在下一次接收到离线通知后,通知渠道channel的重要性自动降为了“一般”,值为3。
通知内容的importance值为“NORMAL”,category为“WORK”。
这种通知渠道channel的重要性自动降级是什么原因呢?
另外,我集成的是友盟推送,使用华为推送版本为
api 'com.huawei.hms:push:6.9.0.300'
问题解答:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-custom-chan-0000001050040122
华为推送暂时不支持中国区的自定义通知渠道,所以channelID不会生效的,出现您这种importance降级的情况应该就是这个导致的。
提问:请问在拥有子分类权益,importance字段为NORMAL,处于中国区的情况下,离线通知如何通过代码实现横幅效果呢
解答:
华为推送暂时不支持离线通知的横幅通知。
结论:不在白名单的app应用,不支持自定义渠道id,不支持横幅通知,即使设置渠道,并调整渠道重要性到“高”,任然不会起到作用,并且下一次接收到离线通知后,该渠道重要性会被重置降级。