From 7d62c45726746fd3a4e9360642e81d7da6d76757 Mon Sep 17 00:00:00 2001
From: lwb <q3213421wrwqr>
Date: 星期四, 19 十一月 2020 15:06:16 +0800
Subject: [PATCH] 9527 新版本sdk
---
SdkProject/library/src/main/java/com/secondworld/sdk/UnityPlayerActivity.java | 132 ++++++
SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeA2U.java | 2
SdkProject/library/build.gradle | 41 +
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java | 40 +
SdkProject/app/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java | 2
SdkProject/app/src/test/java/com/secondworld/sdk/ExampleUnitTest.java | 2
SdkProject/app/src/main/AndroidManifest.xml | 7
SdkProject/library/src/main/java/com/secondworld/sdk/utils/StaticDefine.java | 12
SdkProject/library/src/main/res/layout/activity_main.xml | 12
SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java | 54 ++
SdkProject/app/build.gradle | 4
SdkProject/library/src/main/AndroidManifest.xml | 14
SdkProject/library/src/main/java/com/secondworld/sdk/utils/LogUtil.java | 4
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdOpenWebView.java | 17
SdkProject/library/src/main/java/com/secondworld/sdk/utils/Util.java | 33 +
SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeU2A.java | 16
SdkProject/library/src/main/res/values/strings.xml | 1
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java | 35 +
SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java | 26 +
SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java | 136 ++++++
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdUniqueID.java | 17
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStop.java | 18
SdkProject/app/src/main/res/layout/activity_main.xml | 16
SdkProject/library/libs/unity-classes.jar | 0
SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java | 98 ++++
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestManifestPermissions.java | 17
SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java | 35 +
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java | 61 ++
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java | 18
SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java | 23 +
/dev/null | 19
SdkProject/library/src/test/java/com/secondworld/sdk/ExampleUnitTest.java | 2
SdkProject/library/src/main/java/com/secondworld/sdk/AsyncTaskOperator.java | 24 +
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStart.java | 18
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyAsset.java | 19
SdkProject/library/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java | 2
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestPermission.java | 18
SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyOneAsset.java | 21
SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java | 108 ++++
SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java | 157 +++++++
SdkProject/channel/test/java/com/secondworld/sdk/MyApplication.java | 4
SdkProject/library/src/main/java/com/secondworld/sdk/command/ICommand.java | 14
42 files changed, 1,244 insertions(+), 55 deletions(-)
diff --git a/SdkProject/app/build.gradle b/SdkProject/app/build.gradle
index 8a32f5c..5f72e7b 100644
--- a/SdkProject/app/build.gradle
+++ b/SdkProject/app/build.gradle
@@ -7,7 +7,7 @@
buildToolsVersion "30.0.2"
defaultConfig {
- applicationId "com.secondworld.sdk"
+ applicationId "com.secondworld.demo"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
@@ -32,7 +32,7 @@
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.3'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation project(path: ':library')
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
diff --git a/SdkProject/app/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java b/SdkProject/app/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
similarity index 94%
rename from SdkProject/app/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java
rename to SdkProject/app/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
index f293dd9..3e0893f 100644
--- a/SdkProject/app/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java
+++ b/SdkProject/app/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk;
+package com.secondworld.sdk;
import android.content.Context;
diff --git a/SdkProject/app/src/main/AndroidManifest.xml b/SdkProject/app/src/main/AndroidManifest.xml
index d4fa29f..0946b58 100644
--- a/SdkProject/app/src/main/AndroidManifest.xml
+++ b/SdkProject/app/src/main/AndroidManifest.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.secondworld.universalsdk">
+ package="com.secondworld.demo">
+
+ <uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
@@ -8,15 +10,14 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
- android:name=".BaseApplication"
android:theme="@style/Theme.SdkProject">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
-
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+
</application>
</manifest>
\ No newline at end of file
diff --git a/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java b/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
new file mode 100644
index 0000000..4f235b1
--- /dev/null
+++ b/SdkProject/app/src/main/java/com/secondworld/demo/MainActivity.java
@@ -0,0 +1,35 @@
+package com.secondworld.demo;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.secondworld.sdk.UnityMsgHandler;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.UUID;
+
+public class MainActivity extends Activity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ findViewById(R.id.btnInit).setOnClickListener((v ->
+ {
+ JSONObject json = new JSONObject();
+ try {
+ json.put("code", CodeU2A.CopyContent);
+ json.put("content", "杩欐槸澶嶅埗鍐呭鍝︼細" + UUID.randomUUID().toString());
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ UnityMsgHandler.onUnityMessage(json.toString());
+ }));
+
+ }
+
+}
\ No newline at end of file
diff --git a/SdkProject/app/src/main/java/com/secondworld/universalsdk/MainActivity.java b/SdkProject/app/src/main/java/com/secondworld/universalsdk/MainActivity.java
deleted file mode 100644
index 80cbb87..0000000
--- a/SdkProject/app/src/main/java/com/secondworld/universalsdk/MainActivity.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.secondworld.universalsdk;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-import android.os.Bundle;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- JSONObject json = new JSONObject();
- try {
- json.put("code", 9);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- H2EngineSDK.HandleUnityMessage(json.toString());
- }
-}
\ No newline at end of file
diff --git a/SdkProject/app/src/main/res/layout/activity_main.xml b/SdkProject/app/src/main/res/layout/activity_main.xml
index 0b15a20..4c76793 100644
--- a/SdkProject/app/src/main/res/layout/activity_main.xml
+++ b/SdkProject/app/src/main/res/layout/activity_main.xml
@@ -1,9 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".MainActivity">
+ android:gravity="center">
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+ <Button
+ android:id="@+id/btnInit"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:text="init"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/editTextNumber" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/SdkProject/app/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java b/SdkProject/app/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
similarity index 90%
rename from SdkProject/app/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java
rename to SdkProject/app/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
index 604ec98..8f67092 100644
--- a/SdkProject/app/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java
+++ b/SdkProject/app/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk;
+package com.secondworld.sdk;
import org.junit.Test;
diff --git a/SdkProject/channel/test/java/com/secondworld/sdk/MyApplication.java b/SdkProject/channel/test/java/com/secondworld/sdk/MyApplication.java
new file mode 100644
index 0000000..2fcc132
--- /dev/null
+++ b/SdkProject/channel/test/java/com/secondworld/sdk/MyApplication.java
@@ -0,0 +1,4 @@
+package com.secondworld.sdk;
+
+public class MyApplication extends GameApp {
+}
diff --git a/SdkProject/channel/test/java/com/secondworld/universalsdk/MyApplication.java b/SdkProject/channel/test/java/com/secondworld/universalsdk/MyApplication.java
deleted file mode 100644
index 0821d14..0000000
--- a/SdkProject/channel/test/java/com/secondworld/universalsdk/MyApplication.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.secondworld.universalsdk;
-
-public class MyApplication extends BaseApplication {
-}
diff --git a/SdkProject/library/build.gradle b/SdkProject/library/build.gradle
index 3c23e87..3d152fe 100644
--- a/SdkProject/library/build.gradle
+++ b/SdkProject/library/build.gradle
@@ -112,32 +112,51 @@
}
}
-//鎷疯礉娓呭崟鏂囦欢浣滀负unity鐩存帴浣跨敤
+//鎷疯礉娓呭崟鏂囦欢
+task copyDebugManifest(type: Copy) {
+ from zipTree("build/outputs/aar/library-debug-${CHANNEL_NAME}.aar")
+ include "AndroidManifest.xml"
+ into "${outPutPath}\\${CHANNEL_NAME}\\debug"
+}
+
task copyManifest(type: Copy) {
- dependsOn 'assembleRelease'
+ dependsOn 'copyDebugManifest'
from zipTree("build/outputs/aar/library-release-${CHANNEL_NAME}.aar")
include "AndroidManifest.xml"
- into "${outPutPath}\\${CHANNEL_NAME}\\"
+ into "${outPutPath}\\${CHANNEL_NAME}\\release"
+}
+
+task copyDebugSdk(type: Copy) {
+ from "build/outputs/aar/"
+ include "library-debug-${CHANNEL_NAME}.aar"
+ into "${outPutPath}\\${CHANNEL_NAME}\\debug\\libs\\"
}
//鎵ц鎵撳寘浠诲姟浠ュ強鎷疯礉鍒板閮�
task assembleAndCopySdk(type: Copy) {
- dependsOn copyManifest
+ delete "${outPutPath}\\${CHANNEL_NAME}"
+
+ dependsOn 'assembleMerger'
+// dependsOn copyManifest
+ dependsOn copyDebugSdk
+
from "build/outputs/aar/"
include "library-release-${CHANNEL_NAME}.aar"
- into "${outPutPath}\\${CHANNEL_NAME}\\libs\\"
+ into "${outPutPath}\\${CHANNEL_NAME}\\release\\libs\\"
}
dependencies {
- implementation 'androidx.appcompat:appcompat:1.2.0'
- implementation 'com.google.android.material:material:1.2.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.3'
- implementation 'androidx.navigation:navigation-fragment:2.3.1'
- implementation 'androidx.navigation:navigation-ui:2.3.1'
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+ implementation 'androidx.appcompat:appcompat:1.2.0'
+ implementation 'com.google.android.material:material:1.2.1'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ implementation 'androidx.navigation:navigation-fragment:2.3.1'
+ implementation 'androidx.navigation:navigation-ui:2.3.1'
implementation 'com.github.pqpo:Log4a:1.4.2@aar'
- implementation files('libs/unity-classes.jar')
+
+ implementation fileTree(dir: 'libs', include: ['*.jar'], exclude: ['unity-classes.jar'])
+ compileOnly files('libs/unity-classes.jar')
}
\ No newline at end of file
diff --git a/SdkProject/library/libs/unity-classes.jar b/SdkProject/library/libs/unity-classes.jar
index 3c32bf7..502ff04 100644
--- a/SdkProject/library/libs/unity-classes.jar
+++ b/SdkProject/library/libs/unity-classes.jar
Binary files differ
diff --git a/SdkProject/library/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java b/SdkProject/library/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
similarity index 94%
rename from SdkProject/library/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java
rename to SdkProject/library/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
index 3f00010..16fb2ad 100644
--- a/SdkProject/library/src/androidTest/java/com/secondworld/universalsdk/ExampleInstrumentedTest.java
+++ b/SdkProject/library/src/androidTest/java/com/secondworld/sdk/ExampleInstrumentedTest.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk;
+package com.secondworld.sdk;
import android.content.Context;
diff --git a/SdkProject/library/src/main/AndroidManifest.xml b/SdkProject/library/src/main/AndroidManifest.xml
index d5df5a9..857b950 100644
--- a/SdkProject/library/src/main/AndroidManifest.xml
+++ b/SdkProject/library/src/main/AndroidManifest.xml
@@ -1,7 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.secondworld.universalsdk">
+ package="com.secondworld.sdk">
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+
+ <application
+ android:name="com.secondworld.sdk.GameApp"
+ android:allowBackup="true"
+ android:supportsRtl="true">
+
+ <activity android:name="com.secondworld.sdk.GameActivity"/>
+
+ </application>
</manifest>
\ No newline at end of file
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/AsyncTaskOperator.java b/SdkProject/library/src/main/java/com/secondworld/sdk/AsyncTaskOperator.java
new file mode 100644
index 0000000..115b8cd
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/AsyncTaskOperator.java
@@ -0,0 +1,24 @@
+package com.secondworld.sdk;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+//鑰楁椂浠诲姟鎿嶄綔
+public class AsyncTaskOperator {
+
+ public static AsyncTaskOperator I = new AsyncTaskOperator();
+
+ private ExecutorService cachedThreadPool;
+
+ private ExecutorService getCachedThreadPool() {
+ if (cachedThreadPool == null) {
+ cachedThreadPool = Executors.newCachedThreadPool();
+ }
+ return cachedThreadPool;
+ }
+
+ public void run(Runnable runnable) {
+ getCachedThreadPool().execute(runnable);
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
new file mode 100644
index 0000000..669f692
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameActivity.java
@@ -0,0 +1,26 @@
+package com.secondworld.sdk;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.FrameLayout;
+
+public class GameActivity extends UnityPlayerActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+// setContentView(R.layout.activity_main);
+ checkPermission();
+// addUnityView();
+ }
+
+ private void checkPermission() {
+ }
+
+ protected void addUnityView() {
+ FrameLayout _frameLayout = findViewById(R.id.unity_view);
+ View unityView = mUnityPlayer.getView();
+ _frameLayout.addView(unityView);
+ }
+
+}
\ No newline at end of file
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java b/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java
new file mode 100644
index 0000000..c48b662
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/GameApp.java
@@ -0,0 +1,54 @@
+package com.secondworld.sdk;
+
+import android.app.AlarmManager;
+import android.app.Application;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Handler;
+
+import com.secondworld.sdk.utils.LogUtil;
+import com.unity3d.player.UnityPlayer;
+
+public class GameApp extends Application {
+
+ public static GameApp I;
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ I = this;
+ InitSdk();
+ }
+
+ public void InitSdk() {
+ LogUtil.Init(this);
+ UnityMsgHandler.initCommandMap();
+ }
+
+ public static void AppExit() {
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
+ }
+ }, 1000);
+ if (UnityPlayer.currentActivity != null)
+ UnityPlayer.currentActivity.finish();
+ }
+
+ public static void RestartApp() {
+ new Handler().postDelayed(() -> {
+ String _pn = I.getPackageName();
+ PackageManager packageManager = I.getPackageManager();
+ Intent intent = packageManager.getLaunchIntentForPackage(_pn);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ I.startActivity(intent);
+ android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
+ }, 1000);
+ if (UnityPlayer.currentActivity != null)
+ UnityPlayer.currentActivity.finish();
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
new file mode 100644
index 0000000..50c53db
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityMsgHandler.java
@@ -0,0 +1,98 @@
+package com.secondworld.sdk;
+
+import com.secondworld.sdk.command.CmdInit;
+import com.secondworld.sdk.command.ICommand;
+import com.secondworld.sdk.utils.LogUtil;
+import com.secondworld.sdk.utils.StaticDefine;
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import dalvik.system.DexFile;
+
+
+public class UnityMsgHandler {
+
+ private static final HashMap<Integer, ICommand> allCommand = new HashMap<>();
+
+ /**
+ * 鍒濆鍖栨墍鏈夊懡浠�
+ */
+ public static void initCommandMap() {
+ try {
+ allCommand.clear();
+ new CmdInit();
+ List<String> classesName = getClassName("com.secondworld.sdk.command");
+ for (String name : classesName) {
+ Class<?> aClass = Class.forName(name);
+ LogUtil.debug("initCommandMap", name);
+ if (!aClass.isInterface() && ICommand.class.isAssignableFrom(aClass))//姝ゅ蹇呴』鍒ゆ柇鏄惁涓篒Command瀛愮被锛屽洜涓哄尶鍚嶇被涔熶細鐢熸垚鑷虫鍖�
+ addCommand((ICommand) aClass.newInstance());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ LogUtil.e("initCommandMap", e);
+ }
+ }
+
+ public static void addCommand(ICommand command) {
+ allCommand.put(command.getCode(), command);
+ }
+
+ /**
+ * 澶勭悊unity 鍙戞潵鐨勬秷鎭�
+ *
+ * @param json
+ */
+ public static void onUnityMessage(String json) {
+ try {
+ LogUtil.debug("onUnityMessage", json);
+ JSONObject _json = new JSONObject(json);
+ int code = _json.getInt("code");
+ ICommand command = allCommand.get(code);
+ if (command == null)
+ LogUtil.w("onUnityMessage", "鏈煡鍛戒护" + code);
+ else
+ command.process(_json);
+ } catch (Exception e) {
+ LogUtil.e("onUnityMessage", e);
+ }
+ }
+
+ /**
+ * 閫氳繃鍙嶅皠璇诲彇鎸囧畾鍖呭悕涓嬬殑鎵�鏈夌被鍚�
+ *
+ * @param
+ * @return
+ */
+ public static List<String> getClassName(String packageName) throws IOException {
+ List<String> classNameList = new ArrayList<String>();
+ DexFile df = new DexFile(GameApp.I.getPackageCodePath());//閫氳繃DexFile鏌ユ壘褰撳墠鐨凙PK涓彲鎵ц鏂囦欢
+ Enumeration<String> enumeration = df.entries();//鑾峰彇df涓殑鍏冪礌 杩欓噷鍖呭惈浜嗘墍鏈夊彲鎵ц鐨勭被鍚� 璇ョ被鍚嶅寘鍚簡鍖呭悕+绫诲悕鐨勬柟寮�
+ while (enumeration.hasMoreElements()) {//閬嶅巻
+ String className = (String) enumeration.nextElement();
+ if (className.contains(packageName)) {//鍦ㄥ綋鍓嶆墍鏈夊彲鎵ц鐨勭被閲岄潰鏌ユ壘鍖呭惈鏈夎鍖呭悕鐨勬墍鏈夌被
+ classNameList.add(className);
+ }
+ }
+ return classNameList;
+ }
+
+ public static void sendMessageToUnity(Map<String, Object> jsonMap) {
+ if (jsonMap == null || jsonMap.isEmpty()) {
+ return;
+ }
+ JSONObject _jsonObject = new JSONObject(jsonMap);
+ UnityPlayer.UnitySendMessage(StaticDefine.UnityGameObjectName,
+ StaticDefine.UnityHandleFuncName,
+ _jsonObject.toString());
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/UnityPlayerActivity.java b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityPlayerActivity.java
new file mode 100644
index 0000000..e438f13
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/UnityPlayerActivity.java
@@ -0,0 +1,132 @@
+// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
+package com.secondworld.sdk;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.os.Process;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.Window;
+
+import com.unity3d.player.IUnityPlayerLifecycleEvents;
+import com.unity3d.player.UnityPlayer;
+
+public class UnityPlayerActivity extends Activity implements IUnityPlayerLifecycleEvents
+{
+ protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code
+
+ // Override this in your custom UnityPlayerActivity to tweak the command line arguments passed to the Unity Android Player
+ // The command line arguments are passed as a string, separated by spaces
+ // UnityPlayerActivity calls this from 'onCreate'
+ // Supported: -force-gles20, -force-gles30, -force-gles31, -force-gles31aep, -force-gles32, -force-gles, -force-vulkan
+ // See https://docs.unity3d.com/Manual/CommandLineArguments.html
+ // @param cmdLine the current command line arguments, may be null
+ // @return the modified command line string or null
+ protected String updateUnityCommandLineArguments(String cmdLine)
+ {
+ return cmdLine;
+ }
+
+ // Setup activity layout
+ @Override protected void onCreate(Bundle savedInstanceState)
+ {
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ super.onCreate(savedInstanceState);
+
+ String cmdLine = updateUnityCommandLineArguments(getIntent().getStringExtra("unity"));
+ getIntent().putExtra("unity", cmdLine);
+
+ mUnityPlayer = new UnityPlayer(this, this);
+ setContentView(mUnityPlayer);
+ mUnityPlayer.requestFocus();
+ }
+
+ // When Unity player unloaded move task to background
+ @Override public void onUnityPlayerUnloaded() {
+ moveTaskToBack(true);
+ }
+
+ // When Unity player quited kill process
+ @Override public void onUnityPlayerQuitted() {
+ Process.killProcess(Process.myPid());
+ }
+
+ @Override protected void onNewIntent(Intent intent)
+ {
+ // To support deep linking, we need to make sure that the client can get access to
+ // the last sent intent. The clients access this through a JNI api that allows them
+ // to get the intent set on launch. To update that after launch we have to manually
+ // replace the intent with the one caught here.
+ setIntent(intent);
+ mUnityPlayer.newIntent(intent);
+ }
+
+ // Quit Unity
+ @Override protected void onDestroy ()
+ {
+ mUnityPlayer.destroy();
+ super.onDestroy();
+ }
+
+ // Pause Unity
+ @Override protected void onPause()
+ {
+ super.onPause();
+ mUnityPlayer.pause();
+ }
+
+ // Resume Unity
+ @Override protected void onResume()
+ {
+ super.onResume();
+ mUnityPlayer.resume();
+ }
+
+ // Low Memory Unity
+ @Override public void onLowMemory()
+ {
+ super.onLowMemory();
+ mUnityPlayer.lowMemory();
+ }
+
+ // Trim Memory Unity
+ @Override public void onTrimMemory(int level)
+ {
+ super.onTrimMemory(level);
+ if (level == TRIM_MEMORY_RUNNING_CRITICAL)
+ {
+ mUnityPlayer.lowMemory();
+ }
+ }
+
+ // This ensures the layout will be correct.
+ @Override public void onConfigurationChanged(Configuration newConfig)
+ {
+ super.onConfigurationChanged(newConfig);
+ mUnityPlayer.configurationChanged(newConfig);
+ }
+
+ // Notify Unity of the focus change.
+ @Override public void onWindowFocusChanged(boolean hasFocus)
+ {
+ super.onWindowFocusChanged(hasFocus);
+ mUnityPlayer.windowFocusChanged(hasFocus);
+ }
+
+ // For some reason the multiple keyevent type is not supported by the ndk.
+ // Force event injection by overriding dispatchKeyEvent().
+ @Override public boolean dispatchKeyEvent(KeyEvent event)
+ {
+ if (event.getAction() == KeyEvent.ACTION_MULTIPLE)
+ return mUnityPlayer.injectEvent(event);
+ return super.dispatchKeyEvent(event);
+ }
+
+ // Pass any events not handled by (unfocused) views straight to UnityPlayer
+ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); }
+ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mUnityPlayer.injectEvent(event); }
+ @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }
+ /*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStart.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStart.java
new file mode 100644
index 0000000..203f865
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStart.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.BatteryUtil;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdBatteryListenStart implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.BatteryListenStart;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ BatteryUtil.getInstance().start();
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStop.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStop.java
new file mode 100644
index 0000000..38c88b9
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdBatteryListenStop.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.BatteryUtil;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdBatteryListenStop implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.BatteryListenStop;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ BatteryUtil.getInstance().stop();
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyAsset.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyAsset.java
new file mode 100644
index 0000000..cb065ee
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyAsset.java
@@ -0,0 +1,19 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.AsyncTaskOperator;
+import com.secondworld.sdk.utils.CodeU2A;
+import com.secondworld.sdk.utils.FileUtil;
+
+import org.json.JSONObject;
+
+public class CmdCopyAsset implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.CopyAsset;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ AsyncTaskOperator.I.run(FileUtil::copyAssets);
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java
new file mode 100644
index 0000000..9e34fdd
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyContent.java
@@ -0,0 +1,35 @@
+package com.secondworld.sdk.command;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+
+import com.secondworld.sdk.AsyncTaskOperator;
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.utils.CodeU2A;
+import com.secondworld.sdk.utils.LogUtil;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class CmdCopyContent implements ICommand {
+
+ @Override
+ public int getCode() {
+ return CodeU2A.CopyContent;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ try {
+ String content = json.getString("content");
+ ClipboardManager mgr = (ClipboardManager) GameApp.I.getSystemService(
+ Context.CLIPBOARD_SERVICE);
+ ClipData data = ClipData.newPlainText("playerId", content);
+ mgr.setPrimaryClip(data);
+ } catch (Exception e) {
+ LogUtil.e("CmdCopyContent", e);
+ }
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyOneAsset.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyOneAsset.java
new file mode 100644
index 0000000..38262c5
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdCopyOneAsset.java
@@ -0,0 +1,21 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.AsyncTaskOperator;
+import com.secondworld.sdk.utils.CodeU2A;
+import com.secondworld.sdk.utils.FileUtil;
+
+import org.json.JSONObject;
+
+public class CmdCopyOneAsset implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.CopyOneAsset;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ AsyncTaskOperator.I.run(() -> {
+ FileUtil.copyOneAsset(json.toString());
+ });
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
new file mode 100644
index 0000000..611d047
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInit.java
@@ -0,0 +1,61 @@
+package com.secondworld.sdk.command;
+
+import android.app.AlertDialog;
+
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.UnityMsgHandler;
+import com.secondworld.sdk.utils.CodeA2U;
+import com.secondworld.sdk.utils.CodeU2A;
+import com.secondworld.sdk.utils.DeviceUtil;
+import com.secondworld.sdk.utils.LogUtil;
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+/**
+ * 娓告垙鍒濆鍖�
+ */
+public class CmdInit implements ICommand {
+
+ @Override
+ public int getCode() {
+ return CodeU2A.Init;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ long size = DeviceUtil.getTotalRAMSize() / 1024 / 1024;
+ LogUtil.debug("CmdInit", "鍐呭瓨锛�" + size + " mb");
+ if (size < 1024) {
+ LogUtil.w("CmdInit", "妫�娴嬭澶囧唴瀛樹笉婊¤冻杩愯绋嬪簭鏍囧噯锛屽唴瀛橈細" + size + " mb");
+ AlertDialog.Builder _builder = new AlertDialog.Builder(UnityPlayer.currentActivity);
+ _builder.setTitle("璀﹀憡");
+ _builder.setCancelable(false);
+ _builder.setMessage("鎮ㄧ殑璁惧杩愯鍐呭瓨涓嶆弧瓒宠姹�,鏃犳硶姝e父杩愯娓告垙");
+ _builder.setPositiveButton("纭畾", (dialogInterface, i) -> {
+ GameApp.AppExit();
+ });
+ _builder.show();
+ return;
+ }
+ //鍙戦�佽澶囦俊鎭�
+ 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);
+ //閫氱煡sdk鍒濆鍖栧畬鎴�
+ _msgStruct.clear();
+ _msgStruct.put("code", CodeA2U.SdkInitComplete);
+ UnityMsgHandler.sendMessageToUnity(_msgStruct);
+ LogUtil.debug("CmdInit", "Sdk鍒濆鍖栧畬鎴�");
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java
new file mode 100644
index 0000000..05cf764
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdInstallAPK.java
@@ -0,0 +1,40 @@
+package com.secondworld.sdk.command;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.widget.Toast;
+
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.utils.CodeU2A;
+import com.secondworld.sdk.utils.LogUtil;
+
+import org.json.JSONObject;
+
+import java.io.File;
+
+public class CmdInstallAPK implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.InstallAPK;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ try {
+ String path = json.getString("path");
+ File file = new File(path);
+ if (!file.exists()) {
+ LogUtil.w("InstallApp", "鏂囦欢涓嶅瓨鍦�");
+ Toast.makeText(GameApp.I, "鎵句笉瀹夎鏂囦欢", Toast.LENGTH_SHORT).show();
+ return;
+ }
+ Intent _intent = new Intent(Intent.ACTION_VIEW);
+ _intent.setDataAndType(Uri.fromFile(file),
+ "application/vnd.android.package-archive");
+ _intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ GameApp.I.startActivity(_intent);
+ } catch (Exception e) {
+ LogUtil.e("CmdInstallAPK", e);
+ }
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdOpenWebView.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdOpenWebView.java
new file mode 100644
index 0000000..78ca40d
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdOpenWebView.java
@@ -0,0 +1,17 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdOpenWebView implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.OpenWebView;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestManifestPermissions.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestManifestPermissions.java
new file mode 100644
index 0000000..df9171f
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestManifestPermissions.java
@@ -0,0 +1,17 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdRequestManifestPermissions implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.RequestManifestPermissions;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestPermission.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestPermission.java
new file mode 100644
index 0000000..97cc5a8
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRequestPermission.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdRequestPermission implements ICommand {
+
+ @Override
+ public int getCode() {
+ return CodeU2A.RequestPermission;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java
new file mode 100644
index 0000000..56001ee
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdRestartApp.java
@@ -0,0 +1,18 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdRestartApp implements ICommand {
+ @Override
+ public int getCode() {
+ return CodeU2A.RestartApp;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+ GameApp.RestartApp();
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdUniqueID.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdUniqueID.java
new file mode 100644
index 0000000..07fb7de
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/CmdUniqueID.java
@@ -0,0 +1,17 @@
+package com.secondworld.sdk.command;
+
+import com.secondworld.sdk.utils.CodeU2A;
+
+import org.json.JSONObject;
+
+public class CmdUniqueID implements ICommand{
+ @Override
+ public int getCode() {
+ return CodeU2A.UniqueID;
+ }
+
+ @Override
+ public void process(JSONObject json) {
+
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/command/ICommand.java b/SdkProject/library/src/main/java/com/secondworld/sdk/command/ICommand.java
new file mode 100644
index 0000000..b8cdacb
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/command/ICommand.java
@@ -0,0 +1,14 @@
+package com.secondworld.sdk.command;
+
+import org.json.JSONObject;
+
+/**
+ * unity 浼犻�掕繃鏉ョ殑鍛戒护
+ */
+public interface ICommand {
+
+ int getCode();
+
+ void process(JSONObject json) throws Exception;
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
new file mode 100644
index 0000000..fb23cc1
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/BatteryUtil.java
@@ -0,0 +1,108 @@
+package com.secondworld.sdk.utils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.BatteryManager;
+
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.UnityMsgHandler;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Created by Administrator on 2018/7/15 0015.
+ */
+
+public class BatteryUtil {
+ private static BatteryUtil s_Instance = null;
+
+ public static BatteryUtil getInstance() {
+ if (s_Instance == null) {
+ s_Instance = new BatteryUtil();
+ }
+ return s_Instance;
+ }
+
+ private BatteryBroadCastReceiver m_BatteryBroadCastReceiver;
+
+ private BatteryUtil() {
+ }
+
+ public void start() {
+ m_BatteryBroadCastReceiver = new BatteryBroadCastReceiver();
+ IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+ GameApp.I.registerReceiver(m_BatteryBroadCastReceiver, filter);
+ }
+
+ public void stop() {
+ if (m_BatteryBroadCastReceiver != null) {
+ try {
+ GameApp.I.unregisterReceiver(m_BatteryBroadCastReceiver);
+ m_BatteryBroadCastReceiver = null;
+ } catch (IllegalArgumentException e) {
+ if (!Objects.requireNonNull(e.getMessage()).contains("Receiver not registered")) {
+ throw e;
+ }
+ }
+ }
+ }
+
+ private static class BatteryBroadCastReceiver extends BroadcastReceiver {
+ private int m_BatteryLevel;
+ private int m_Status;
+
+ public BatteryBroadCastReceiver() {
+ m_BatteryLevel = 0;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
+ int _batteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
+
+ Map<String, Object> _msg = new HashMap<>();
+
+ if (_batteryLevel != m_BatteryLevel) {
+ try {
+ _msg.put("code", CodeA2U.BatteryLevel);
+ _msg.put("level", _batteryLevel);
+
+ UnityMsgHandler.sendMessageToUnity(_msg);
+
+ m_BatteryLevel = _batteryLevel;
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ int _status = intent.getIntExtra("status", 0);
+
+ if (_status != m_Status) {
+ _msg.clear();
+
+ int _transCode = 0;
+ if (_status == BatteryManager.BATTERY_STATUS_CHARGING) {
+ _transCode = 2;
+ } else if (_status == BatteryManager.BATTERY_STATUS_NOT_CHARGING ||
+ _status == BatteryManager.BATTERY_STATUS_DISCHARGING) {
+ _transCode = 1;
+ } else if (_status == BatteryManager.BATTERY_STATUS_FULL) {
+ _transCode = 3;
+ }
+
+ _msg.put("code", CodeA2U.BatteryCharging);
+ _msg.put("status", _transCode);
+
+ UnityMsgHandler.sendMessageToUnity(_msg);
+
+ m_Status = _status;
+ }
+ }
+ }
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeA2U.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeA2U.java
similarity index 93%
rename from SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeA2U.java
rename to SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeA2U.java
index 1cb0dc7..d7ca893 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeA2U.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeA2U.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk.utils;
+package com.secondworld.sdk.utils;
/**
* Created by Administrator on 2018/7/18 0018.
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeU2A.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeU2A.java
similarity index 82%
rename from SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeU2A.java
rename to SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeU2A.java
index b71e561..fccab9b 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/CodeU2A.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/CodeU2A.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk.utils;
+package com.secondworld.sdk.utils;
/**
* Created by Administrator on 2018/7/18 0018.
@@ -8,7 +8,7 @@
/**
* 鎵ц璧勬簮鎷疯礉
*/
- int AssetCopy = 0;
+ int CopyAsset = 0;
/**
* 鎵ц寮�濮嬬數閲忔敼鍙�,鍏呯數鐘舵�佹敼鍙樼洃鍚�
*/
@@ -60,13 +60,13 @@
/**
- * 姣忎釜娓犻亾鍚勮嚜鐨勫鐞�
+ * 姣忎釜娓犻亾鑷繁鐨勫鐞�
*/
- int FreePlatformInit = 100;
- int FreePlatformLogin = 101;
- int FreePlatformLogout = 102;
- int FreePlatformSwitchAccount = 103;
- int FreePlatformPay = 104;
+ int PlatformInit = 100;
+ int PlatformLogin = 101;
+ int PlatformLogout = 102;
+ int PlatformSwitchAccount = 103;
+ int PlatformPay = 104;
int PayFinished = 105;
int CreateRole = 106;
int RoleLogin = 107;
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java
new file mode 100644
index 0000000..b7263f5
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/DeviceUtil.java
@@ -0,0 +1,157 @@
+package com.secondworld.sdk.utils;
+
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
+import android.os.Build;
+import android.provider.Settings;
+
+import com.secondworld.sdk.GameApp;
+
+import java.net.NetworkInterface;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.UUID;
+
+public class DeviceUtil {
+
+ public static final String FAKE_MAC = "02:00:00:00:00:00";
+
+
+ public static long getVersionCode() {
+ long appVersionCode = 0;
+ try {
+ PackageInfo packageInfo = GameApp.I.getApplicationContext()
+ .getPackageManager()
+ .getPackageInfo(GameApp.I.getPackageName(), 0);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ appVersionCode = packageInfo.getLongVersionCode();
+ } else {
+ appVersionCode = packageInfo.versionCode;
+ }
+ } catch (PackageManager.NameNotFoundException e) {
+ LogUtil.e("getAppVersionCode", e);
+ }
+ return appVersionCode;
+ }
+
+
+ public static String getVersionName() {
+ String appVersionName = "";
+ try {
+ PackageInfo packageInfo = GameApp.I.getApplicationContext()
+ .getPackageManager()
+ .getPackageInfo(GameApp.I.getPackageName(), 0);
+ appVersionName = packageInfo.versionName;
+ } catch (PackageManager.NameNotFoundException e) {
+ LogUtil.e("getAppVersionName", e);
+ }
+ return appVersionName;
+ }
+
+ /**
+ * 鑾峰彇褰撳墠璁惧鎬昏繍琛屽唴瀛�
+ * 鍗曚綅涓� byte
+ *
+ * @return
+ */
+ public static long getTotalRAMSize() {
+ ActivityManager manager = (ActivityManager) GameApp.I.getSystemService(Context.ACTIVITY_SERVICE);
+ ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();
+ manager.getMemoryInfo(info);
+ return info.totalMem;
+ }
+
+ public static String getAndroidId() {
+ String ANDROID_ID = Settings.System.getString(GameApp.I.getContentResolver(), Settings.System.ANDROID_ID);
+ if (ANDROID_ID == null || ANDROID_ID.equals("9774d56d682e549c"))
+ return "";
+ return ANDROID_ID;
+ }
+
+ /**
+ * 鍞竴鏍囪瘑
+ *
+ * @return
+ */
+ public static String getUniqueID() {
+ String uniqueID = SPUtils.get().getString(SPUtils.UNIQUE_ID, "");
+ if (!uniqueID.trim().isEmpty())
+ return uniqueID;
+ uniqueID = getAndroidId() + getLocalMac();
+ //鑷繁鐢熸垚鐨剈id
+ if (uniqueID.trim().isEmpty())
+ uniqueID = UUID.randomUUID().toString();
+
+ uniqueID = Util.md5(uniqueID).toUpperCase();
+
+ SPUtils.get()
+ .edit()
+ .putString(SPUtils.UNIQUE_ID, uniqueID.trim())
+ .apply();
+
+ return uniqueID;
+ }
+
+ /**
+ * mac 鍦板潃
+ *
+ * @return
+ */
+ public static String getLocalMac() {
+ String mac = SPUtils.get().getString(SPUtils.MAC, "");
+ if (!mac.trim().isEmpty())
+ return mac;
+ try {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ String interfaceName = "wlan0";
+ Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
+ NetworkInterface intf = null;
+ while (interfaces.hasMoreElements()) {
+ intf = interfaces.nextElement();
+ if (!intf.getName().equalsIgnoreCase(interfaceName))
+ continue;
+ byte[] addresses = intf.getHardwareAddress();
+ if (mac != null) {
+ StringBuilder buf = new StringBuilder();
+ for (byte aMac : addresses) {
+ buf.append(String.format("%02X:", aMac));
+ }
+ if (buf.length() > 0) {
+ buf.deleteCharAt(buf.length() - 1);
+ }
+ mac = buf.toString();
+ }
+ break;
+ }
+ } else {
+ WifiManager wifi = (WifiManager) GameApp.I.getSystemService(Context.WIFI_SERVICE);
+ if (wifi != null) {
+ WifiInfo wifiInfo = wifi.getConnectionInfo();
+ if (wifiInfo != null) {
+ mac = wifiInfo.getMacAddress();
+ }
+ }
+ }
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+
+ mac = mac.toUpperCase(Locale.ENGLISH);
+
+ if (mac.equals(FAKE_MAC))
+ mac = "";
+
+ SPUtils.get()
+ .edit()
+ .putString(SPUtils.MAC, mac.trim())
+ .apply();
+
+ return mac;
+ }
+
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
new file mode 100644
index 0000000..173dbf4
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/FileUtil.java
@@ -0,0 +1,136 @@
+package com.secondworld.sdk.utils;
+
+import android.content.res.AssetManager;
+
+import com.secondworld.sdk.GameApp;
+import com.secondworld.sdk.UnityMsgHandler;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/6/14 0014.
+ */
+
+public class FileUtil {
+
+ /**
+ * Unity闅忓寘璧勬簮鎵归噺鎷疯礉
+ */
+ public static void copyAssets() {
+
+ // 鑾峰彇褰撳墠鍖呯殑鐗堟湰鍙�
+ final long currentVer = DeviceUtil.getVersionCode();
+
+ // 宸茬粡鎷疯礉杩�, 鍒欏啀娆″垽鏂竴娆$増鏈彿
+ // 濡傛灉鐗堟湰鍙蜂笉鐩稿悓, 鍒欓噸鏂拌繘琛屾嫹璐�
+
+ // 鑾峰彇鏈湴瀛樺偍鐨勭増鏈彿
+ long installVer = SPUtils.get().getLong(SPUtils.LAST_COPY_VERSION, 0);
+
+ if (installVer == currentVer) {
+ LogUtil.i("copyAssets", "宸叉嫹璐濊繃锛宨nstallVer:" + installVer + "锛�" + "currentVer:" + currentVer);
+ Map<String, Object> _msg = new HashMap<>();
+ _msg.put("code", CodeA2U.AssetCopyFinished);
+ UnityMsgHandler.sendMessageToUnity(_msg);
+ return;
+ }
+
+ String _dest = GameApp.I.getExternalFilesDir("").getAbsolutePath();
+ AssetManager _assetMgr = GameApp.I.getAssets();
+ try {
+ String[] _fileNames = _assetMgr.list("android");
+ if (_fileNames != null) {
+ for (String _fileName : _fileNames) {
+ copy("android" + File.separator + _fileName,
+ _dest + File.separator + _fileName);
+ }
+ }
+ LogUtil.i("copyAssets", "鍏ㄩ儴鎷疯礉瀹屾垚," + "currentVer:" + currentVer);
+ // 瀛樺偍姝ゆ鐨勬嫹璐濈増鏈�
+ SPUtils.get().edit().putLong(SPUtils.LAST_COPY_VERSION, currentVer).apply();
+ Map<String, Object> _msg = new HashMap<>();
+ _msg.put("code", CodeA2U.AssetCopyFinished);
+ UnityMsgHandler.sendMessageToUnity(_msg);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * unity鍗曚釜璧勬簮鎷疯礉
+ *
+ * @param fileName
+ */
+ public static void copyOneAsset(String fileName) {
+ String originalPath = "android" + File.separator + fileName;
+ String destPath = GameApp.I.getExternalFilesDir(
+ "").getAbsolutePath() + File.separator + fileName;
+ String _destDir = destPath.substring(0, destPath.lastIndexOf('/') + 1);
+ File _file = new File(_destDir);
+ if (!_file.exists()) {
+ boolean mkdir = _file.mkdir();
+ }
+ try {
+ InputStream _is = GameApp.I.getAssets().open(originalPath);
+ FileOutputStream _fos = new FileOutputStream(new File(destPath));
+ byte[] _buffer = new byte[1024];
+ int _byteCount;
+ while ((_byteCount = _is.read(_buffer)) != -1) {
+ _fos.write(_buffer, 0, _byteCount);
+ }
+ _fos.flush();
+ _is.close();
+ _fos.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void copy(String original, String dest) {
+ try {
+ String[] fileNames = GameApp.I.getAssets().list(original);
+ if (fileNames.length > 0) {
+ File dir = new File(dest);
+ String mkdir = dir.mkdir() ? "鎴愬姛" : "澶辫触";
+ LogUtil.i("copyAssets", "[" + original + "] 鏄竴涓枃浠跺す, 鍒涘缓鏂囦欢澶�: [" + dest + "] " + mkdir);
+ for (String _fileName : fileNames) {
+ copy(original + File.separator + _fileName,
+ dest + File.separator + _fileName);
+ }
+ } else {
+ InputStream _is = GameApp.I.getAssets().open(original);
+ FileOutputStream _fos = new FileOutputStream(new File(dest));
+ byte[] _buffer = new byte[1024];
+ int _byteCount;
+ while ((_byteCount = _is.read(_buffer)) != -1) {
+ _fos.write(_buffer, 0, _byteCount);
+ }
+ _fos.flush();
+ _is.close();
+ _fos.close();
+ LogUtil.i("copyAssets", "鏂囦欢: " + original + " 宸叉嫹璐濊嚦: " + dest);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getFileNameWithoutExtension(String fileName) {
+ return fileName.substring(0, fileName.lastIndexOf("."));
+ }
+
+ /**
+ * 鑾峰彇鏂囦欢鍚庣紑鍚�
+ */
+ public static String getSuffixName(File file) {
+ String fileName = file.getName();
+ int index = fileName.lastIndexOf(".");
+ if (index == -1)
+ return "";
+ return fileName.substring(index + 1);
+ }
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/LogUtil.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/LogUtil.java
similarity index 96%
rename from SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/LogUtil.java
rename to SdkProject/library/src/main/java/com/secondworld/sdk/utils/LogUtil.java
index c184a80..295b61d 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/LogUtil.java
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/LogUtil.java
@@ -1,9 +1,9 @@
-package com.secondworld.universalsdk.utils;
+package com.secondworld.sdk.utils;
import android.content.Context;
import android.util.Log;
-import com.secondworld.universalsdk.BuildConfig;
+import com.secondworld.sdk.BuildConfig;
import java.io.File;
import java.text.SimpleDateFormat;
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java
new file mode 100644
index 0000000..d0b02a6
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/SPUtils.java
@@ -0,0 +1,23 @@
+package com.secondworld.sdk.utils;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import com.secondworld.sdk.GameApp;
+
+public class SPUtils {
+
+ private static SharedPreferences data;
+
+ public static SharedPreferences get() {
+ if (data == null)
+ data = GameApp.I.getSharedPreferences("data", Context.MODE_PRIVATE);
+ return data;
+ }
+
+ public static final String UNIQUE_ID = "uniqueID";
+ public static final String MAC = "mac";
+ public static final String LAST_COPY_VERSION = "last_copy_version";
+ public static final String ASSET_IS_COPIED = "asset_is_copied";
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/StaticDefine.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/StaticDefine.java
new file mode 100644
index 0000000..e8ff3c0
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/StaticDefine.java
@@ -0,0 +1,12 @@
+package com.secondworld.sdk.utils;
+
+/**
+ * Created by Administrator on 2018/6/14 0014.
+ */
+
+public interface StaticDefine {
+
+ String UnityGameObjectName = "SDKUtility";
+ String UnityHandleFuncName = "HandleSdkMessage";
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/sdk/utils/Util.java b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/Util.java
new file mode 100644
index 0000000..55f2a07
--- /dev/null
+++ b/SdkProject/library/src/main/java/com/secondworld/sdk/utils/Util.java
@@ -0,0 +1,33 @@
+package com.secondworld.sdk.utils;
+
+import android.text.TextUtils;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+public class Util {
+
+ public static String md5(String string) {
+ if (TextUtils.isEmpty(string)) {
+ return "";
+ }
+ MessageDigest md5 = null;
+ try {
+ md5 = MessageDigest.getInstance("MD5");
+ byte[] bytes = md5.digest(string.getBytes());
+ StringBuilder result = new StringBuilder();
+ for (byte b : bytes) {
+ String temp = Integer.toHexString(b & 0xff);
+ if (temp.length() == 1) {
+ temp = "0" + temp;
+ }
+ result.append(temp);
+ }
+ return result.toString();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameActivity.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameActivity.java
deleted file mode 100644
index 7ef33ff..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameActivity.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.secondworld.universalsdk;
-
-import com.unity3d.player.UnityPlayerActivity;
-
-public class GameActivity extends UnityPlayerActivity {
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameApp.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameApp.java
deleted file mode 100644
index c7085a9..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/GameApp.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.secondworld.universalsdk;
-
-import android.app.Application;
-import android.os.Handler;
-
-import com.secondworld.universalsdk.utils.DeviceUtil;
-import com.secondworld.universalsdk.utils.LogUtil;
-import com.unity3d.player.UnityPlayer;
-
-public class GameApp extends Application {
-
- public static GameApp APP;
-
- @Override
- public void onCreate() {
- super.onCreate();
- APP = this;
- InitSdk();
- }
-
- public void InitSdk() {
- LogUtil.Init(this);
- H2EngineSDK.initCommandMap();
- }
-
- public static void AppExit() {
- if (UnityPlayer.currentActivity != null)
- UnityPlayer.currentActivity.finish();
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- android.os.Process.killProcess(android.os.Process.myPid());// 鏉�杩涚▼
- }
- }, 1000);
- }
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
deleted file mode 100644
index c53960b..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.secondworld.universalsdk;
-
-import com.secondworld.universalsdk.command.ICommand;
-
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-
-import dalvik.system.DexFile;
-
-
-public class H2EngineSDK {
-
- private static HashMap<Integer, ICommand> allCommand = new HashMap<Integer, ICommand>();
-
- /**
- * 鍒濆鍖栨墍鏈夊懡浠�
- */
- public static void initCommandMap() {
- allCommand.clear();
- List<String> classesName = getClassName("com.secondworld.universalsdk.command");
- try {
- for (String name : classesName) {
- Class<?> aClass = Class.forName(name);
- if (!aClass.isInterface())
- addCommand((ICommand) aClass.newInstance());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static void addCommand(ICommand command) {
- allCommand.put(command.getCode(), command);
- }
-
- /**
- * unity 鍙戞潵鐨勬秷鎭�
- *
- * @param json
- */
- public static void HandleUnityMessage(String json) {
- try {
- LogUtil.debug("HandleUnityMessage", json);
- JSONObject _json = new JSONObject(json);
- int code = _json.getInt("code");
- ICommand command = allCommand.get(code);
- if (command == null) {
-
- return;
- }
- command.process(json);
- } catch (Exception ignored) {
- }
- }
-
- /**
- * 閫氳繃鍙嶅皠璇诲彇鎸囧畾鍖呭悕涓嬬殑鎵�鏈夌被鍚�
- *
- * @param packageName
- * @return
- */
- public static List<String> getClassName(String packageName) {
- List<String> classNameList = new ArrayList<String>();
- try {
- DexFile df = new DexFile(BaseApplication.APP.getPackageCodePath());//閫氳繃DexFile鏌ユ壘褰撳墠鐨凙PK涓彲鎵ц鏂囦欢
- Enumeration<String> enumeration = df.entries();//鑾峰彇df涓殑鍏冪礌 杩欓噷鍖呭惈浜嗘墍鏈夊彲鎵ц鐨勭被鍚� 璇ョ被鍚嶅寘鍚簡鍖呭悕+绫诲悕鐨勬柟寮�
- while (enumeration.hasMoreElements()) {//閬嶅巻
- String className = (String) enumeration.nextElement();
- if (className.contains(packageName)) {//鍦ㄥ綋鍓嶆墍鏈夊彲鎵ц鐨勭被閲岄潰鏌ユ壘鍖呭惈鏈夎鍖呭悕鐨勬墍鏈夌被
- classNameList.add(className);
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return classNameList;
- }
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/ThreadExecutor.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/ThreadExecutor.java
deleted file mode 100644
index 4cf1c63..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/ThreadExecutor.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.secondworld.universalsdk;
-
-public class ThreadExecutor {
-
- public static ThreadExecutor I = new ThreadExecutor();
-
-
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/UnityOperator.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/UnityOperator.java
deleted file mode 100644
index 6ac0734..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/UnityOperator.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.secondworld.universalsdk;
-
-import com.unity3d.player.UnityPlayer;
-
-import org.json.JSONObject;
-
-import java.util.Map;
-
-public class UnityOperator {
-
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdAssetCopy.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdAssetCopy.java
deleted file mode 100644
index 4af539c..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdAssetCopy.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdAssetCopy implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.AssetCopy;
- }
-
- @Override
- public void process(String json) {
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStart.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStart.java
deleted file mode 100644
index 38cbf16..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStart.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdBatteryListenStart implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.BatteryListenStart;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStop.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStop.java
deleted file mode 100644
index 563fc86..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdBatteryListenStop.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdBatteryListenStop implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.BatteryListenStop;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyContent.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyContent.java
deleted file mode 100644
index b03089c..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyContent.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdCopyContent implements ICommand {
-
- @Override
- public int getCode() {
- return CodeU2A.CopyContent;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyOneAsset.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyOneAsset.java
deleted file mode 100644
index 7c8e448..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdCopyOneAsset.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdCopyOneAsset implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.CopyOneAsset;
- }
-
- @Override
- public void process(String json) {
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdExteneralStorage.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdExteneralStorage.java
deleted file mode 100644
index 43dd003..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdExteneralStorage.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdExteneralStorage implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.ExteneralStorage;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java
deleted file mode 100644
index 26c286d..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInit.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-/**
- * 娓告垙鍒濆鍖�
- */
-public class CmdInit implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.Init;
- }
-
- @Override
- public void process(String json) {
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInstallAPK.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInstallAPK.java
deleted file mode 100644
index 3873fd7..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdInstallAPK.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdInstallAPK implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.InstallAPK;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdOpenWebView.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdOpenWebView.java
deleted file mode 100644
index 05ef406..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdOpenWebView.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdOpenWebView implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.OpenWebView;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestManifestPermissions.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestManifestPermissions.java
deleted file mode 100644
index b307c84..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestManifestPermissions.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdRequestManifestPermissions implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.RequestManifestPermissions;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestPermission.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestPermission.java
deleted file mode 100644
index 3a8f38b..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRequestPermission.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdRequestPermission implements ICommand {
-
- @Override
- public int getCode() {
- return CodeU2A.RequestPermission;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRestartApp.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRestartApp.java
deleted file mode 100644
index 86521c7..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdRestartApp.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdRestartApp implements ICommand {
- @Override
- public int getCode() {
- return CodeU2A.RestartApp;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdUniqueID.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdUniqueID.java
deleted file mode 100644
index b73a7e4..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/CmdUniqueID.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-import com.secondworld.universalsdk.CodeU2A;
-
-public class CmdUniqueID implements ICommand{
- @Override
- public int getCode() {
- return CodeU2A.UniqueID;
- }
-
- @Override
- public void process(String json) {
-
- }
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/ICommand.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/ICommand.java
deleted file mode 100644
index d481225..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/command/ICommand.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.secondworld.universalsdk.command;
-
-/**
- * unity 浼犻�掕繃鏉ョ殑鍛戒护
- */
-public interface ICommand {
-
- int getCode();
-
- void process(String json);
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/DeviceUtil.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/DeviceUtil.java
deleted file mode 100644
index 1d8b3a8..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/DeviceUtil.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.secondworld.universalsdk.utils;
-
-import android.app.ActivityManager;
-import android.content.Context;
-
-import com.secondworld.universalsdk.GameApp;
-
-public class DeviceUtil {
-
-
- /**
- * 鑾峰彇褰撳墠璁惧鎬昏繍琛屽唴瀛�
- * 鍗曚綅涓� byte
- * @return
- */
- public static long GetTotalRAMSize() {
- ActivityManager manager = (ActivityManager) GameApp.APP.getSystemService(Context.ACTIVITY_SERVICE);
- ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();
- manager.getMemoryInfo(info);
- return info.totalMem;
- }
-
-}
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/StaticDefine.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/StaticDefine.java
deleted file mode 100644
index 7e17026..0000000
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/utils/StaticDefine.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.secondworld.universalsdk.utils;
-
-/**
- * Created by Administrator on 2018/6/14 0014.
- */
-
-public interface StaticDefine {
-
- String UnityGameObjectName = "SDKUtility";
- String UnityHandleFuncName = "HandleSdkMessage";
-
- String LS_KEY_VERSION = "H2Engine_App_Version";
- String LS_KEY_COPIED = "H2Engine_Copy_Finished";
- String LS_KEY_IMEI = "H2Engine_DEVICE_IMEI";
- String LS_KEY_MAC = "H2Engine_DEVICE_MAC";
- String LS_KEY_ANDROID_ID = "H2Engine_DEVICE_ANDROID_ID";
- String LS_KEY_TENCENT_LOGINPARAM = "H2Engine_TENCENT_LOGIN_PARAM";
-
-}
diff --git a/SdkProject/library/src/main/res/layout/activity_main.xml b/SdkProject/library/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..7b97e2b
--- /dev/null
+++ b/SdkProject/library/src/main/res/layout/activity_main.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/main_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:id="@+id/unity_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/SdkProject/library/src/main/res/values/strings.xml b/SdkProject/library/src/main/res/values/strings.xml
new file mode 100644
index 0000000..73862c4
--- /dev/null
+++ b/SdkProject/library/src/main/res/values/strings.xml
@@ -0,0 +1 @@
+<resources></resources>
\ No newline at end of file
diff --git a/SdkProject/library/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java b/SdkProject/library/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
similarity index 90%
rename from SdkProject/library/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java
rename to SdkProject/library/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
index 604ec98..8f67092 100644
--- a/SdkProject/library/src/test/java/com/secondworld/universalsdk/ExampleUnitTest.java
+++ b/SdkProject/library/src/test/java/com/secondworld/sdk/ExampleUnitTest.java
@@ -1,4 +1,4 @@
-package com.secondworld.universalsdk;
+package com.secondworld.sdk;
import org.junit.Test;
--
Gitblit v1.8.0