1.註冊極光的開發者帳戶,並註冊應用信息。android
建立賬號進入極光推送平臺後,首先顯示的是建立應用的界面。填上你的應用程序的名稱,以及 Android包名這二頂就能夠了。
用建立成功,即進入「應用詳情」顯示界面。這個界面右下角,你能夠看到 「appkey" 後面會用到。
api
2,下載 sdk包。就行整合服務器
具體的流程能夠看如下文檔,固然phonegap的整合和這個有些不一樣。
http://docs.jpush.cn/pages/viewpage.action?pageId=557214
網絡
3.SDK集成步驟app
一、導入 SDK 開發包到你本身的應用程序項目
解壓縮 jpush-sdk_v1.x.y.zip 集成壓縮包
複製 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目錄下
複製 libs/armeabi/libsys1.x.y.so 到工程 libs/armeabi 目錄下(若是你的項目有libs/armeabi-v7a這個目錄,請把libsys1.x.y.so也複製一份到這個目錄)
這裏需求注意的是:包導入進去以後必定要把包configuer building path。
二、配置 AndroidManifest.xml
根據 SDK 壓縮包裏的 AndroidManifest.xml 樣例文件,來配置應用程序項目的 AndroidManifest.xml 。
主要步驟爲:
複製備註爲 "Required" 的部分
將備註爲替換包名的部分,替換爲當前應用程序的包名
將AppKey替換爲在Portal上註冊該應用的的Key,例如(9fed5bcb7b9b87413678c407)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="Your Package"
android:versionCode="100"
android:versionName="1.0.0"
>
<!-- Required -->
<permission android:name="You Package.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
<!-- Required -->
<uses-permission android:name="You Package.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Optional. Required for location feature -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="Your Application">
<!-- Required -->
<service
android:name="cn.jpush.android.service.PushService"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTER" />
<action android:name="cn.jpush.android.intent.REPORT" />
<action android:name="cn.jpush.android.intent.PushService" />
<action android:name="cn.jpush.android.intent.PUSH_TIME" />
</intent-filter>
</service>
<!-- Required -->
<receiver
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<!-- Required SDK核心功能-->
<activity
android:name="cn.jpush.android.ui.PushActivity"
android:theme="@android :style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden" >
<intent-filter>
<action android:name="cn.jpush.android.ui.PushActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="Your Package" />
</intent-filter>
</activity>
<!-- Required SDK核心功能-->
<service
android:name="cn.jpush.android.service.DownloadService"
android:enabled="true"
android:exported="false" >
</service>
<!-- Required SDK核心功能-->
<receiver android:name="cn.jpush.android.service.AlarmReceiver" />
<!-- Required. For publish channel feature -->
<!-- JPUSH_CHANNEL 是爲了方便開發者統計APK分發渠道。-->
<!-- 例如: -->
<!-- 發到 Google Play 的APK能夠設置爲 google-play; ->
<!-- 發到其餘市場的 APK 能夠設置爲 xxx-market。 -->
<!-- 目前這個渠道統計功能的報表還未開放。-->
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
<!-- Required. AppKey copied from Portal -->
<meta-data android:name="JPUSH_APPKEY" android:value="Your AppKey"/>
</application>
</manifest>
這裏須要注意的是:以前已經加過的一些xml信息,這時候要一一對照把這裏面的信息 一條一條添加進去。
注意順序:
三、添加代碼
JPush SDK 提供的 API 接口,都主要集中在 cn.jpush.android.api.JPushInterface 類裏。
按照下面的方法來修改:
四、測試確認
確認所需的權限都已經添加。若是必須的權限未添加,日誌會提示錯誤。
確認 AppKey(在Portal上生成的)已經正確的寫入 Androidmanifest.xml 。
確認在程序啓動時候調用了init(context) 接口
確認測試手機(或者模擬器)已成功連入網絡
客戶端調用 init 後不久,若是一切正常,應有登陸成功的日誌信息
啓動應用程序,在 Portal 上嚮應用程序發送自定義消息或者通知欄提示。詳情請參考管理Portal。
在幾秒內,客戶端應可收到下發的通知或者正定義消息
若是 SDK 工做正常,則日誌信息會以下圖所示:
如圖所示,客戶端啓動分爲 4 步:
檢查 metadata 的 appKey 和 channel ,若是不存在,則啓動失敗
初始化 JPush SDK,檢查 JNI 等庫文件的有效性,若是庫文件無效,則啓動失敗
檢查 Androidmanifest.xml,若是有 Required 的權限不存在,則啓動失敗
鏈接服務器登陸,若是存在網絡問題,則登錄失敗,或者前面三步有問題,不會啓動JPush SDK
只要測試成功,ok,你能夠去管理Portal,去發送信息了。沒有意外的話,就能收到信息。
固然這個僅僅是簡單的推送消息功能,具體的一些應用,能夠再參考官方的api文檔來本身開發。測試