JavaBuildPath->Libraries,然后點(diǎn)擊AddExternalJARs...選擇指向jar' />

91亚洲精华国内精华精华液_国产高清在线精品一区不卡_精品特级一级毛片免费观看_欧美日韩中文制服有码_亚洲精品无码你懂的网站369

1. 導(dǎo)入SDK所需jar包

下載最新版SDK的zip包,將其中的libs 文件夾合并到本地工程libs子目錄下,再在Eclipse里面刷新一下工程。

注意

  • Eclipse ADT 17 以下版本用戶,可以使用老方式添加工程引用。 Eclipse用戶鼠標(biāo)右鍵工程根目錄,選擇Properties -> Java Build Path -> Libraries,然后點(diǎn)擊Add External JARs... 選擇指向jar的路徑,點(diǎn)擊OK,即導(dǎo)入成功。 如果引用過(guò)程中出現(xiàn)問(wèn)題, 可以參考Dealing with dependencies in Android projects.

  • Android Studio 以及Gradle 用戶請(qǐng)參考如何引用第三方類庫(kù)說(shuō)明, 暫不提供 maven 支持。

  • 本SDK需要最新版本的 android-support-v4.jar 支持包。請(qǐng)?jiān)诠こ讨刑砑?nbsp;android-support-v4.jar 支持包。 關(guān)于v4 支持包說(shuō)明, 請(qǐng)參考 http://developer.android.com/tools/support-library/features.html#v4 .

2. 使用SDK包中的Demo進(jìn)行調(diào)試(可選)

  1. 導(dǎo)入SDK包中Demo的代碼到Eclipse。
  2. 用添加應(yīng)用時(shí)獲得的AppKey和Umeng Message Secret替換掉Demo中默認(rèn)的AppKey和Umeng Message Secret。
  3. 用添加應(yīng)用時(shí)填寫(xiě)的包名(多包名時(shí)根據(jù)需要填寫(xiě)其中一個(gè))替換Demo的包名(com.umeng.message.example)。包括:
    • AndroidManifest.xml文件中的"package"字段。
    • AndroidManifest.xml文件中的標(biāo)簽下與消息推送相關(guān)的組件包名。
    • Eclipse里的包名。
  4. 重新打包Demo。將Demo的apk包安裝到測(cè)試設(shè)備上并打開(kāi)。
  5. 參照步驟4.3的說(shuō)明,給該設(shè)備發(fā)送測(cè)試消息。

3. 配置AndroidManifest.xml

3.1 添加權(quán)限

標(biāo)簽下:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

說(shuō)明

  • 下面兩個(gè)權(quán)限為消息推送SDK V1.2.3版本中添加的權(quán)限,新版中已經(jīng)不需要這兩個(gè)權(quán)限。
    <uses-permission android:name="android.permission.GET_TASKS" />  
    <uses-permission android:name="android.permission.REORDER_TASKS" />

3.2 添加組件

標(biāo)簽下:

注意

添加組件時(shí)需要將【應(yīng)用包名】替換為你自己應(yīng)用的包名。

<receiver
    android:name="com.umeng.message.NotificationProxyBroadcastReceiver"
    android:exported="false" >
receiver>
<receiver android:name="com.umeng.message.RegistrationReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_REMOVED" />

        <data android:scheme="package" />
    intent-filter>

     
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    intent-filter>

receiver>
<receiver android:name="com.umeng.message.UmengBroadcastReceiver" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.RECEIVE" />
    intent-filter>
    <intent-filter>
        <action android:name="【應(yīng)用包名】.intent.action.COMMAND" />
    intent-filter>
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.RE_ELECTION_V2" />
    intent-filter>
receiver>
<service
    android:name="com.umeng.message.UmengService"
    android:exported="true"
    android:process=":umengService_v1" >
    <intent-filter>
        <action android:name="【應(yīng)用包名】.intent.action.START" />
    intent-filter>
    <intent-filter>
        <action android:name="【應(yīng)用包名】.intent.action.COCKROACH" />
    intent-filter>
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.PING" />
    intent-filter>
service>
<service
    android:name="org.android.agoo.service.ElectionService"
    android:exported="true"
    android:process=":umengService_v1" >
    <intent-filter>
        <action android:name="org.agoo.android.intent.action.ELECTION_V2" />
    intent-filter>
service>
<service android:name="com.umeng.message.UmengIntentService" />

<service android:name="com.umeng.message.UmengDownloadResourceService" />

3.3 添加 AppKey 和 Umeng Message Secret

標(biāo)簽下:

<meta-data
    android:name="UMENG_APPKEY"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
meta-data>
<meta-data
    android:name="UMENG_MESSAGE_SECRET"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
meta-data>

說(shuō)明

請(qǐng)?jiān)?nbsp;http://message.umeng.com 創(chuàng)建應(yīng)用,獲取應(yīng)用對(duì)應(yīng)的AppKey和Umeng Message Secret。

3.4 添加Channel ID

你可以用Channel ID來(lái)標(biāo)識(shí)APP的推廣渠道,作為推送消息時(shí)給用戶分組的一個(gè)維度。設(shè)置方法如下:

標(biāo)簽下:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="Channel ID" >
meta-data>

將"android:value"中的"Channel ID"替換為APP的推廣渠道。

或者,通過(guò)調(diào)用以下代碼來(lái)設(shè)置推廣渠道。

mPushAgent.setMessageChannel();

說(shuō)明

  • 若同時(shí)在AndroidManifest.xml和代碼設(shè)置了MessageChannel,則以代碼設(shè)置的為準(zhǔn)。
  • 若在AndroidManifest.xml和代碼里均沒(méi)有設(shè)置,則使用Unknown作為Channel ID。
  • 你可以使用20位以內(nèi)的英文和數(shù)字為渠道定名(不要使用純數(shù)字)。
  • 友盟消息推送可以和友盟統(tǒng)計(jì)分析共用一個(gè)"Channel ID"字段。
  • 你可以使用友盟渠道打包工具,一次生成多個(gè)渠道包。

4. 添加代碼,編譯測(cè)試

4.1 添加代碼

4.1.1 開(kāi)啟推送服務(wù)

在應(yīng)用的主Activity onCreate() 函數(shù)中開(kāi)啟推送服務(wù)

PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();
  • 可以通過(guò)接口 mPushAgent.disable(); 來(lái)關(guān)閉客戶端的通知服務(wù)。
  • 通過(guò)mPushAgent.isEnabled() 來(lái)查詢狀態(tài)。 狀態(tài)表示有沒(méi)有啟用/關(guān)閉推送功能, 不表示推送后臺(tái)服務(wù)的運(yùn)行狀態(tài)。

注意

如果你的應(yīng)用繼承了Application, 不要在Application onCreate() 中調(diào)用 mPushAgent.enable();. 由于SDK 設(shè)計(jì)的邏輯, 這會(huì)造成循環(huán)。

4.1.2 統(tǒng)計(jì)應(yīng)用啟動(dòng)數(shù)據(jù)

在所有的Activity 的onCreate 函數(shù)添加

PushAgent.getInstance(context).onAppStart();

注意: 如果不調(diào)用此方法,將會(huì)導(dǎo)致按照"幾天不活躍"條件來(lái)推送失效。

4.1.3 獲取設(shè)備的Device Token(可選)

如果在測(cè)試或其他使用場(chǎng)景中,需要獲取設(shè)備的Device Token,可以使用下面的方法。

String device_token = UmengRegistrar.getRegistrationId(context)

說(shuō)明

  • Device Token為友盟生成的用于標(biāo)識(shí)設(shè)備的id,長(zhǎng)度為44位,不能定制和修改。同一臺(tái)設(shè)備上每個(gè)應(yīng)用對(duì)應(yīng)的Device Token不一樣。
  • 獲取Device Token的代碼需要放在mPushAgent.enable();后面,注冊(cè)成功以后調(diào)用才能獲得Device Token。
  • 如果返回值為空, 說(shuō)明設(shè)備還沒(méi)有注冊(cè)成功, 需要等待幾秒鐘,同時(shí)請(qǐng)確保測(cè)試手機(jī)網(wǎng)絡(luò)暢通。

4.2 編譯

添加代碼完畢后,編譯apk包。然后將apk包安裝到聯(lián)網(wǎng)的測(cè)試設(shè)備上并打開(kāi)。

說(shuō)明

如果在編譯和調(diào)試過(guò)程中遇到問(wèn)題(例如混淆或無(wú)法編譯),請(qǐng)參考步驟7中常見(jiàn)問(wèn)題的處理方法。

4.3 在測(cè)試模式中發(fā)送測(cè)試消息

4.3.1 獲取測(cè)試設(shè)備的Device Token。

可以在Debug模式下輸出的logcat中看到Device Token,也可以使用下面的方法來(lái)獲取Device Token。

String device_token = UmengRegistrar.getRegistrationId(context)

說(shuō)明

  • Device Token為友盟生成的用于標(biāo)識(shí)設(shè)備的id,長(zhǎng)度為44位,不能定制和修改。同一臺(tái)設(shè)備上每個(gè)應(yīng)用對(duì)應(yīng)的Device Token不一樣。
  • 獲取Device Token的代碼需要放在mPushAgent.enable();后面,注冊(cè)成功以后調(diào)用才能獲得Device Token。
  • 如果返回值為空, 說(shuō)明設(shè)備還沒(méi)有注冊(cè)成功, 需要等待幾秒鐘,同時(shí)請(qǐng)確保測(cè)試手機(jī)網(wǎng)絡(luò)暢通。

4.3.2 添加測(cè)試設(shè)備

在友盟消息推送服務(wù)后臺(tái)( http://message.umeng.com )的“測(cè)試模式”中填寫(xiě)該設(shè)備的Device Token,將該設(shè)備添加為測(cè)試設(shè)備,

4.3.3 發(fā)送測(cè)試消息

在“測(cè)試模式”中發(fā)送測(cè)試消息。在測(cè)試設(shè)備上收到消息,表明SDK集成成功。

說(shuō)明

SDK 默認(rèn)使用通知欄展示通知消息,開(kāi)發(fā)者可以在友盟后臺(tái)指定用戶點(diǎn)擊通知欄時(shí)的操作,包括“打開(kāi)應(yīng)用”、“打開(kāi)指定頁(yè)面(Activity)”、或“打開(kāi)指定網(wǎng)頁(yè)”。 如果沒(méi)有收到消息,請(qǐng)參考FAQ中的處理方法。

4.4 API對(duì)接(可選)

如果要使用API對(duì)接友盟服務(wù)器來(lái)發(fā)送消息,需要在友盟消息推送服務(wù)后臺(tái)( http://message.umeng.com )填寫(xiě)服務(wù)器地址,進(jìn)行白名單登記。 參考API文檔中的格式發(fā)送測(cè)試消息。需要填寫(xiě)正確的App Master Secret。

5. 自定義消息的打開(kāi)動(dòng)作和處理方式

5.1 消息的分類

在友盟后臺(tái),消息分為兩類:

1. 通知消息

該消息包含Notification所需的參數(shù),如Notification的標(biāo)題、內(nèi)容、是否振動(dòng)、點(diǎn)擊后的相應(yīng)動(dòng)作等信息。如下圖所示:

穩(wěn)定

產(chǎn)品高可用性高并發(fā)

貼心

項(xiàng)目群及時(shí)溝通

專業(yè)

產(chǎn)品經(jīng)理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽(yù)

堅(jiān)持

10年專注高端品質(zhì)開(kāi)發(fā)
  • 返回頂部