cocos 項目 接入友盟 android 推送sdk

對於 cocos 項目,按照友盟的官網文檔接入步驟. 是無法成功編譯的.

所以在這裏做個記錄.希望對和我一樣是android菜鳥的同學有用
我用的SDK版本是最新的 2.7.0

1.先按照官網的步驟接入.

  • 把下載的SDK裏面的PushSDK當做library引用導入自己的項目。
    這一步對於不用 eclipse的我來說.就是在project.properties很簡單的添加一行代碼 android.library.reference.1=../PushSDK ,然後把sdk copy到proj.android的同級目錄
  • 把AndroidManifest.xml裏面的${applicationId}替換成爲自己項目的包名。
  • 把下載的eclipselibs目錄下的okio-0.6.1.jar、wire-runtime-1.7.0.jar這兩個文件拷貝到PushSDK的libs目錄下。
  • 在自己項目的目錄下找到project.properties,在裏面加入manifestmerger.enabled=true。
  • 如果是android6.0以上的api編譯,把SDK目錄下的libs/裏面的org.apache.http.legacy.jar拷貝到PushSDK的libs目錄,然後加入buildpath裏面(這一步我暫時沒有做,後面接入gg的廣告可能要整一下)

  • 然後是 android-support-v4.jar .這個包應該是需要的. 直接baidu一個 放到 proj.android 的libs目錄下即可
    這是官網描述注意: 本SDK需要最新版本的 android-support-v4.jar 支持包。請在工程中添加 android-support-v4.jar 支持包。 關於v4 支持包說明, 請參考 http://developer.android.com/tools/support-library/features.html#v4。

2.添加AppKey & Umeng Message Secret
在項目工程的AndroidManifest.xml中的<Application>標籤下添加:

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

把上述的umeng_appkeyumengmessage_secret修改爲和自己App對應的值


3.添加Channel ID

你可以用Channel ID來標識APP的推廣渠道,作爲推送消息時給用戶分組的一個維度。設置方法如下:
<application>標籤下:

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="Channel ID" >
</meta-data>
將"android:value"中的"Channel ID"替換爲APP的推廣渠道。


4.添加代碼


import com.umeng.message.PushAgent;
import com.umeng.message.IUmengRegisterCallback;


    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        MobClickCppHelper.init(this);
        //這裏是要添加的部分
        PushAgent mPushAgent = PushAgent.getInstance(this);
        mPushAgent.enable();
        mPushAgent.onAppStart();
        //要添加部分結束
        if(nativeIsLandScape()) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
        }
        if(nativeIsDebug()){
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        }
        hostIPAdress = getHostIpAddress();
    }

mPushAgent.enable();可以換成下面這個版本. 來獲取測試設備的 device_token 用於測試推送消息

mPushAgent.enable(new IUmengRegisterCallback() {
    @Override
    public void onRegistered(String registrationId) {
        //onRegistered方法的參數registrationId即是device_token
        Log.d("device_token", registrationId);
    }
});


到此爲止,官網的步驟已經結束了. 可是我用cocos studio編譯是不通過的.而且完全看不到編譯錯誤在哪. 你可以編譯試試


5.好了.下面纔是針對cocos項目的重頭戲

  1. 在下載的sdk包裏 找到這個文件 proguard-rules.txt copy到 PushSDK 目錄下
  2. PushSDK 目錄下創建一個src 文件夾
  3. src 目錄下創建一個com文件夾
  4. com 目錄下創建一個whatulike 文件夾
  5. whatulike 目錄下創建一個whatulike2文件夾
  6. whatulike2 目錄下創建一個whatulike.java文本文件

whatulike.java內容 隨你,可以複製下面的…

package com.whatulike.whatulike2;

import android.app.Activity;
import android.os.Bundle;

public class WhatULike extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
    }
}

目前爲止,你應該可以正確的編譯了.用eclipse或者 cocos studio 都可以編譯

然後就可以運行難是否成功接入以及查看測試設備的 device_token

對於用 nodejs 接入推送api的問題,
這裏有個現成的輪子 https://www.npmjs.com/package/umengpush-node

have fun day.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章