帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
显示全部楼层
216
帖子
5
勋章
5917
Y币

阿里移动推送Android SDK: Android 8.0以上设备通知接收不到?

[复制链接]
发表于 2018-10-11 16:58:44
本帖最后由 52yaoer 于 2018-10-12 07:43 编辑

阿里移动推送Android SDK: Android 8.0以上设备通知接收不到?

1. 问题

在Andorid 8.0以上的设备集成推送SDK后,推送接收不到,日志显示通知已经从服务端发送到客户端,但是并未创建通知,这是怎么回事?应该如何解决?

2. 问题原因

自8.0(API Level 26)起,Android 推出了NotificationChannel机制,旨在对通知进行分类管理。如果用户App的targetSdkVersion大于等于26,且并未设置NotificaitonChannel,创建的通知是不会弹出的。

3. 解决方案
3.1 上传自定义模块包notifyChannelModule(见附件).

3.2 调用createNotificationChannel注册NotificationChannel(见模块文档).
3.3 利用OpenApi推送

服务端推送时指定其NotificationChannelid,可参考如下代码:

  1.     @Test
  2.     public void testAdvancedPush() throws Exception {
  3.         PushRequest pushRequest = new PushRequest();
  4.         // 推送目标
  5.         pushRequest.setAppKey(appKey);
  6.         pushRequest.setTarget("DEVICE"); //推送目标: device:推送给设备; account:推送给指定帐号,tag:推送给自定义标签; all: 推送给全部
  7.         pushRequest.setTargetValue("xxxxxxxxxxxxxxx");
  8.         pushRequest.setPushType("NOTICE"); // 消息类型 MESSAGE NOTICE
  9.         pushRequest.setDeviceType("ANDROID"); // 设备类型 ANDROID iOS ALL.
  10.         // 推送配置
  11.         pushRequest.setTitle("ALi Push Title"); // 消息的标题
  12.         pushRequest.setBody("Ali Push Body"); // 消息的内容
  13.         // 推送配置: Android
  14.         pushRequest.setAndroidNotifyType("BOTH");//通知的提醒方式 "VIBRATE" : 震动 "SOUND" : 声音 "BOTH" : 声音和震动 NONE : 静音
  15.         pushRequest.setAndroidOpenType("APPLIACTION"); //点击通知后动作 "APPLICATION" : 打开应用 "ACTIVITY" : 打开AndroidActivity "URL" : 打开URL "NONE" : 无跳转
  16.        // 指定notificaitonchannel id
  17.         pushRequest.setAndroidNotificationChannel("1");
  18.       ......
  19.     }
复制代码



本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
177
帖子
0
勋章
1万+
Y币
感谢分享。
0
帖子
0
勋章
6
Y币
楼主,用了这个方法之后,是可以接收到通知了,但是进程关闭后,厂商通道,用华为测试的,接收不到通知。不知道什么原因,,,,希望楼主指教:
216
帖子
5
勋章
5917
Y币
knownTom 发表于 2019-10-21 13:18
楼主,用了这个方法之后,是可以接收到通知了,但是进程关闭后,厂商通道,用华为测试的,接收不到通知。不 ...

如果是用的我的阿里推送的话,,需要自己在自己服务端进行openapi对接。
设置弹窗,就能收到了。

开启小米、华为、OPPO辅助通道,后台需要设置pushRequest.setAndroidPopupActivity(""),这个Activity的名称是:com.xiaomi.huawei.push.XiaoMiPushActivity
0
帖子
0
勋章
6
Y币
52yaoer 发表于 2019-10-21 13:20
如果是用的我的阿里推送的话,,需要自己在自己服务端进行openapi对接。
设置弹窗,就能收到了。

<meta-data name="com.huawei.hms.client.appid" value="appid=****************" />
<feature name="aliPushNoUtdId">
     <param name="AppKey_iOS" value="****************"/>
     <param name="AppSecret_iOS" value="****************"/>
     <param name="AppKey_Android" value="****************"/>
     <param name="AppSecret_Android" value="****************"/>
     <param name="channelId" value="自定义的"/>
     <param name="channelName" value="自定义的"/>
     <param name="channelDes" value="自定义的"/>
     <param name="enableLights" value="true"/>
     <param name="enableVibration" value="true"/>
</feature>
彻底退出,杀进程之后,收不到通知,用的是你的模块,后台也设置了pushRequest.setAndroidPopupActivity("")
216
帖子
5
勋章
5917
Y币
其他渠道厂商你没配置么?
216
帖子
5
勋章
5917
Y币
你就这样不配置其他渠道厂商,是不行的,,,
0
帖子
0
勋章
6
Y币
52yaoer 发表于 2019-10-28 16:56
你就这样不配置其他渠道厂商,是不行的,,,

其他厂商没申请,,,刚才那个问题解决了,是申请华为的配置出错了。我换了一个包名重新申请的配置,然后就可以。多谢大佬
216
帖子
5
勋章
5917
Y币
knownTom 发表于 2019-10-28 17:26
其他厂商没申请,,,刚才那个问题解决了,是申请华为的配置出错了。我换了一个包名重新申请的配置,然后 ...

ok.
26
帖子
0
勋章
250
Y币
knownTom 发表于 2019-10-28 14:54
彻底退出,杀进程之后,收不到通知,用的是 ...

请问一下你是怎么设置的弹窗
123下一页
您需要登录后才可以回帖 登录

本版积分规则