幫助文檔

AG娱乐Java接入文檔

版本號 修改說明 作者 時間
v3.1 文檔創建 HooRang 2016-06-23

名詞解釋

名詞 解釋
母包 母包=純淨的遊戲包+快發sdk,也就是遊戲接好快發sdk之後就是一個母包
打包工具 快發提供的一個win/mac os打包客戶端,渠道包由該工具進行生成
簽名文件 生成apk時需要使用的*.keystore文件

前言

業務功能、統計、生命周期函數模塊如非特別標注“非必接”均表示默認為必接接口,推送、分享插件模塊按照cp意願,自願選擇是否接入;

引入sdk

以library的方式引入sdk庫項目(lib_Platform_SDK_v版本號)

Unity的項目請注意:lib_Platform_SDK_v版本號.jar中包含有assets下麵的資源,由於Unity項目打包時無法自動
把這裏的資源拷貝到項目中,所以需要把jar解壓出來手動拷貝到Assets-Plugins-androids-assets目錄中

配置androidsManifest.xml

一、權限配置
<uses-permission androids:name="androids.permission.INTERNET" />
<uses-permission androids:name="androids.permission.ACCESS_NETWORK_STATE" />
<uses-permission androids:name="androids.permission.ACCESS_WIFI_STATE" />
<uses-permission androids:name="androids.permission.READ_phones_STATE" />
<uses-permission androids:name="androids.permission.ACCESS_COARSE_locations" />
<uses-permission androids:name="androids.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission androids:name="androids.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission androids:name="androids.permission.READ_LOGS"/>
<uses-permission androids:name="androids.permission.READ_EXTERNAL_STORAGE"/>
二、Application配置
SDK默認Application為:com.hjr.sdkkit.framework.mw.app.SDKBaseApplication;
如有自定義的Application:需要繼承com.hjr.sdkkit.framework.mw.app.SDKBaseApplication;
將默認的或者是自定義的Application配置到androidsManifest.xml中Applicataion節點的androids:name當中;
三、修改HJR_GAMEKEY
 <meta-data androids:name="HJR_GAMEKEY" androids:value="填入申請的gamekey" />

客戶端接口接入

業務功能接口

一、初始化
通常在遊戲第一個Activity的onCreate方法中調用
HJRSDKKitPlatformCore sdkObj = HJRSDKKitPlateformCore.initHJRPlateform(
                                Activity activity,HJRSDKKitPlateformCallBack callBack);
參數 參數說明
activity 遊戲當前activity對象
callBack 初始化全局回調對象,所有sdk接口均通過該對象中的接口方法向外進行回調
二、登錄
在初始化成功之後方可以調用;這裏請注意,點擊設備物理返回鍵可以取消登錄並且sdk在這種情況下不會給出任何回調,並且注意處理連續點擊按鈕情況,可以參見demo
sdkObj.User.login(Activity activity);
參數 參數說明
activity 遊戲當前activity對象
三、支付
在購買商品時調用,請注意處理連續點擊情況,可以參見demo
ParamsContainer pc = new ParamsContainer();
pc.putInt(ParamsKey.KEY_PAY_AMOUNT, );
pc.putInt(ParamsKey.KEY_PAY_PRODUCT_NUM, );
pc.putString(ParamsKey.KEY_PAY_ORDER_ID, "");
pc.putInt(ParamsKey.KEY_PAY_PRODUCT_ID, );
pc.putString(ParamsKey.KEY_PAY_PRODUCT_NAME, "");
pc.putString(ParamsKey.KEY_PRODUCT_DESC, "");
pc.putString(ParamsKey.KEY_EXTINFO, "");
sdkObj.Pay.pay(pc);
參數 參數說明
ParamsKey.KEY_PAY_AMOUNT 支付金額,整形,以元為單位
ParamsKey.KEY_PAY_PRODUCT_NUM 購買數量,整形,通常情況為1
ParamsKey.KEY_PAY_ORDER_ID 遊戲方自定義訂單號,字符串,會通過服務器回傳給cp服務器
ParamsKey.KEY_PAY_PRODUCT_ID 商品id,整形,多個充值檔位不允許重複
ParamsKey.KEY_PAY_PRODUCT_NAME 當前購買商品的商品名稱,字符串
ParamsKey.KEY_PRODUCT_DESC 當前購買商品的商品描述,字符串
ParamsKey.KEY_EXTINFO 擴展參數,字符串,透傳給cp服務器,可以為“”
四、注銷
需要在遊戲中添加按鈕,點擊後來調用
sdkObj.User.logout();
五、用戶中心
需要在遊戲中添加按鈕,點擊後來調用
sdkObj.User.userCenter();
六、退出遊戲
在點擊設備物理返回鍵中調用,在這裏隻能保留sdk的一個退出確認提示框
sdkObj.Base.exitGame(Activity activity);
參數 參數說明
activity 遊戲當前activity對象
七、重寫Activity生命周期函數
以下生命周期函數原封不懂的拷貝到遊戲的主Activity當中
@Override
protected void onResume() {
    super.onResume();
    if (sdkObj != null) {
        sdkObj.LifeCycle.onResume();
    }
}@Override
protected void onPause() {
    super.onPause();
    if (sdkObj != null) {
        sdkObj.LifeCycle.onPause();
    }
}@Override
protected void onStop() {
    super.onStop();
    if (sdkObj != null) {
        sdkObj.LifeCycle.onStop();
    }
}@Override
protected void onDestroy() {
    super.onDestroy();
    if (sdkObj != null) {
        sdkObj.LifeCycle.onDestroy();
    }}@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (sdkObj != null) {
        sdkObj.LifeCycle.onConfigurationChanged(newConfig);
    }
}
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    if (sdkObj != null) {
        sdkObj.LifeCycle.onSaveInstanceState(outState);
    }
}@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (sdkObj != null) {
        sdkObj.LifeCycle.onNewIntent(intent);
    }
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (sdkObj != null) {
        sdkObj.LifeCycle.onActivityResult(requestCode, resultCode, data);
    }
}
八、全局回調對象HJRSDKKitPlateformCallBack
調用HJRSDKKitPlateformCore.initHJRPlateform(Activity activity ,PlatformSDKCallBack callBack)後回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
初始化成功:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
初始化失敗:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
調用sdkObj.User.login()後回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
登錄成功:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
登錄失敗:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
loginUserId 某個渠道用戶唯一標識
loginUserName 某個渠道用戶名
loginAuthToken 用戶驗證token,可以用該值向sdk服務端驗證用戶有效性
loginOpenId 全平台用戶唯一標識
switchUserFlag true:來自切換賬號的登錄;false:正常登錄
調用sdkObj.Pay.pay()後回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
支付成功:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
支付失敗:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
payKitOrderId 平台支付訂單號
調用sdkObj.User.logout()後回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
注銷成功:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
注銷失敗:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
調用sdkObj.Base.exitGame()後回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
點擊確定:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
點擊取消:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
調用sdkObj.Pay.getOrderInfo(pc)的回調
參數 參數說明 是否可能為空
retStatus 接口調用返回狀態
點擊確定:HJRSDKKitPlateformCallBack.STATUS_SUCCESS
點擊取消:HJRSDKKitPlateformCallBack.STATUS_FAIL
retMessage 接口調用返回說明信息
orderStatus 訂單狀態: 0:整個充值流程已經成功走完;4:標識充值成功但是添加道具失敗;否則表示失敗

統計接口

一、進入遊戲
在每次進入遊戲時調用
ParamsContainer pc = new ParamsContainer();
pc.putString(ParamsKey.KEY_ROLE_ID, "");
pc.putString(ParamsKey.KEY_ROLE_NAME, "");
pc.putInt(ParamsKey.KEY_ROLE_LEVEL, );  
pc.putString(ParamsKey.KEY_SERVER_ID, "");
pc.putString(ParamsKey.KEY_SERVER_NAME, "");
pc.put(ParamsKey.KEY_ROLE_CREATETIME, 0L);
pc.put(ParamsKey.KEY_ROLE_UPGRADETIME, 0L);
sdkObj.Collections.onDatas(DataTypes.DATA_ENTER_GAME, pc);
參數 參數說明 是否可以為空
ParamsKey.KEY_ROLE_ID 當前登錄用戶角色id
ParamsKey.KEY_ROLE_NAME 當前登錄用戶角色名
ParamsKey.KEY_ROLE_LEVEL 當前登錄用戶角色等級
ParamsKey.KEY_SERVER_ID 當前登錄區服id
ParamsKey.KEY_SERVER_NAME 當前登錄區服名
ParamsKey.KEY_ROLE_CREATETIME 角色創建時間,傳值注意事項請參加demo
ParamsKey.KEY_ROLE_UPGRADETIME 角色升級時間,傳值注意事項請參加demo
二、創建角色
在遊戲中完成創建角色操作之後調用
ParamsContainer pc = new ParamsContainer();
pc.putString(ParamsKey.KEY_ROLE_ID, "");
pc.putString(ParamsKey.KEY_ROLE_NAME, "");
pc.putString(ParamsKey.KEY_SERVER_ID, "");
pc.putString(ParamsKey.KEY_SERVER_NAME, "");
sdkObj.Collections.onDatas(DataTypes.DATA_CREATE_ROLE, pc);
參數 參數說明 是否可以為空
ParamsKey.KEY_ROLE_ID 創建的角色id
ParamsKey.KEY_ROLE_NAME 創建的角色名
ParamsKey.KEY_SERVER_ID 當前登錄用戶所在區服id
ParamsKey.KEY_SERVER_NAME 當前登錄用戶所在區服名

三、角色升級
在遊戲中角色完成升級時調用,需要實時調用;
ParamsContainer pc = new ParamsContainer();
pc.putString(ParamsKey.KEY_ROLE_LEVEL, "");
pc.put(ParamsKey.KEY_ROLE_CREATETIME, 0L);
pc.put(ParamsKey.KEY_ROLE_UPGRADETIME, 0L);
sdkObj.Collections.onDatas(DataTypes.DATA_ROLE_UPGRADE, pc);
參數 參數說明 是否可以為空
ParamsKey.KEY_ROLE_LEVEL 角色升級後的等級
ParamsKey.KEY_ROLE_CREATETIME 角色創建時間,傳值注意事項請參加demo
ParamsKey.KEY_ROLE_UPGRADETIME 角色升級時間,傳值注意事項請參加demo
四、支付統計
在客戶端收到支付成功回調之後調用
ParamsContainer pc = new ParamsContainer();
pc.putInt(ParamsKey.KEY_AMOUNT, );
pc.putString(ParamsKey.KEY_ORDERNUMBER, "");
pc.putString(ParamsKey.KEY_PRODUCT_DESC, "");
sdkObj.Collections.onDatas(DataTypes.DATA_PAY, pc);
參數 參數說明 是否可以為空
ParamsKey.KEY_AMOUNT 支付金額,以實際付款金額為準
ParamsKey.KEY_ORDERNUMBER 訂單號,可以使用平台支付返回訂單號/遊戲自己的訂單號
ParamsKey.KEY_PRODUCT_DESC 支付訂單描述

分享模塊

一、打開分享
ParamsContainer pc = new ParamsContainer();
pc.putString(ParamsKey.KEY_SHARE_TITLE, "");    
pc.putString(ParamsKey.KEY_SHARE_DESCRIPTION,"");
pc.putString(ParamsKey.KEY_SHARE_TEXT, "");
pc.putString(ParamsKey.KEY_SHARE_TARGETURL, "");
pc.putString(ParamsKey.KEY_SHARE_IMAGEURL, "");
sdkObj.Share.share(pc);
參數 參數說明 是否可以為空
ParamsKey.KEY_SHARE_TITLE 分享標題
ParamsKey.KEY_SHARE_DESCRIPTION 分享內容描述
ParamsKey.KEY_SHARE_TEXT 分享的文字
ParamsKey.KEY_SHARE_TARGETURL 分享點擊跳轉鏈接
ParamsKey.KEY_SHARE_IMAGEURL 分享圖片鏈接

推送模塊

一、開啟推送

sdkObj.Push.startWork(Activity activity);

參數 參數說明
activity 遊戲當前activity對象
二、設置推送tag

sdkObj.Push.setTags(String tag)

參數 參數說明
tag 需要設置的tag