Channel/Android/gtgame/debug/libs/library-debug-gtgame.aarBinary files differ
Channel/Android/gtgame/release/libs/library-release-gtgame.aarBinary files differ
Channel/Android/test/debug/libs/library-debug-test.aarBinary files differ
Channel/Android/test/release/libs/library-release-test.aarBinary files differ
SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
@@ -73,7 +73,14 @@ })); findViewById(R.id.btnA).setOnClickListener(v -> { unityMessage(CodeU2A.GoToReview); JSONObject json = new JSONObject(); try { json.put("code", CodeU2A.RequestPermission); json.put("permission", "android.permission.RECORD_AUDIO"); } catch (JSONException e) { e.printStackTrace(); } UnityMsgHandler.onUnityMessage(json.toString()); }); findViewById(R.id.btnB).setOnClickListener(v -> { SdkProject/channel/GTGame/java/com/secondworld/sdk/MySdkMgr.java
@@ -59,18 +59,14 @@ public void onSuccess() { sdkInitState = SdkInitState.SUCCEED; LogUtil.debug("SdkManager", "初始化成功"); args.clear(); args.put("code", CodeA2U.PlatformInitOk); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitOk); } @Override public void onError(String msg) { sdkInitState = SdkInitState.FAILED; LogUtil.e("SdkManager", "初始化失败:" + msg); args.clear(); args.put("code", CodeA2U.PlatformInitFail); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformInitFail); } }); @@ -85,10 +81,8 @@ info.put("account", SdkManager.getInstance().getUid()); info.put("game_id", SdkManager.getInstance().getGameId()); info.put("session_id", SdkManager.getInstance().getSessionId()); args.put("code", CodeA2U.PlatformLoginOk); args.put("info", info); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk,args); } catch (JSONException e) { e.printStackTrace(); LogUtil.e("SdkManager 登录成功", e); @@ -100,24 +94,19 @@ public void onSuccess(Boolean isNewReg, String reg_type) { LogUtil.e("SdkManager", "注册成功" + " isNewReg:" + isNewReg + " type:" + reg_type); args.clear(); args.put("code", CodeA2U.PlatformRegisterOk); args.put("reg_type", reg_type); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformRegisterOk,args); } @Override public void onError(String s) { LogUtil.e("SdkManager", "登录失败:" + s); args.clear(); args.put("code", CodeA2U.PlatformLoginFail); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); } @Override public void onCancel() { args.clear(); args.put("code", CodeA2U.PlatformLoginFail); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginFail); } }); @@ -146,9 +135,7 @@ @Override public void onSuccess() { //注销成功,需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 args.clear(); args.put("code", CodeA2U.PlatformLogoutOk); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); } @Override @@ -189,27 +176,24 @@ @Override public void onSuccess(String type) { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ShareState); args.put("state", CallBackState.Success); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState,args); LogUtil.debug("分享回调", "onSuccess:" + type); } @Override public void onError(String type, String msg) { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ShareState); args.put("state", CallBackState.Error); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.ShareState,args); LogUtil.debug("分享回调", "type:" + type + ";msg:" + msg); } @Override public void onCancel(String type) { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ShareState); args.put("state", CallBackState.Cancel); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity( CodeA2U.ShareState,args); LogUtil.debug("分享回调", type + ":onCancel"); } }); @@ -219,27 +203,24 @@ @Override public void onSuccess() { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ReviewState); args.put("state", CallBackState.Success); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args); LogUtil.debug("评分回调", "成功"); } @Override public void onError(String s) { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ReviewState); args.put("state", CallBackState.Error); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args); LogUtil.debug("评分回调", "失败:" + s); } @Override public void onCancel() { Map<String, Object> args = new HashMap<>(); args.put("code", CodeA2U.ReviewState); args.put("state", CallBackState.Cancel); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(CodeA2U.ReviewState,args); LogUtil.debug("评分回调", "取消"); } }); SdkProject/library/src/main/AndroidManifest.xml
@@ -9,6 +9,8 @@ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取MAC地址--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 录音 --> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <application android:name="com.secondworld.sdk.GameApp" SdkProject/library/src/main/java/com/secondworld/sdk/GameActivityProxy.java
@@ -35,12 +35,12 @@ } public void onDestroy() { activity=null; activity = null; I = null; } public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { PermissionManager.I.onRequestPermissionsResult(activity,requestCode, permissions, grantResults); } } SdkProject/library/src/main/java/com/secondworld/sdk/PermissionManager.java
New file @@ -0,0 +1,60 @@ package com.secondworld.sdk; import android.app.Activity; import android.content.pm.PackageManager; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.content.PermissionChecker; import com.secondworld.sdk.utils.CallBackState; import com.secondworld.sdk.utils.CodeA2U; import java.util.HashMap; import java.util.Map; /** * 权限管理 */ public class PermissionManager { public static PermissionManager I = new PermissionManager(); private static final int REQUEST_CODE = 9527; /** * 查询是否有权限 */ public boolean hasPermission(String permission) { return ContextCompat.checkSelfPermission(GameApp.I, permission) == PackageManager.PERMISSION_GRANTED && PermissionChecker.checkSelfPermission(GameApp.I, permission) == PackageManager.PERMISSION_GRANTED; } /** * 请求权限 */ public void requestPermissions(String permission) { if (GameActivityProxy.I == null || GameActivityProxy.I.activity == null) return; ActivityCompat.requestPermissions(GameActivityProxy.I.activity, new String[]{permission}, REQUEST_CODE); } public void onRequestPermissionsResult(Activity activity, int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (activity == null||permissions.length==0||requestCode!=REQUEST_CODE) return; Map<String, Object> map = new HashMap<>(); map.put("permission",permissions[0]); if (hasPermission(permissions[0])) { map.put("state", CallBackState.Success); } else { if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permissions[0])) {//用户拒绝,未勾选【不再提示】 map.put("state", CallBackState.Cancel); } else {//用户拒绝且勾选了【不再提示】 map.put("state", CallBackState.Error); } } UnityMsgHandler.sendMessageToUnity(CodeA2U.PermissionCallBack, map); } } SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
@@ -87,21 +87,19 @@ } public static void sendMessageToUnity(int code) { Map<String, Object> args = new HashMap<>(); args.put("code", code); UnityMsgHandler.sendMessageToUnity(args); UnityMsgHandler.sendMessageToUnity(code,null); } /** * 发送消息到unity * * @param jsonMap * @param args */ public static void sendMessageToUnity(Map<String, Object> jsonMap) { if (jsonMap == null || jsonMap.isEmpty()) { return; } JSONObject jsonObject = new JSONObject(jsonMap); public static void sendMessageToUnity(int code, Map<String, Object> args) { if (args == null) args = new HashMap<>(); args.put("code", code); JSONObject jsonObject = new JSONObject(args); if (GameApp.I.isDemo()) { LogUtil.debug("发送消息到unity", jsonObject.toString()); return; SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
@@ -49,19 +49,17 @@ } //发送设备信息 Map<String, Object> _msgStruct = new HashMap<>(); _msgStruct.put("code", CodeA2U.DeviceInfo); _msgStruct.put("userAgent", System.getProperty("http.agent")); _msgStruct.put("mac", DeviceUtil.getLocalMac()); _msgStruct.put("imei", ""); _msgStruct.put("android_id", DeviceUtil.getAndroidId()); _msgStruct.put("unique_id", DeviceUtil.getUniqueID()); _msgStruct.put("memoryTotal", size); UnityMsgHandler.sendMessageToUnity(_msgStruct); UnityMsgHandler.sendMessageToUnity(CodeA2U.DeviceInfo,_msgStruct); //通知sdk初始化完成 _msgStruct.clear(); _msgStruct.put("code", CodeA2U.SdkInitComplete); _msgStruct.put("channelPlatform", PlatformDiff.I.platformName()); UnityMsgHandler.sendMessageToUnity(_msgStruct); UnityMsgHandler.sendMessageToUnity(CodeA2U.SdkInitComplete,_msgStruct); LogUtil.debug("CmdInit", "Sdk初始化完成"); } } SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestPermission.java
@@ -1,10 +1,12 @@ package com.secondworld.sdk.command; import com.secondworld.sdk.PermissionManager; import com.secondworld.sdk.utils.CodeU2A; import org.json.JSONException; import org.json.JSONObject; public class CmdRequestPermission implements ICommand { public class CmdRequestPermission implements ICommand { @Override public int getCode() { @@ -12,7 +14,8 @@ } @Override public void process(JSONObject json) { public void process(JSONObject json) throws JSONException { String permission = json.getString("permission"); PermissionManager.I.requestPermissions(permission); } } SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
@@ -68,10 +68,9 @@ if (_batteryLevel != m_BatteryLevel) { try { _msg.put("code", CodeA2U.BatteryLevel); _msg.put("level", _batteryLevel); UnityMsgHandler.sendMessageToUnity(_msg); UnityMsgHandler.sendMessageToUnity(CodeA2U.BatteryLevel,_msg); m_BatteryLevel = _batteryLevel; @@ -95,10 +94,9 @@ _transCode = 3; } _msg.put("code", CodeA2U.BatteryCharging); _msg.put("status", _transCode); UnityMsgHandler.sendMessageToUnity(_msg); UnityMsgHandler.sendMessageToUnity(CodeA2U.BatteryCharging,_msg); m_Status = _status; } SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeA2U.java
@@ -19,15 +19,15 @@ int BatteryCharging = 2; /** * 回调sdk逻辑完毕 * */ */ int SdkInitComplete = 3; /** * 回调android设备信息 * */ */ int DeviceInfo = 4; /** * 回调推送的独立id * */ */ int PushClientID = 5; /** * 回调外部存储根目录地址 @@ -37,6 +37,10 @@ * 触发了退出游戏逻辑, 打开二次确认界面 */ int ExitGame = 7; /** * 权限申请结果 */ int PermissionCallBack = 8; // 自由sdk_code int PlatformInitOk = 100; SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
@@ -33,9 +33,7 @@ if (installVer == currentVer) { LogUtil.i("copyAssets", "已拷贝过,installVer:" + installVer + ";" + "currentVer:" + currentVer); Map<String, Object> _msg = new HashMap<>(); _msg.put("code", CodeA2U.AssetCopyFinished); UnityMsgHandler.sendMessageToUnity(_msg); UnityMsgHandler.sendMessageToUnity(CodeA2U.AssetCopyFinished); return; } @@ -53,8 +51,7 @@ // 存储此次的拷贝版本 SPUtils.get().edit().putLong(SPUtils.LAST_COPY_VERSION, currentVer).apply(); Map<String, Object> _msg = new HashMap<>(); _msg.put("code", CodeA2U.AssetCopyFinished); UnityMsgHandler.sendMessageToUnity(_msg); UnityMsgHandler.sendMessageToUnity(CodeA2U.AssetCopyFinished); } catch (Exception e) { e.printStackTrace(); }