JavaBuildPath->Libraries,然后點擊AddExternalJARs...選擇指向jar' />
App消息推送
下載最新版SDK的zip包,將其中的libs 文件夾合并到本地工程libs
子目錄下,再在Eclipse里面刷新一下工程。
注意
Eclipse ADT 17 以下版本用戶,可以使用老方式添加工程引用。
Eclipse
用戶鼠標右鍵工程根目錄,選擇Properties -> Java Build Path -> Libraries
,然后點擊Add External JARs...
選擇指向jar的路徑,點擊OK
,即導入成功。 如果引用過程中出現問題, 可以參考Dealing with dependencies in Android projects.Android Studio 以及Gradle 用戶請參考如何引用第三方類庫說明, 暫不提供 maven 支持。
本SDK需要最新版本的
android-support-v4.jar
支持包。請在工程中添加android-support-v4.jar
支持包。 關于v4 支持包說明, 請參考 http://developer.android.com/tools/support-library/features.html#v4 .
標簽下與消息推送相關的組件包名。
在
標簽下:
<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" />
說明
- 下面兩個權限為消息推送SDK V1.2.3版本中添加的權限,新版中已經不需要這兩個權限。
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
在
標簽下:
注意
添加組件時需要將【應用包名】替換為你自己應用的包名。
<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="【應用包名】.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="【應用包名】.intent.action.START" />
intent-filter>
<intent-filter>
<action android:name="【應用包名】.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" />
在
標簽下:
<meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
meta-data>
<meta-data
android:name="UMENG_MESSAGE_SECRET"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" >
meta-data>
說明
請在 http://message.umeng.com 創建應用,獲取應用對應的AppKey和Umeng Message Secret。
你可以用Channel ID來標識APP的推廣渠道,作為推送消息時給用戶分組的一個維度。設置方法如下:
在
標簽下:
<meta-data
android:name="UMENG_CHANNEL"
android:value="Channel ID" >
meta-data>
將"android:value"中的"Channel ID"替換為APP的推廣渠道。
或者,通過調用以下代碼來設置推廣渠道。
mPushAgent.setMessageChannel();
說明
- 若同時在AndroidManifest.xml和代碼設置了MessageChannel,則以代碼設置的為準。
- 若在AndroidManifest.xml和代碼里均沒有設置,則使用Unknown作為Channel ID。
- 你可以使用20位以內的英文和數字為渠道定名(不要使用純數字)。
- 友盟消息推送可以和友盟統計分析共用一個"Channel ID"字段。
- 你可以使用友盟渠道打包工具,一次生成多個渠道包。
在應用的主Activity onCreate()
函數中開啟推送服務
PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();
mPushAgent.disable();
來關閉客戶端的通知服務。mPushAgent.isEnabled()
來查詢狀態。 狀態表示有沒有啟用/關閉推送功能, 不表示推送后臺服務的運行狀態。注意
如果你的應用繼承了Application, 不要在Application
onCreate()
中調用mPushAgent.enable();
. 由于SDK 設計的邏輯, 這會造成循環。
在所有的Activity 的onCreate
函數添加
PushAgent.getInstance(context).onAppStart();
注意: 如果不調用此方法,將會導致按照"幾天不活躍"條件來推送失效。
如果在測試或其他使用場景中,需要獲取設備的Device Token,可以使用下面的方法。
String device_token = UmengRegistrar.getRegistrationId(context)
說明
- Device Token為友盟生成的用于標識設備的id,長度為44位,不能定制和修改。同一臺設備上每個應用對應的Device Token不一樣。
- 獲取Device Token的代碼需要放在
mPushAgent.enable();
后面,注冊成功以后調用才能獲得Device Token。- 如果返回值為空, 說明設備還沒有注冊成功, 需要等待幾秒鐘,同時請確保測試手機網絡暢通。
添加代碼完畢后,編譯apk包。然后將apk包安裝到聯網的測試設備上并打開。
說明
如果在編譯和調試過程中遇到問題(例如混淆或無法編譯),請參考步驟7中常見問題的處理方法。
可以在Debug模式下輸出的logcat中看到Device Token,也可以使用下面的方法來獲取Device Token。
String device_token = UmengRegistrar.getRegistrationId(context)
說明
- Device Token為友盟生成的用于標識設備的id,長度為44位,不能定制和修改。同一臺設備上每個應用對應的Device Token不一樣。
- 獲取Device Token的代碼需要放在
mPushAgent.enable();
后面,注冊成功以后調用才能獲得Device Token。- 如果返回值為空, 說明設備還沒有注冊成功, 需要等待幾秒鐘,同時請確保測試手機網絡暢通。
在友盟消息推送服務后臺( http://message.umeng.com )的“測試模式”中填寫該設備的Device Token,將該設備添加為測試設備,
在“測試模式”中發送測試消息。在測試設備上收到消息,表明SDK集成成功。
說明
SDK 默認使用通知欄展示通知消息,開發者可以在友盟后臺指定用戶點擊通知欄時的操作,包括“打開應用”、“打開指定頁面(Activity)”、或“打開指定網頁”。 如果沒有收到消息,請參考FAQ中的處理方法。
如果要使用API對接友盟服務器來發送消息,需要在友盟消息推送服務后臺( http://message.umeng.com )填寫服務器地址,進行白名單登記。 參考API文檔中的格式發送測試消息。需要填寫正確的App Master Secret。
在友盟后臺,消息分為兩類:
1. 通知消息
該消息包含Notification所需的參數,如Notification的標題、內容、是否振動、點擊后的相應動作等信息。如下圖所示:
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩定
產品高可用性高并發貼心
項目群及時溝通專業
產品經理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽堅持
10年專注高端品質開發