Android 接入华为通知栏推送教程(特此整理)

前言:

      受华为开发者联盟工作人员的邀约,特此将本篇博客重新整理一遍,希望让更多人受益,大家也可以参加华为开发者联盟推出活动,去提问自己的问题或者投稿。

扫二维码就可以参与活动哦。

Android 接入华为通知栏推送教程(特此整理)_第1张图片

首先本教程是基于华为推送 2.5.2.300 版本的

一:注意事项

1. 华为推送在emui 4.1 以上才能收到推送

2. 华为i推送在emui 4.1到 5.0 之间是控制不了在应用内不接受通知的,5.1以上可以

3. 华为推送通知栏是不叠加角标未读数的,透传可以实现!

4.. 华为推送需要把华为移动服务升级到最新版哦

5. 新版setTag/getTag/deleteTag功能暂时不能使用

二:示例代码

1.  EMUI版本号判断代码如下:(判断emuiApiLevel>=9即可)

int emuiApiLevel = 0;            

        try {            

            Class cls = Class.forName("android.os.SystemProperties");            

            Method method = cls.getDeclaredMethod("get", new Class[]{String.class});            

            emuiApiLevel = Integer.parseInt((String) method.invoke(cls, new Object[]{"ro.build.hw_emui_api_level"}));            

        } catch (Exception e) {            

            e.printStackTrace();            

        }      

2. 判断华为移动服务版本号代码如下:(判断hwid>=20401300即可)

PackageInfo pi = null;            

        PackageManager pm = context.getPackageManager();            

        int hwid = 0;            

        try {            

            pi = pm.getPackageInfo("com.huawei.hwid", 0);            

            if (pi != null) {            

                result = pi.versionCode;            

            }            

        } catch (PackageManager.NameNotFoundException e) {            

            e.printStackTrace();            

        } 

 

三:正文

大家查看华为推送的文档时有没有感觉云里雾绕的,本教程希望可以帮到你噢。

华为推送分为新版(HMS SDK)和旧版(PUSH SDk),本教程使用的是新版的HMS SDK 的通知栏推送! 通知栏推送! 通知栏推送!  重要的事情说三遍。。。 经过测试华为的通知栏推送在华为手机上类似于苹果的APNS,送达率挺理想的,透传的话没有这么高的送达率,自己测试的。

 通知栏推送是可以带附加字段的哦!!!可以满足我们的一些其他的需求。

大家看到这有没有一个疑问呢?HMS AGent套件是什么鬼,还必选,其实它就是一个demo,测试用的,里面有华为的好多服务,不只push噢

Android 接入华为通知栏推送教程(特此整理)_第2张图片

 

注意:请务必查看Demo中关于推送的代码。

四:配置方式

1.  Android Studio 配置方式:

  maven仓库

allprojects {
    repositories {
        jcenter()
        maven { url 'http://developer.huawei.com/repo/' }
    }
}

  gradle 依赖添加  

implementation 'com.huawei.android.hms:push:2.5.2.300'

2.  eclipse的配置是下载jar包

      地址:点击打开链接

五:intent字段说明

     其他的按照文档去做就行了噢,很简单的,下面主要说一下intent字段配置,主要用来操作点击通知后的动作的,相信大家刚看到的时候也是懵逼的状态吧。华为推送平台有这样一段描述:

    Android 接入华为通知栏推送教程(特此整理)_第3张图片

后来才反应过来,其实就是在要打开的activity里面加上配置,然后生成一个URI 配置在后台就可以了


                
                
                ------------------按自己的项目配置
        

 

然后在程序里把URI打印出来给配置在服务端上就行了:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("piccscheme://com.picchost.push/hwpush_detail?message=what"));
        intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        String intentUri = intent.toUri(Intent.URI_INTENT_SCHEME);
        Log.e("huaweipush","action是:" + intentUri);

注意:把参数替换成自己的参数。

打印出来是这样的就对了:

intent://com.picchost.push/hwpush_detail?message=what#Intent;scheme=piccscheme;launchFlags=0x20000;end

注意:一定不要忘了把打印出来的URI配置在服务端,否则intent字段不生效。

 

intent字段就完成了!!!

 

有说的不对的地方,欢迎大家私信指正!

      
祝:工作顺利!

你可能感兴趣的:(华为推送)