文档开发者中心
我的

微访谈-Push Android接入华为通知栏推送教程(特此整理)


首先本教程是基于华为推送 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即可)
  1. int emuiApiLevel = 0;            
  2.         try {            
  3.             Class cls = Class.forName("android.os.SystemProperties");            
  4.             Method method = cls.getDeclaredMethod("get", new Class[]{String.class});            
  5.             emuiApiLevel = Integer.parseInt((String) method.invoke(cls, new Object[]{"ro.build.hw_emui_api_level"}));            
  6.         } catch (Exception e) {            
  7.             e.printStackTrace();            
  8.         }
复制代码
2. 判断华为移动服务版本号代码如下:(判断hwid>=20401300即可)
  1. PackageInfo pi = null;            
  2.         PackageManager pm = context.getPackageManager();            
  3.         int hwid = 0;            
  4.         try {            
  5.             pi = pm.getPackageInfo("com.huawei.hwid", 0);            
  6.             if (pi != null) {            
  7.                 result = pi.versionCode;            
  8.             }            
  9.         } catch (PackageManager.NameNotFoundException e) {            
  10.             e.printStackTrace();            
  11.         }
复制代码

三:正文

大家查看华为推送的文档时有没有感觉云里雾绕的,本教程希望可以帮到你噢。
华为推送分为新版(HMS SDK)和旧版(PUSH SDk),本教程使用的是新版的HMS SDK 的通知栏推送! 通知栏推送! 通知栏推送!  重要的事情说三遍。。。 经过测试华为的通知栏推送在华为手机上类似于苹果的APNS,送达率挺理想的,透传的话没有这么高的送达率,自己测试的。

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

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


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

四:配置方式

1.  Android Studio 配置方式:

maven仓库 (因为帖子中不能附带url,请去Demo中复制)

gradle 依赖添加
  1. implementation ´com.huawei.android.hms:push:2.5.2.300´
复制代码
2.  eclipse的配置是下载jar包


五:intent字段说明


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


后来才反应过来,其实就是在要打开的activity里面加上配置,然后生成一个URI 配置在后台就可以了
  1. <intent-filter>
  2.                 <action android:name="android.intent.action.VIEW"/>
  3.                 <category android:name="android.intent.category.DEFAULT"/>
  4.                 <data android:host="com.picchost.push"-------------按自己的项目配置
  5.                     android:path="/hwpush_detail"
  6.                     android:scheme="piccscheme"/>------------------按自己的项目配置
  7.         </intent-filter>
复制代码
然后在程序里把URI打印出来给配置在服务端上就行了:
  1. Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("piccscheme://com.picchost.push/hwpush_detail?message=what"));
  2.         intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
  3.         String intentUri = intent.toUri(Intent.URI_INTENT_SCHEME);
  4.         Log.e("huaweipush","action是:" + intentUri);
复制代码
注意:把参数替换成自己的参数。


打印出来是这样的就对了:
  1. intent://com.picchost.push/hwpush_detail?message=what#Intent;scheme=piccscheme;launchFlags=0x20000;end
复制代码
注意:一定不要忘了把打印出来的URI配置在服务端,否则intent字段不生效。


intent字段就完成了!!!


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


祝:工作顺利!





点赞
收藏
2
回复
5
分享
举报
浏览3384 编辑于2018-08-25 09:26未知归属地
全部评论
最多点赞
最新发布
最早发布
厉害
4楼回复于2018-08-27 05:59 未知归属地
学习了
3楼回复于2018-08-25 09:34 未知归属地
学习了~~~
2楼回复于2018-08-25 09:34 未知归属地
详细有料的教程帖~~
1楼回复于2018-08-25 09:32 未知归属地
干货帖,学习了!
回复于2018-08-25 09:30 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。