极光推送 android 最新,Android——快速集成极光推送-Go语言中文社区

集成极光推送

1,首先肯定是注册,添加应用

2,开始自动集成比手动集成简单第一步 在 build.gradle

defaultConfig {

multiDexEnabledtrue

applicationId rootProject.ext.cfg.applicationId

minSdkVersionrootProject.ext.cfg.minSdkVersion

targetSdkVersionrootProject.ext.cfg.targetSdkVersion

versionCode rootProject.ext.pkg.versionCode

versionName rootProject.ext.pkg.versionName

testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"

vectorDrawables.useSupportLibrarytrue

jackOptions {

enabledtrue

}

// dex突破65535的限制

multiDexEnabledtrue

//默认是umeng的渠道

manifestPlaceholders = [UMENG_CHANNEL_VALUE:"umeng"]

ndk {

//选择要添加的对应cpu类型的.so库(不需要的删除即可)。

abiFilters'armeabi','armeabi-v7a','armeabi-v8a','x86','x86_64','mips','mips64'

}

manifestPlaceholders= [

JPUSH_PKGNAME:applicationId,

JPUSH_APPKEY:"your appkey",//JPush上注册的包名对应的appkey(*换成你的*)

JPUSH_CHANNEL:"developer-default",//暂时填写默认值即可.

]

}

第二步

还是Module的build.gradle文件中哦

compile'cn.jiguang:jpush:2.1.8'// 此处以SDK 2.1.8版本为例

编译一下

如果报错的话,需要在Project的gradle.properties文件中添加下面的代码:

android.useDeprecatedNdk=true第三步    在MyApplication继承 Application中onCreat()方法中

初始化sdk

JPushInterface.setDebugMode(true);//正式版的时候设置false,关闭调试

JPushInterface.init(this);

//建议添加tag标签,发送消息的之后就可以指定tag标签来发送了

Set set =newHashSet<>();

set.add("xunChang");//名字任意,可多添加几个

set.add("Home");

set.add("Expand");

set.add("Mine");

JPushInterface.setTags(this,set, null);//设置标签第四步   自定义广播

packagecom.etcxc.android.base;

importandroid.content.BroadcastReceiver;

importandroid.content.Context;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.text.TextUtils;

importandroid.util.Log;

importorg.json.JSONException;

importorg.json.JSONObject;

importjava.util.Iterator;

importcn.jpush.android.api.JPushInterface;

/**

*自定义接收器

*

*如果不定义这个Receiver,则:

* 1)默认用户会打开主界面

* 2)接收不到自定义消息

*/

public classMyReceiverextendsBroadcastReceiver{

private static finalStringTAG="JIGUANG-Example";

@Override

public voidonReceive(Context context,Intent intent) {

try{

Bundle bundle = intent.getExtras();

Log.d(TAG,"[MyReceiver] onReceive - "+ intent.getAction() +", extras: "+printBundle(bundle));

if(JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {

String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);

Log.d(TAG,"[MyReceiver]接收Registration Id : "+ regId);

//send the Registration Id to your server...

}else if(JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {

Log.d(TAG,"[MyReceiver]接收到推送下来的自定义消息: "+ bundle.getString(JPushInterface.EXTRA_MESSAGE));

processCustomMessage(context,bundle);

}else if(JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {

Log.d(TAG,"[MyReceiver]接收到推送下来的通知");

intnotifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);

Log.d(TAG,"[MyReceiver]接收到推送下来的通知的ID: "+ notifactionId);

}else if(JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {

Log.d(TAG,"[MyReceiver]用户点击打开了通知");

//          //打开自定义的Activity

//          Intent i = new Intent(context, TestActivity.class);

//          i.putExtras(bundle);

//          //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//          i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );

//          context.startActivity(i);

}else if(JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {

Log.d(TAG,"[MyReceiver]用户收到到RICH PUSH CALLBACK: "+ bundle.getString(JPushInterface.EXTRA_EXTRA));

//在这里根据JPushInterface.EXTRA_EXTRA的内容处理代码,比如打开新的Activity, 打开一个网页等..

}else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {

booleanconnected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);

Log.w(TAG,"[MyReceiver]"+ intent.getAction() +" connected state change to "+connected);

}else{

Log.d(TAG,"[MyReceiver] Unhandled intent - "+ intent.getAction());

}

}catch(Exception e){

}

}

//打印所有的intent extra数据

private staticStringprintBundle(Bundle bundle) {

StringBuilder sb =newStringBuilder();

for(String key : bundle.keySet()) {

if(key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {

sb.append("nkey:"+ key +", value:"+ bundle.getInt(key));

}else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){

sb.append("nkey:"+ key +", value:"+ bundle.getBoolean(key));

}else if(key.equals(JPushInterface.EXTRA_EXTRA)) {

if(TextUtils.isEmpty(bundle.getString(JPushInterface.EXTRA_EXTRA))) {

Log.i(TAG,"This message has no Extra data");

continue;

}

try{

JSONObject json =newJSONObject(bundle.getString(JPushInterface.EXTRA_EXTRA));

Iterator it =  json.keys();

while(it.hasNext()) {

String myKey = it.next().toString();

sb.append("nkey:"+ key +", value: ["+

myKey +" - "+json.optString(myKey) +"]");

}

}catch(JSONException e) {

Log.e(TAG,"Get message extra JSON error!");

}

}else{

sb.append("nkey:"+ key +", value:"+ bundle.getString(key));

}

}

returnsb.toString();

}

//send msg to MainActivity

private voidprocessCustomMessage(Context context,Bundle bundle) {

//    if (MainActivity.isForeground) {

//      String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);

//      String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);

//      Intent msgIntent = new Intent(MainActivity.MESSAGE_RECEIVED_ACTION);

//      msgIntent.putExtra(MainActivity.KEY_MESSAGE, message);

//      if (!ExampleUtil.isEmpty(extras)) {

//          try {

//            JSONObject extraJson = new JSONObject(extras);

//            if (extraJson.length() > 0) {

//                msgIntent.putExtra(MainActivity.KEY_EXTRAS, extras);

//            }

//          } catch (JSONException e) {

//

//          }

//

//      }

//      LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent);

//    }

}

}第五步 注册广播  AndroidManifest.xml 并添加相应权限 ,看官网demo添加

b0a2b1799bd191ff486c321e87a476f6.png

AndroidManifest.xml

第六步、混淆

在ProGuard文件(即proguard-rules.pro)中加入混淆代码:

-dontoptimize

-dontpreverify

-dontwarn cn.jpush.**

-keepclasscn.jpush.** { *;}最后  去测试吧~~~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云服务怎么弄金卡会员_万科牵手华为终端云服务,共建松山湖智慧商圈

12月18日&#xff0c;坐落在东莞松山湖南华为旁的44000㎡的开放式商业mall——滨湖万科里正式启幕。现场华为终端云服务部还与万科南方区域商业事业部签署了战略合作协议&#xff0c;开启共建智慧商圈的新版图。值得一提的是&#xff0c;这也是华为终端云服务与万科在商业板块的…

cad2014打开文件崩溃_CAD玩的再牛,崩溃了咋办?

导读前几天&#xff0c;一入职新人晚上加班画完的图纸在最后一刻CAD崩溃了&#xff01;好在最后在临时保存文件夹中找到了完整的图纸。这才免于通宵。CAD崩溃是我们画图中经常遇到的问题。对于CAD崩溃后的处理&#xff0c;相信老司机都已经游刃有余。但也有防不胜防的时候&…

android 弹窗ui,Android 弹出窗口与对话框 UI设计

左图: Android 自带的日期选择弹窗; 右图: Android 自带的时间选择弹窗.左图: Android 日历中的重复选择; 右图: Chrome 中的打印.干净简洁的布局与有趣儿又引人注目的交互让操作变得轻松而愉快, 尤其是那在时间选择器中出现的双环.同样的, 也有很多人试图在自己的应用中给他们…

vim反向删除_VIM之操纵缓冲区列表

引子昨天遇到了一个奇怪的问题&#xff0c;一条在Sublime里面看着十分正常的SQL语句&#xff0c;执行了也是正常的&#xff0c;导出的Insert语句也是看着没毛病的&#xff0c;但是在查询出来&#xff0c;传递到下游的时候&#xff0c;说多了一个乱码。WTF&#xff0c;然后就开始…

卸载 windows_Windows 10可能很快会自动卸载有问题的Windows更新

看起来微软已经悄悄地向Windows 10添加了一项新功能&#xff0c;该功能将允许操作系统自动删除导致问题的任何有问题的Windows更新。这是一个好消息&#xff0c;因为Windows 10最近有一些有问题的更新&#xff0c;其中一些阻止了Windows 10的加载。根据微软刚刚发布的一份新支持…

android /data/system/dropbox,Android导出dropbox日志

文章内容已重新排版&#xff1a;Android导出dropbox日志&#xff0c;请到该链接浏览&#xff0c;谢谢支持。大项目中出现anr几乎是必然事件&#xff0c;这里我就不再去赘述怎么分析anr日志了。但是作为分析anr重要依据的必然离不开dropbox日志。问题来了&#xff0c;dropbox文件…

android蓝牙串口 hc06,Android手机通过蓝牙模块HC-06连接Arduino串口输出

通过手机进行通信是可以实现很多遥控功能&#xff0c;虽然距离是比较短&#xff0c;一般是10米&#xff0c;但对于我这种新手做测试&#xff0c;比起买一个几百块的多通道遥控器成本要低很多。实验目的&#xff1a;用Android实现蓝牙连接通过Arduino串口输出信息这次使用的是蓝…

esrgan_港中文-商汤联合实验室:ECCV2018 PIRM-SR 超分辨率比赛冠军:ESRGAN(已开源)...

Summary&#xff1a;中科院和京东AI研究院提出&#xff1a;改进SRN人脸检测算法&#xff0c;目前业界最强&#xff01;Author&#xff1a;AmusiDate&#xff1a;2019-02-09微信公众号&#xff1a;CVer原文链接&#xff1a;香港中文大学-商汤联合实验室&#xff1a;ECCV2018 PIR…

android中如何新建一个activity,《Android Activity》活动的介绍和创建

Activity 是什么Android 有四大组件&#xff1a;Activity、Service、Broadcast Receiver 和 Content Provider。Activity&#xff0c;活动&#xff0c;即用来承载用户界面的容器&#xff0c;Android 四大组件之一。我们在 APP 里面看到的页面就需要一个 Activity&#xff0c;页…

android qq红点,Android高仿QQ小红点功能

先给大家展示下效果图&#xff1a;绘制贝塞尔曲线&#xff1a;主要是当在一定范围内拖拽时算出固定圆和拖拽圆的外切直线以及对应的切点&#xff0c;就可以通过path.quadTo()来绘制二阶贝塞尔曲线了~整体思路&#xff1a;1、当小红点静止时&#xff0c;什么都不做&#xff0c;只…

android1.6,令人遗憾的Android 1.6系统_戴尔 Mini5(Streak)_手机其它OS-中关村在线

令人遗憾的Android 1.6系统虽然Dell Streak上周五刚刚在美国地区上市&#xff0c;但实际上这款产品的开发时间已经很长了。早在去年Dell的Mini 3i上市之前这款被称之为Dell Mini 5的产品就已经出现在大家的视野之中&#xff0c;而当时其搭载的就是在当时看来还是十分先进的Andr…

android 控制word,Android使用POI进行Word操作(一)

操作步骤步骤一&#xff1a;引用相关POI库步骤二&#xff1a;创建POI中的word文件对象步骤三&#xff1a;调用word文件对象的方法对文件进行操作步骤一&#xff1a;引用相关的POI库吐槽一下&#xff0c;这一步是最坑的本人尝试了很多版本组合&#xff0c;最新的版本提示class重…

android car bt模块,大谷蓝牙小车BT Car/Android Car手机控制 重力控制小车 安卓操控小车...

产品介绍&#xff1a;Android蓝牙遥控小车平台。是通过Android手机以蓝牙方式操控小车前进后退左转右转等&#xff0c;具有重力感应操控、触摸屏虚拟操控、虚拟摇杆三种控制模式。并且还具有呼吸灯、电源指示灯、蓝牙连接指示灯、速度等级指示灯等状态指示。小车自带锂电池及US…

Dijkstra(迪杰斯特拉)算法总结

知识概览 Dijkstra算法适用于解决所有边权都是正数的最短路问题。Dijkstra算法分为朴素的Dijkstra算法和堆优化版的Dijkstra算法。朴素的Dijkstra算法时间复杂度为&#xff0c;适用于稠密图。堆优化版的Dijkstra算法时间复杂度为&#xff0c;适用于稀疏图。稠密图的边数m和是一…

html表格中怎么将背景颜色虚化,如何在Photoshop中制作效果惊艳模糊背景!

把背景模糊一下&#xff0c;有时&#xff0c;效果会令人非常惊艳&#xff0c;但是&#xff0c;你知道如何在Photoshop中模糊背景吗&#xff1f; 在今天的教程中&#xff0c;我们将告诉大家&#xff0c;如何使背景模糊&#xff0c;而又不会使我们的主体周围出现光晕。在这个过程…

axure html 360安装扩展,小编搞定win7系统360浏览器添加Axure扩展的设置方案

经常使用电脑的朋友会发现win7系统360浏览器添加Axure扩展的问题比较常见&#xff0c;如今就有用户反映在使用电脑的时候遇到win7系统360浏览器添加Axure扩展的情况不知怎么解决&#xff0c;于是我就给大家整理总结了win7系统360浏览器添加Axure扩展的具体处理方案&#xff0c;…

前锋html5费用,足坛转会费最高的5位前锋,1.05亿欧元仅第5,第1比C罗还高1.22亿...

原标题&#xff1a;足坛转会费最高的5位前锋&#xff0c;1.05亿欧元仅第5&#xff0c;第1比C罗还高1.22亿大家都知道&#xff0c;前锋对于比赛的胜负非常重要&#xff0c;再加上其关注度比其他位置高&#xff0c;商业价值比较高&#xff0c;所以通常来说&#xff0c;他们的转会…

学计算机高中要买电脑,大一新生,打着学习的“口号”要求买电脑,父母到底该不该答应?...

原标题&#xff1a;大一新生&#xff0c;打着学习的“口号”要求买电脑&#xff0c;父母到底该不该答应&#xff1f;马上就进入9月份了&#xff0c;全国各大高校也都陆续开学。对于刚刚考上大学的大一新生来说&#xff0c;学校的一切都是很新鲜的&#xff0c;而且他们也不用像在…

计算机科学人生观和价值观,浅谈我的人生观和价值观

浅谈我的人生观和价值观2013-04-22 13:58:30 来源&#xff1a;http://www.51cok.com/ 点击:176次分享到&#xff1a;人们经常说态度决定一切&#xff0c;这就是指的人们的人生观和价值观。我们在高中学习政治哲学时开始真正地从理论上学习这一对词语&#xff0c;也是从…

添加include文件路径_-isystem以及include_next的副作用

首先我们先来看下include_next的用法比如我们想include , 在cmath头文件中你可以看到有类似include_next 的语法&#xff0c;他跟传统的include不同&#xff0c;他不会从你的search path list的头部开始查找&#xff0c;他会跳出当前路径从下一个entry进行查找&#xff0c;比如…