From 7af8c10ba5f06876be00601dc2f12403090ee558 Mon Sep 17 00:00:00 2001 From: Gangphon Date: Mon, 12 Jan 2026 19:52:51 +0800 Subject: [PATCH] 2.2.18 --- XixunPlayer/app/build.gradle | 55 +++++++++++++++--- XixunPlayer/app/src/main/AndroidManifest.xml | 5 +- .../app/src/main/assets/images/code_cn.png | Bin 0 -> 8572 bytes .../app/src/main/assets/images/code_en.png | Bin 0 -> 9422 bytes .../app/src/main/assets/local_page.html | 34 +++++++---- .../com/xixun/xixunplayer/AIDLService.java | 2 +- .../com/xixun/xixunplayer/MainActivity.java | 42 ++++++------- .../main/java/com/xixun/xixunplayer/Prog.java | 17 +++++- 8 files changed, 103 insertions(+), 52 deletions(-) create mode 100644 XixunPlayer/app/src/main/assets/images/code_cn.png create mode 100644 XixunPlayer/app/src/main/assets/images/code_en.png 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 0000000000000000000000000000000000000000..39685a7de1fe609507d93fb010f2a8826674ffd5 GIT binary patch literal 8572 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 n5byivO&tI4+iMPQZn -

-
- 📌 - 注意事项 +
+
+
+ 📌 + 注意事项 +
+
+ 设备需切换至联网模式并关联云平台账号,云服务器地址: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