移动推送 Android : Android 8.0 以上设备通知接收不到? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

2020-03-27 22:57:27 1108 1

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

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-03-27 22:59:43

    阿里云移动推送自v3.1.1版本开始支持NotificationChannel机制,以下是接入步骤: 3.1 集成新版 集成移动推送SDK v3.1.1及其以上版本 集成服务端OpenApi SDK v3.9.0及其以上版本:

    com.aliyun aliyun-java-sdk-push 3.9.0 3.2 注册NotificationChannel 在客户端创建自己的NotificationChannel,可参考下面代码 具体调用位置为:Application的onCreate,云推初始化前后都可以,可参考 Demo

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            // 通知渠道的id
            String id = "1";
            // 用户可以看到的通知渠道的名字.
            CharSequence name = "notification channel";
            // 用户可以看到的通知渠道的描述
            String description = "notification description";
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel mChannel = new NotificationChannel(id, name, importance);
            // 配置通知渠道的属性
            mChannel.setDescription(description);
            // 设置通知出现时的闪灯(如果 android 设备支持的话)
            mChannel.enableLights(true);
            mChannel.setLightColor(Color.RED);
            // 设置通知出现时的震动(如果 android 设备支持的话)
            mChannel.enableVibration(true);
            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
            //最后在notificationmanager中创建该通知渠道
            mNotificationManager.createNotificationChannel(mChannel);
        }
    

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

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

    3.4 利用阿里云控制台推送 使用阿里云控制台推送通知时,需要设置 “高级设置”,在最下面的 “Android8.0 特殊配置:” ,填写 “通知通道:”,也就是上述客户端注册的 NotificationChannel 的 id,如下图所示: 3.5 NotificationChannel注意事项 指定NotificationChannel后,通知的提醒方式(震动、声音等)均为NotificationChannel所指定的提醒方式,服务端的提醒方式配置不再生效。 NotificationChannel的通知权限,一般品牌是默认给权限的,但是oppo和vivo默认不给权限,需要开启权限。

    0 0
相关问答

8

回答

短视频SDK如何做到视频原始比例裁剪?

EdgePlus 2017-09-13 17:35:01 39866浏览量 回答数 8

323

回答

云伴侣数据导入问题汇总(Android系统)

os_admin 2011-07-26 17:52:15 63449浏览量 回答数 323

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148591浏览量 回答数 22

15

回答

OSS学院:为什么我的图片会被下载?怎么在线播放影音?

leehon 2013-09-13 16:40:00 35732浏览量 回答数 15

1

回答

2020年了,跨平台开发框架现在怎样了?

问问小秘 2020-04-15 13:23:24 35533浏览量 回答数 1

26

回答

安卓与iOS百问,开发者系统指南

yq传送门 2017-05-31 17:16:00 34570浏览量 回答数 26

25

回答

数据库百问,教你快速上手数据库

yq传送门 2017-06-13 08:01:34 44308浏览量 回答数 25

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 123812浏览量 回答数 8

3

回答

JAVA web 【精品问答合集】

我是管理员 2018-07-13 16:02:35 28356浏览量 回答数 3

46

回答

H5技术百问——不懂H5你就OUT啦

yq传送门 2017-09-09 11:03:04 48295浏览量 回答数 46
66
文章
12595
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载