Android——快速集成極光推送

集成極光推送

1浆洗,首先肯定是注冊(cè)置尔,添加應(yīng)用

2赁严,開始自動(dòng)集成比手動(dòng)集成簡(jiǎn)單?

第一步 在 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

//默認(rèn)是umeng的渠道

manifestPlaceholders = [UMENG_CHANNEL_VALUE:"umeng"]

ndk {

//選擇要添加的對(duì)應(yīng)cpu類型的.so庫(kù)(不需要的刪除即可)晴叨。

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

}

manifestPlaceholders= [

JPUSH_PKGNAME:applicationId,

JPUSH_APPKEY:"your appkey",//JPush上注冊(cè)的包名對(duì)應(yīng)的appkey(*換成你的*)

JPUSH_CHANNEL:"developer-default",//暫時(shí)填寫默認(rèn)值即可.

]

}


第二步

還是Module的build.gradle文件中哦

compile'cn.jiguang:jpush:2.1.8'// 此處以SDK 2.1.8版本為例

編譯一下

如果報(bào)錯(cuò)的話瓶您,需要在Project的gradle.properties文件中添加下面的代碼:

android.useDeprecatedNdk=true

第三步 ? ?在MyApplication繼承 Application中onCreat()方法中

初始化sdk

JPushInterface.setDebugMode(true);//正式版的時(shí)候設(shè)置false麻捻,關(guān)閉調(diào)試

JPushInterface.init(this);

//建議添加tag標(biāo)簽纲仍,發(fā)送消息的之后就可以指定tag標(biāo)簽來(lái)發(fā)送了

Set set =newHashSet<>();

set.add("xunChang");//名字任意呀袱,可多添加幾個(gè)

set.add("Home");

set.add("Expand");

set.add("Mine");

JPushInterface.setTags(this,set, null);//設(shè)置標(biāo)簽

第四步 ? 自定義廣播

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;

/**

*自定義接收器

*

*如果不定義這個(gè)Receiver,則:

* 1)默認(rèn)用戶會(huì)打開主界面

* 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]接收到推送下來(lái)的自定義消息: "+ bundle.getString(JPushInterface.EXTRA_MESSAGE));

processCustomMessage(context,bundle);

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

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

intnotifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);

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

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

Log.d(TAG,"[MyReceiver]用戶點(diǎn)擊打開了通知");

//? ? ? ? ? //打開自定義的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));

//在這里根據(jù)JPushInterface.EXTRA_EXTRA的內(nèi)容處理代碼郑叠,比如打開新的Activity夜赵, 打開一個(gè)網(wǎng)頁(yè)等..

}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數(shù)據(jù)

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);

//? ? }

}

}

第五步 注冊(cè)廣播? AndroidManifest.xml 并添加相應(yīng)權(quán)限 ,看官網(wǎng)demo添加

AndroidManifest.xml


第六步乡革、混淆

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

-dontoptimize

-dontpreverify

-dontwarn cn.jpush.**

-keepclasscn.jpush.** { *;}

最后 ?去測(cè)試吧~~~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寇僧,一起剝皮案震驚了整個(gè)濱河市摊腋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘁傀,老刑警劉巖兴蒸,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異细办,居然都是意外死亡橙凳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門笑撞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)岛啸,“玉大人,你說(shuō)我怎么就攤上這事茴肥〖岵龋” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵瓤狐,是天一觀的道長(zhǎng)瞬铸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)础锐,這世上最難降的妖魔是什么赴捞? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮郁稍,結(jié)果婚禮上赦政,老公的妹妹穿的比我還像新娘。我一直安慰自己耀怜,他們只是感情好恢着,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著财破,像睡著了一般掰派。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上左痢,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天靡羡,我揣著相機(jī)與錄音,去河邊找鬼俊性。 笑死略步,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的定页。 我是一名探鬼主播趟薄,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼典徊!你這毒婦竟也來(lái)了杭煎?” 一聲冷哼從身側(cè)響起恩够,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羡铲,沒想到半個(gè)月后蜂桶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡也切,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年屎飘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贾费。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钦购,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褂萧,到底是詐尸還是另有隱情押桃,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布导犹,位于F島的核電站唱凯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谎痢。R本人自食惡果不足惜磕昼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望节猿。 院中可真熱鬧票从,春花似錦、人聲如沸滨嘱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)太雨。三九已至吟榴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囊扳,已是汗流浹背吩翻。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锥咸,地道東北人狭瞎。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像她君,于是被迫代替她去往敵國(guó)和親脚作。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容