1. 程式人生 > >Eclipse Android開發整合極光推送

Eclipse Android開發整合極光推送

今天上午閒來無事,想起還沒做過推送。去官網準備整合環境。看了下是android studio的,我就沒往下看。百度了幾篇文章,硬是沒弄出來,主要是百度的文章比較舊,和現在的sdk有區別。所幸我已經完美繼承,特此寫一篇繼承文件給剛準備入坑的小夥伴。

第一步:進入極光推送官網。註冊賬號並登入。

第二步:進入極光開發者服務中新建一個運用且繫結自己的專案package包名。




現在我們就要去官方下載SDK了,這裡附上地址:https://docs.jiguang.cn/jpush/resources/#android-sdk  選擇android sdk,下載之後解壓。

將紅色箭頭指向的檔案拷入自己專案對應的資料夾下


拷入完畢之後,我們再將AndroidManifest.xml 檔案中新增如下內容。(這裡我貼出我的AndroidManifest.xml檔案,可直接貼上使用。只需要把中文的地方替換成自己的就ok)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="您程式的包名"
    android:versionCode="1"
    android:versionName="1.0" >


    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="22" />


     <!-- 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.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" />    
       <uses-permission android:name="android.permission.WRITE_SETTINGS" />     
    
       <!-- Optional. Required for location feature -->    
       <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />    
       <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:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:name="您程式的包名.MyApplication"
        android:theme="@style/AppTheme" >
        
         <!-- For test only 測試的主程式-->
        <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>
        
        <!-- Required SDK 核心功能-->
        <!-- 可配置android:process引數將PushService放在其他程序中 -->
        <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>
    
         <!-- since 3.0.9 Required SDK 核心功能-->
        <provider
            android:authorities="com.example.jiguangtuisong.DataProvider"
            android:name="cn.jpush.android.service.DataProvider"
            android:exported="true"
        />
        
           <!-- 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="com.example.jiguangtuisong"/>    
                </intent-filter>    
            </service>    
      <!-- since 3.1.0 Required SDK 核心功能-->
          <provider
               android:authorities="您程式的包名.DownloadProvider"
               android:name="cn.jpush.android.service.DownloadProvider"
               android:exported="true"
           />
          
           <!-- Required -->    
           <receiver    
               android:name="cn.jpush.android.service.PushReceiver"    
               android:enabled="true" >    
               <intent-filter android:priority="1000">     
                   <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />     
                   <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核心功能-->    
           <activity    
               android:name="cn.jpush.android.ui.PushActivity"    
               android:configChanges="orientation|keyboardHidden"    
               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核心功能-->    
           <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="您的開發者key,就是我前面提到的key"/>     
    </application>

</manifest>

此時,距離完成整合只差一個步驟了,就是初始化SDK.在您的Application中新增初始化程式碼。以下是我的application,小夥伴們可以直接拷貝使用。

public class MyApplication extends Application {


@Override  
public void onCreate() {  
super.onCreate();  
JPushInterface.setDebugMode(true);  
JPushInterface.init(this);  
}  
}

至此,所有繼承工作已完畢。現在您只需要將程式跑起來,就ok。以下是成功整合之後的截圖。


以上就是整合全過程,如有不當之處,請多多指教。

如果還沒有整合成功的小夥伴可以下載我的demo看看,地址:https://download.csdn.net/download/k571039838k/10423343