極光推送整合總結——(筆記)
1.從極光官網建立自己的專案(app)
2.然後就是建立成功---------------------------
3.向下滑找到推送設定 接下來就是完善推送設定
4.以Android的推送為例:
5.接下來建立自己的module 然後開啟build.gradle
6.拿到你的applicationid(也就是第四部的應用包名)
----------複製上去後在極光服務端的工作基本的算是完成了
5.然後就是下載官方demo
6.將官方demo下載下來後解壓開啟
—順帶開啟官方文件(整合指南)
—官方整合指南
-----複製 libs/jcore-android-1.x.x.jar 到工程 libs/ 目錄下。
-----複製 libs/jpush-android-3.x.x.jar 到工程 libs/ 目錄下。
-----複製 libs/(cpu-type)/libjcore1xy.so 到你的工程中存放對應 cpu 型別的目錄下。
-----複製 res/ 中 drawable-hdpi, layout, values 資料夾中的資原始檔到你的工程中 res/ 對應同名的目錄下。
+++++++++++++++++將layout檔案也放進去++++++++++++++++++
說明 1:若沒有 res/drawable-xxxx/jpush_notification_icon 這個資源預設使用應用圖示作為通知 icon,在 5.0 以上系統將應用圖示作為 statusbar icon 可能顯示不正常,使用者可定義沒有陰影和漸變色的 icon 替換這個檔案,檔名不要變。
說明 2:使用 android studio 的開發者,如果使用 jniLibs 資料夾匯入 so 檔案,則僅需將所有 cpu 型別的資料夾拷進去;如果將 so 檔案新增在 module的libs 資料夾下,注意在 module 的 gradle 配置中新增一下
7.然後再在自己的module中開啟build.gradle
把下邊的一句話複製上去
android {
sourceSets {//寫在Android目錄下
main {
jniLibs.srcDirs = ['libs']
}
}
}
8.配置 AndroidManifest.xml
-----根據 SDK 壓縮包裡的 AndroidManifest.xml 樣例檔案,來配置應用程式專案的 AndroidManifest.xml 。
-----主要步驟為:
-----複製備註為 "Required" 的部分 -----將標註為“您應用的包名”的部分,替換為當前應用程式的包名 -----將標註為“您應用的 Appkey” 的部分,替換為在 Portal 上建立該應用後應用資訊中的 Appkey,例如:9fed5bcb7b9b87413678c407
9.接下來就是我們最愛的CV了
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.liu.get.jpush"//此處:在極光官網註冊的包名(實際開發中吧所有的com.liu.get.jpush(因為屬於我個人的app)替換成你自己的包名)
android:versionCode="317"//可有可無
android:versionName="3.1.7">//可有可無
<!-- Required -->
<permission
android:name="(請替換包名).permission.JPUSH_MESSAGE"
android:protectionLevel="signature" />
<!-- Required 一些系統要求的許可權,如訪問網路等-->
<uses-permission android:name="(個人的包名).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.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.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- Optional for location -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用於開啟 debug 版本的應用在6.0 系統上 層疊視窗許可權 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<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" />
<uses-permission android:name="android.permission.GET_TASKS" />
<application
android:name=".MyApp_"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Rich push 核心功能 since 2.0.6-->
<activity
android:name="cn.jpush.android.ui.PopWinActivity"
android:theme="@style/MyDialogStyle"
android:exported="false">
</activity>
<!-- Required SDK核心功能-->
<activity
android:name="cn.jpush.android.ui.PushActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar"
android:exported="false">
<intent-filter>
<action android:name="cn.jpush.android.ui.PushActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="(請替換包名)" />
</intent-filter>
</activity>
<!-- Required SDK 核心功能-->
<!-- 可配置android:process引數將PushService放在其他程序中 -->
<service
android:name="cn.jpush.android.service.PushService"
android:process=":pushcore"
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>
<!-- since 3.0.9 Required SDK 核心功能-->
<provider
android:authorities="(請替換包名).DataProvider"
android:name="cn.jpush.android.service.DataProvider"
android:process=":pushcore"
android:exported="false"
/>
<!-- since 1.8.0 option 可選項。用於同一裝置中不同應用的JPush服務相互拉起的功能。 -->
<!-- 若不啟用該功能可刪除該元件,將不拉起其他應用也不能被其他應用拉起 -->
<service
android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="cn.jpush.android.intent.DaemonService" />
<category android:name="(請替換包名)" />
</intent-filter>
</service>
<!-- since 3.1.0 Required SDK 核心功能-->
<provider
android:authorities="(請替換包名).DownloadProvider"
android:name="cn.jpush.android.service.DownloadProvider"
android:exported="true"
/>
<!-- Required SDK核心功能-->
<receiver
android:name="cn.jpush.android.service.PushReceiver"
android:enabled="true"
android:exported="false">
<intent-filter android:priority="1000">
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" /> <!--Required 顯示通知欄 -->
<category android:name="(請替換包名)" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<!-- Optional -->
<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核心功能-->
<receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
<meta-data android:name="JPUSH_APPKEY" android:value="c54f91fc022e635397004253" />
</application>
</manifest>
到這裡專案的整合已經算是完成了接下來就是Run一下自己的專案
當自己的專案執行生效(無報錯)後去極光官網
選中安卓
立即傳送,客戶端即可接收到推送