diff --git a/XixunPlayer/app/build.gradle b/XixunPlayer/app/build.gradle index 60361ae..5e457ce 100644 --- a/XixunPlayer/app/build.gradle +++ b/XixunPlayer/app/build.gradle @@ -11,17 +11,10 @@ android { minSdk 21 targetSdk 34 versionCode 1 - versionName "2.2.16-N" + versionName "2.2.18-Y" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - buildFeatures { aidl true } @@ -30,6 +23,52 @@ android { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } + signingConfigs { + X {//4418 + keyAlias 'xixun' + keyPassword '123456' + storeFile file('D:/develop/xixun/signedFile/keystore/xixun-x.keystore') + storePassword '123456' + } + Y {//210 + keyAlias 'xixun' + keyPassword '123456' + storeFile file('D:/develop/xixun/signedFile/keystore/xixun-y.keystore') + storePassword '123456' + } + D_3568a {//3568a 视美泰 + keyAlias 'keystore' + keyPassword 'android' + storeFile file('D:/develop/xixun/signedFile/keystore/keystore.jks') + storePassword 'android' + } + D_3568N {//3568 恩泰世 + keyAlias 'systemkey' + keyPassword '123456' + storeFile file('D:/_docs/comp/android/keystore/3568D恩泰世 123456.jks') + storePassword '123456' + } + D_YF {//3566 YF + keyAlias 'platform' + keyPassword 'youngfeel' + storeFile file('D:/_docs/comp/android/keystore/yf356x_android11_system.jks') + storePassword 'youngfeel' + } + } + buildTypes { + release { + lintOptions { + checkReleaseBuilds false + abortOnError false + } + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.D_3568N + } + debug { + signingConfig signingConfigs.D_3568N + } + } } dependencies { diff --git a/XixunPlayer/app/src/main/AndroidManifest.xml b/XixunPlayer/app/src/main/AndroidManifest.xml index 349ed56..df0d0b3 100644 --- a/XixunPlayer/app/src/main/AndroidManifest.xml +++ b/XixunPlayer/app/src/main/AndroidManifest.xml @@ -1,8 +1,7 @@ - - + xmlns:tools="http://schemas.android.com/tools" + android:sharedUserId="android.uid.system"> diff --git a/XixunPlayer/app/src/main/assets/images/code_cn.png b/XixunPlayer/app/src/main/assets/images/code_cn.png new file mode 100644 index 0000000..39685a7 Binary files /dev/null and b/XixunPlayer/app/src/main/assets/images/code_cn.png differ diff --git a/XixunPlayer/app/src/main/assets/images/code_en.png b/XixunPlayer/app/src/main/assets/images/code_en.png new file mode 100644 index 0000000..84dca4b Binary files /dev/null and b/XixunPlayer/app/src/main/assets/images/code_en.png differ diff --git a/XixunPlayer/app/src/main/assets/local_page.html b/XixunPlayer/app/src/main/assets/local_page.html index 6ff7df9..5032f62 100644 --- a/XixunPlayer/app/src/main/assets/local_page.html +++ b/XixunPlayer/app/src/main/assets/local_page.html @@ -106,13 +106,20 @@ -
-
- 📌 - 注意事项 +
+
+
+ 📌 + 注意事项 +
+
+ 设备需切换至联网模式并关联云平台账号,云服务器地址:https://www.ledokcloud.com +
-
- 设备需切换至联网模式并关联云平台账号,云服务器地址:https://www.ledokcloud.com +
+
+ +
视频详解
@@ -166,7 +173,7 @@
- +
扫码下载APP
@@ -244,14 +251,15 @@ appStep2: "2.创建并编辑节目", appStep3: "3.发送节目到设备", appNote: "设备需切换至热点模式,手机需连接该设备热点", - scanDownload: "扫码下载APP", + scanDownload: "下载APP", usbStep1: "1.节目文件存入U盘", usbStep2: "2.U盘接入设备", usbStep3: "3.系统自动播放", usbNote: "无设备模式限制,U盘即插即播", loading: "正在接收Android宽高...", loadFail: "接收宽高失败", - unknownNetwork: "未知网络" + unknownNetwork: "未知网络", + videoCommentary: "视频详解" }, // 英文 en: { @@ -272,14 +280,15 @@ appStep2: "2.Create and edit programs", appStep3: "3.Send programs to device", appNote: "The device must be switched to hotspot mode, and the mobile phone must connect to the device's hotspot", - scanDownload: "Scan to download APP", + scanDownload: "Download APP", usbStep1: "1.Save program files to USB", usbStep2: "2.Connect USB to device", usbStep3: "3.System plays automatically", usbNote: "No device mode restrictions, plug and play with USB", loading: "Receiving Android width and height...", loadFail: "Failed to receive width and height", - unknownNetwork: "Unknown Network" + unknownNetwork: "Unknown Network", + videoCommentary: "Video commentary" } }; @@ -375,7 +384,8 @@ const cardId = document.getElementById("cardId"); const cardVideos = document.querySelectorAll(".card-bg-video"); // 所有卡片视频 const infoBarVideo = document.querySelector(".info-bar-bg-video"); // 顶部信息栏视频 - + const qrcodeImg = document.getElementById("videoCommentaryQrcode"); + qrcodeImg.src = currentLang === "zh" ? "images/code_cn.png" : "images/code_en.png"; try { // ---------------------- 1. 获取并更新宽高 ---------------------- const sizeJson = AndroidBridge.getSizeFromAndroid(); diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/AIDLService.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/AIDLService.java index a2e3a89..48fd6dd 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/AIDLService.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/AIDLService.java @@ -110,7 +110,7 @@ public class AIDLService extends Service { @SuppressLint("ResourceType") @Override public String executeJosnCommand(String jsonstr) throws RemoteException { - Util.println("AIDL executeJsonCommand ..."+jsonstr);//{"_type":"DeleteTask","id":"652522a0e81d1e000009201a","sendTo":"yzd-player"} + Util.println("AIDL executeJson "+jsonstr);//{"_type":"DeleteTask","id":"652522a0e81d1e000009201a","sendTo":"yzd-player"} String commandId = null; try { var jsonBytes = jsonstr.getBytes(StandardCharsets.UTF_8); diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java index c64fb45..8e9ec9b 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java @@ -182,7 +182,6 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac protected void onResume() { super.onResume(); Util.println(" ==>> MainActivity onResume >> "+hashCode()); - if(progView==null && insView==null) runOnUiThread(this::initProg); } @Override @@ -190,7 +189,6 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac super.onPause(); Util.println(" ==<< MainActivity onPause << "+hashCode()); state = 8; - stopProg(); } CardService serviCard; @@ -246,31 +244,22 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac return "{\"width\":\"" + Util.screenWidth + "px\",\"height\":\"" + Util.screenHeight + "px\"}"; } @JavascriptInterface - public String getNetwork() { - // 获取当前网络类型 + public String getNetwork() {// 获取当前网络类型 NetworkTypeUtil.NetworkType networkType = NetworkTypeUtil.getCurrentNetworkType(MainActivity.this); String value = ""; switch (networkType) { case WIFI: - value = NetworkTypeUtil.getWifiSsid(MainActivity.this); - // 处理未获取到SSID的情况 - if (O.isEmpty(value)) value = "未知WiFi名称"; - System.out.println("当前是 WiFi 网络:" + value); + value = NetworkTypeUtil.getWifiSsid(MainActivity.this);// 处理未获取到SSID的情况 + if(O.isEmpty(value)) value = "未知WiFi名称"; break; case ETHERNET: - System.out.println("当前是有线网络"); break; - case CELLULAR: - // 细分蜂窝网络类型(2G/3G/4G) - String cellularSubType = NetworkTypeUtil.getCellularSubType(MainActivity.this); - value = cellularSubType; - System.out.println("当前是蜂窝网络:" + cellularSubType); + case CELLULAR:// 细分蜂窝网络类型(2G/3G/4G) + value = NetworkTypeUtil.getCellularSubType(MainActivity.this);; break; case NONE: - System.out.println("无网络连接"); break; case UNKNOWN: - System.out.println("未知网络类型(如蓝牙、VPN)"); break; } var IP = NetworkTypeUtil.getActiveNetworkIp(MainActivity.this); @@ -570,11 +559,17 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac AudioManager audioManager; AudioFocusRequest audioFocusRequest; public void stopProg() { + Util.println("---- Stop Prog\n"); avas.clear(); showHides.clear(); showeds.clear(); curAva = 0; curTimes = 1; + if(backViewL==null) setContentView(backView); + else { + setContentView(backViewL); + backViewL.loadUrl("file:///android_asset/local_page.html"); + } if(insView!=null) { insView.release(); insView = null; @@ -583,11 +578,6 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac progView.release(); progView = null; } - if(backViewL==null) setContentView(backView); - else { - setContentView(backViewL); - backViewL.loadUrl("file:///android_asset/local_page.html"); - } System.gc(); } public boolean delProgFile() { @@ -609,9 +599,11 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac return ok; } public void initProg() { + Util.println("\n---- Init Prog"); + if(progView!=null || insView!=null) return; state = 1; try { - Util.println("\nParse Insert Prog Json"); + Util.println(" Parse Insert Json"); var root = JSMap.fromClose(new BufferedInputStream(new FileInputStream(Util.programDir + "/insert"))); var task = root.jsmap("task"); if(task==null && root.containsKey("layers")) task = new JSMap("items", new JSList<>(new JSMap("_program", root))); @@ -626,7 +618,7 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac } var demand = 0; try { - Util.println("\nParse Prog Json"); + Util.println(" Parse Json"); var root = JSMap.fromClose(new BufferedInputStream(new FileInputStream(Util.programDir + "/program"))); var task = root.jsmap("task"); demand = root.intg("Demand"); @@ -646,7 +638,7 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac } if(insView!=null || progView!=null) { state = 5; - Util.println("Init Sync"); + Util.println(" Init Sync"); var ms = System.currentTimeMillis(); if(demand==0 || progView==null) syncProg(ms, 0); else { @@ -669,8 +661,8 @@ public class MainActivity extends Activity implements Choreographer.FrameCallbac } else if(state != 7) state = 3; } public void initProg(byte[] json) { + Util.println("\n---- Init Prog with json"); try { - Util.println("\nParse Prog Json"); var root = JSMap.from(json); var task = root.jsmap("task"); if(task==null) { diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java index 1990488..010e14a 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java @@ -490,9 +490,20 @@ public class Prog extends AbsLayout { void release() { try { setVisibility(GONE); - View view; - for(int cc=0; cc