在應用主Activity中,使用Matrix的destroy方法
public static void destroy(Contextcontext)
在應用主Activity的onDestroy()函數(shù)中調(diào)用,以退出登錄狀態(tài)并釋放資源。調(diào)用完該接口后,360SDK又回到未初始化狀態(tài)。
參數(shù):
context上下文
使用例子:
@Override protected void onDestroy() { super.onDestroy(); Matrix.destroy(this); }
功能說明:
“退出游戲”,將直接調(diào)用退出回調(diào)函數(shù)。
接口示例及參數(shù)說明:
/** * 使用360SDK的退出接口 * * @param isLandScape 是否橫屏顯示支付界面 */ protected void doSdkQuit(boolean isLandScape) { Bundle bundle = new Bundle(); // 界面相關參數(shù),360SDK界面是否以橫屏顯示。 bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); // 可選參數(shù),登錄界面的背景圖片路徑,必須是本地圖片路徑 bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, ""); // 必需參數(shù),使用360SDK的退出模塊。 bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_QUIT); Intent intent = new Intent(this, ContainerActivity.class); intent.putExtras(bundle); Matrix.invokeActivity(this, intent, mQuitCallback); }
callback的 json數(shù)據(jù)格式:
進入論壇
{"which": 1,"label": "進入論壇"}
退出游戲
{"which": 2,"label": "退出游戲"}
返回按鍵/右上角X圖標
{"which": 0,"label": "返回鍵/X關閉"}
callback示例:
// 退出的回調(diào) private IDispatcherCallback mQuitCallback = new IDispatcherCallback() { @Override public void onFinished(String data) { // TODO your job } };
功能說明:
采集游戲內(nèi)相關數(shù)據(jù),用于跟 CP 深度運營當前游戲。
Matrix 調(diào)用下面函數(shù)
接口示例及參數(shù)說明:
/* * @param _id 當前情景,支持 enterServer(登錄),levelUp(升級),createRole(創(chuàng)建角色) * @param roleId 當前登錄的玩家角色 ID,若無,可傳入 userid * @param roleName 當前登錄的玩家角色名,不能為空,不能為 null,若無,傳入“游戲名稱+username”, 如“皇室戰(zhàn)爭大名鼎鼎” * @param roleLevel 當前登錄的玩家角色等級,必須為數(shù)字,且不能為 0,若無,傳入 1 * @param zoneId 當前登錄的游戲區(qū)服 ID,必須為數(shù)字,且不能為 0,若無,傳入 1 * @param zoneName 當前登錄的游戲區(qū)服名稱,不能為空,不能為 null,若無,傳入游戲名稱+”1 區(qū)”,如“夢 幻西游 1 區(qū)” * @param balance 當前用戶游戲幣余額,必須為數(shù)字,若無,傳入 0 * @param vip 當前用戶 VIP 等級,必須為數(shù)字,若無,傳入 1 * @param partyName 當前用戶所屬幫派,不能為空,不能為 null,若無,傳入”無幫派” * */ public static boolean statEvent( String id, String roleId, String roleName, String roleLevel, String zoneId, String zoneName, String balance, String vip, String partyName, HashMap<String, String> mapParams )
功能說明:
打開論壇接口,為游戲用戶提供分享、吐槽的地方,能夠提高游戲用戶的粘性。
接口示例及參數(shù)說明:
/** * 使用360SDK的論壇接口 * * @param isLandScape 是否橫屏顯示支付界面 */ protected void doSdkBBS(boolean isLandScape) { Bundle bundle = new Bundle(); // 界面相關參數(shù),360SDK界面是否以橫屏顯示。 bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); // 必需參數(shù),使用360SDK的論壇模塊。 bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_BBS); Intent intent = new Intent(this, ContainerActivity.class); intent.putExtras(bundle); Matrix.invokeActivity(this, intent, null); }
功能說明:
防沉迷系統(tǒng)是中國法律對網(wǎng)游管理的要求,因此游戲必須接入防沉迷查詢接口。
使用方法:
游戲方調(diào)用防沉迷查詢接口,查詢該用戶是否已經(jīng)成年。
若已成年,則允許用戶正常游戲,不做任何提醒。
若未成年;或未實名注冊的用戶將受到防沉迷系統(tǒng)的限制.
未實名注冊的用戶,需要調(diào)用實名注冊接口,要求用戶進行實名注冊。
開發(fā)細則:
游戲過程,會提示游戲用戶的累計在線時間。
累計游戲時間超過3小時,游戲收益(經(jīng)驗,金錢)減半。此后,每30分鐘警示一次。累計游戲時間超過5小時,游戲收益為0。此后,每15分鐘警示一次。
如果未成年人的累計下線時間已滿5小時,則累計在線時間清零,如再上線則重新累計在線時間。
接口示例及參數(shù)說明:
/** * 本方法中的callback實現(xiàn)僅用于測試, 實際使用由游戲開發(fā)者自己處理 * * @param accessToken * @param qihooUserId 奇虎360用戶ID */ protected void doSdkAntiAddictionQuery(String accessToken, String qihooUserId) { Bundle bundle = new Bundle(); // 必需參數(shù),用戶access token,要使用注意過期和刷新問題,最大64字符。 bundle.putString(ProtocolKeys.ACCESS_TOKEN, accessToken); // 必需參數(shù),360賬號id。 bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId); // 必需參數(shù),使用360SDK的防沉迷查詢模塊。 bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_ANTI_ADDICTION_QUERY); Intent intent = new Intent(this, ContainerActivity.class); intent.putExtras(bundle); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { } } }
callback的 json數(shù)據(jù)格式:
結果返回
{"content":{"ret":[{"qid":"199062142","status":"2"}]},"error_code":"0","error_msg":""}
error_code | 0 查詢成功 其他值查詢失敗 |
error_msg | 錯誤消息 |
content | json對象,包含ret數(shù)組 |
ret | json對象的數(shù)組 |
qid | 奇虎UserId |
status | 0,無此用戶數(shù)據(jù);1,未成年;2,已成年。 |
callback示例:
new IDispatcherCallback() { @Override public void onFinished(String data) { if (!TextUtils.isEmpty(data)) { try { JSONObject resultJson = new JSONObject(data); int errorCode = resultJson.optInt("error_code"); if (errorCode == 0) { JSONObject contentData = resultJson.getJSONObject("content"); if(contentData != null) { // 保存登錄成功的用戶名及密碼 JSONArray retData = contentData.getJSONArray("ret"); if(retData != null && retData.length() > 0) { int status = retData.getJSONObject(0).optInt("status"); switch (status) { case 0: // 查詢結果:無此用戶數(shù)據(jù) Toast.makeText(SdkUserBaseActivity.this, getString(R.string.anti_addiction_query_result_0), Toast.LENGTH_LONG).show(); break; case 1: // 查詢結果:未成年 Toast.makeText(SdkUserBaseActivity.this, getString(R.string.anti_addiction_query_result_1), Toast.LENGTH_LONG).show(); break; case 2: // 查詢結果:已成年 Toast.makeText(SdkUserBaseActivity.this, getString(R.string.anti_addiction_query_result_2), Toast.LENGTH_LONG).show(); break; default: break; } return; } } } else { Toast.makeText(SdkUserBaseActivity.this, resultJson.optString("error_msg"), Toast.LENGTH_SHORT).show(); return; } } catch (JSONException e) { e.printStackTrace(); } Toast.makeText(SdkUserBaseActivity.this, getString(R.string.anti_addiction_query_exception), Toast.LENGTH_LONG).show(); } } }
功能說明:
提供實名注冊接口,當游戲方調(diào)用防沉迷查詢接口時,發(fā)現(xiàn)用戶未填寫實名注冊信息時,可調(diào)用該接口發(fā)起實名注冊。
接口示例及參數(shù)說明:
/** * 使用360SDK實名注冊接口 * * @param isLandScape 是否橫屏顯示登錄界面 * @param qihooUserId 奇虎360用戶ID */ protected void doSdkRealNameRegister(boolean isLandScape, String qihooUserId) { Bundle bundle = new Bundle(); // 界面相關參數(shù),360SDK界面是否以橫屏顯示。 bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape); // 必需參數(shù),360賬號id。 bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId); // 可選參數(shù),登錄界面的背景圖片路徑,必須是本地圖片路徑 bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, ""); // 必需參數(shù),使用360SDK的實名注冊模塊。 bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_REAL_NAME_REGISTER); Intent intent = new Intent(this, ContainerActivity.class); intent.putExtras(bundle); Matrix.invokeActivity(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { } }); }
參數(shù):
context上下文
// 獲取AndroidManifest.xml中的meta-data QHOPENSDK_APPID public static String getAppId(Context context) // 獲取AndroidManifest.xml中的meta-data QHOPENSDK_APPKEY public static String getAppKey(Context context) // 獲取AndroidManifest.xml中的meta-data QHOPENSDK_PRIVATEKEY public static String getPrivateKey(Context context) // 獲取sdk的VersionName public static String getVersionName(Context context)
功能說明:
提供在360后臺配置的關卡信息獲取接口,游戲接入方可以根據(jù)此接口獲取在服務端配置的關卡信息
接口示例及參數(shù)說明:
/** * 本方法中的callback實現(xiàn)僅用于測試, 實際使用由游戲開發(fā)者自己處理 */ protected void doSdkGameLevelQuery(QihooUserInfo userInfo) { if (!checkLoginInfo(userInfo)) { return; } Bundle bundle = new Bundle(); // 必需參數(shù),使用360SDK的游戲關卡查詢 bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GAME_LEVEL); Intent intent = new Intent(this, ContainerActivity.class); intent.putExtras(bundle); Matrix.execute(this, intent, new IDispatcherCallback() { @Override public void onFinished(String data) { if (!TextUtils.isEmpty(data)) { try { JSONObject resultJson = new JSONObject(data); int errorCode = resultJson.optInt("errno"); if (errorCode == 0) { JSONObject mData = resultJson.getJSONObject("data"); if(mData != null) { //用戶關卡信息 String mContent = mData.optString("content"); if(mContent.isEmpty()){ Toast.makeText(SdkUserBaseActivity.this,"沒有配置關卡信息", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(SdkUserBaseActivity.this,"關卡信息為:"+mContent, Toast.LENGTH_SHORT).show(); } return; } } else { Toast.makeText(SdkUserBaseActivity.this,data, Toast.LENGTH_SHORT).show(); return; } } catch (JSONException e) { e.printStackTrace(); } Toast.makeText(SdkUserBaseActivity.this, getString(R.string.anti_addiction_query_exception), Toast.LENGTH_LONG).show(); } } }); }
更多建議: