Browse Source

fix: AI视频封版,后面不包含视频

master
高志龙 2 months ago
parent
commit
0cbc426306
  1. 2
      app/build.gradle
  2. 6
      app/src/main/java/qianmu/container/activity/BaseActivity.java
  3. 8
      app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java
  4. 8
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  5. 1
      app/src/main/java/qianmu/container/app/Constant.java
  6. 35
      app/src/main/java/qianmu/container/data/PowerData.java
  7. 27
      app/src/main/java/qianmu/container/mqtt/MQTTService.java
  8. 5
      app/src/main/java/qianmu/container/util/DeviceUtil.java
  9. 37
      app/src/main/java/qianmu/container/util/SignWayUtil.java

2
app/build.gradle

@ -107,7 +107,7 @@ dependencies {
implementation files('libs/signway.jar') //
implementation files('libs/sdkapi.jar') //Bv-3588
implementation files('libs/smdt.jar') //
implementation files('libs/DUI-lite-SDK-for-Android-3.5.0-466a4c77.jar') //
implementation files('libs/DUI-lite-SDK-for-Android-3.5.0-466a4c77.jar') //
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

6
app/src/main/java/qianmu/container/activity/BaseActivity.java

@ -274,6 +274,12 @@ public abstract class BaseActivity extends AppCompatActivity {
if(Constant.androidBoardType.equals("smt")){
MyApplication.getInstance().getSmdt().sys_setDaemonsActivity(this.getPackageName(),3600000,true);
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.q-zheng.action.APPMONITOR");
intent.putExtra("package_name", Constant.APP_SEND_PACKAGE_NAME);
intent.putExtra("self_starting", true);
intent.putExtra("period", 600);
MyApplication.getInstance().sendBroadcast(intent);
}
try {

8
app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java

@ -3,6 +3,7 @@ package qianmu.container.activity.H5;
import android.Manifest;
import android.app.smdt.SmdtManagerNew;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
@ -274,7 +275,14 @@ public class UpdateFileActivity extends BaseActivity {
if(Constant.androidBoardType.equals("smt")){
MyApplication.getInstance().getSmdt().sys_setSystemBootApp(MyApplication.getInstance().getPackageName());
MyApplication.getInstance().getSmdt().sys_setDaemonsActivity(MyApplication.getInstance().getPackageName(),2000,true);
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.q-zheng.action.APPMONITOR");
intent.putExtra("package_name", Constant.APP_SEND_PACKAGE_NAME);
intent.putExtra("self_starting", true);
intent.putExtra("period", 12);
MyApplication.getInstance().sendBroadcast(intent);
}
}
@Override

8
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -112,7 +112,7 @@ public class WebViewActivity extends BaseActivity {
static final int TYPE_START_SERVER = 4;//重新启动web服务
static final int TYPE_SHENG_HTML_MAG = 5;//返回接口请求值给h5
static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址
//static String HtmlUrl = "http://192.168.0.100:5173/";
//static String HtmlUrl = "http://192.168.0.105:5173/";
int time = 0;
String interfaceRequestData="";
private VideoView currentVideo; //当前
@ -817,6 +817,12 @@ public class WebViewActivity extends BaseActivity {
break;
case Constant.VOID_STOP:
changeVideo("bg");
runOnUiThread(new Runnable() {
@Override
public void run() {
binding.web.evaluateJavascript("javascript: window.setState();", null);
}
});
break;
case Constant.ACTION_UPDATE_PROG2://后台下发节目通知,重置导视倒计时。
LoggerUtil.e(TAG,"重启导视倒计时");

1
app/src/main/java/qianmu/container/app/Constant.java

@ -32,6 +32,7 @@ public class Constant {
// public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
// public static String androidBoardType = "smt"; //设备板子型号 视美泰
// public static String androidBoardType = "ctf"; //创泰丰
public static final String VOID_STOP = "void_stop";//
public static String whoActivity = ""; // 哪个activity页面

35
app/src/main/java/qianmu/container/data/PowerData.java

@ -1,6 +1,8 @@
package qianmu.container.data;
import android.app.smdt.SmdtManagerNew;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.gson.Gson;
@ -328,31 +330,52 @@ public class PowerData extends BaseData {
}
}
}else if(Constant.androidBoardType.equals("ctf")){
LoggerUtil.e("PowerData()", "关机时间:"+s + " " + parameter+",开机时间:"+s + " " + bootTime);
Intent intent = new Intent("android.intent.action.setpoweronoff");
if(parameterLong > bootLong) {
//关机时间大于开机时间,第二天开机
int[] timeoffArray = {Integer.parseInt(date[0]), Integer.parseInt(date[1]), Integer.parseInt(date[2]), Integer.parseInt(off[0]), Integer.parseInt(off[1])};
int[] timeonArray = {Integer.parseInt(date2[0]), Integer.parseInt(date2[1]), Integer.parseInt(date2[2]), Integer.parseInt(on2[0]),Integer.parseInt(on2[1])};
intent.putExtra("timeon", timeonArray);
intent.putExtra("timeoff", timeoffArray);
}else {
//关机时间小于开机时间,当天关机,当天开机。
if(currentLong < parameterLong){
//当前时间在关机时间之前
int[] timeoffArray = {Integer.parseInt(date[0]), Integer.parseInt(date[1]), Integer.parseInt(date[2]), Integer.parseInt(off[0]), Integer.parseInt(off[1])};
int[] timeonArray = {Integer.parseInt(date[0]), Integer.parseInt(date[1]), Integer.parseInt(date[2]), Integer.parseInt(on[0]),Integer.parseInt(on[1])};
intent.putExtra("timeon", timeonArray);
intent.putExtra("timeoff", timeoffArray);
}else{
//当前时间在关机后,设置第二天开关机
int[] timeoffArray = {Integer.parseInt(date2[0]), Integer.parseInt(date2[1]), Integer.parseInt(date2[2]), Integer.parseInt(off[0]), Integer.parseInt(off[1])};
int[] timeonArray = {Integer.parseInt(date2[0]), Integer.parseInt(date2[1]), Integer.parseInt(date2[2]), Integer.parseInt(on[0]),Integer.parseInt(on[1])};
intent.putExtra("timeon", timeonArray);
intent.putExtra("timeoff", timeoffArray);
}
}
intent.putExtra("enable", true);
MyApplication.getInstance().sendBroadcast(intent);
}else if(Constant.androidBoardType.equals("huidu")){
//并且设定的开机与关机时间必须超过当前时间,否则,会清除掉已设定的开机时间或关机时间,导致不能达到预想的要求。
if(parameterLong > bootLong) {
//关机时间大于开机时间,第二天开机
int second =(int)(bootLong2-currentLong)/1000;
SignWayUtil.setPowerOnOffTimeforHuidu(second);
}else {
//关机时间小于开机时间,当天关机,当天开机。
if(currentLong < parameterLong){
//当前时间在关机时间之前
int second =(int)(bootLong-currentLong)/1000;
SignWayUtil.setPowerOnOffTimeforHuidu(second);
}else{
//当前时间在关机后,设置第二天开关机
int second =(int)(bootLong2-currentLong)/1000;
SignWayUtil.setPowerOnOffTimeforHuidu(second);
}
}
}
String deviceType = DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_TYPE);//设备类型,导视,信发等
if(deviceType.equals("指路机")){
DeviceData.jxbAutoBoot(bootTime2,parameter,null,null);

27
app/src/main/java/qianmu/container/mqtt/MQTTService.java

@ -165,7 +165,6 @@ public class MQTTService extends Service {
clientId= DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE);
EventBus.getDefault().register(this);
init();
}
public static void publish(String msg){
@ -686,11 +685,29 @@ public class MQTTService extends Service {
}else if(!"".equals(Constant.androidBoardType)){
screenshotFuture = singleThreadExecutor.submit(() -> {
SignWayUtil.takeScreenshot(path);
if(new File(path).exists()){
LoggerUtil.e("screenShot","截屏完成");
return true;
int retryCount = 0;
boolean isSuccess = false;
long lastSize = 0;
while (retryCount < 20) { // 最多5秒超时
if (file.exists()) {
long currentSize = file.length();
// 关键:文件大小 2 次都不变 → 真正写完
if (currentSize > 0 && currentSize == lastSize) {
LoggerUtil.e("screenShot","截屏完成");
isSuccess = true;
break;
}
lastSize = currentSize;
}
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
retryCount++;
}
return false;
return isSuccess;
});
}else if(RootCmdUtil.checkSuCommand()){ //root
LoggerUtil.e("screenShot","root截屏");

5
app/src/main/java/qianmu/container/util/DeviceUtil.java

@ -122,7 +122,7 @@ public class DeviceUtil {
if("".equals(ip)){
try {
//获取wifi服务
WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
if (wifiInfo == null || wifiInfo.getIpAddress() == 0) {
return "";
@ -158,8 +158,7 @@ public class DeviceUtil {
//获取有线网络mac
public static String getLanMac(){
ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance().getApplicationContext().getSystemService(Service.CONNECTIVITY_SERVICE);
ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance().getSystemService(Service.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
String extraInfo = activeNetworkInfo.getExtraInfo();
LoggerUtil.e("mac获取","mac:"+extraInfo);

37
app/src/main/java/qianmu/container/util/SignWayUtil.java

@ -1,12 +1,17 @@
package qianmu.container.util;
import android.app.smdt.SmdtManagerNew;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.RemoteException;
import android.os.signwaymanager.SignwayManager;
import android.util.Log;
import android.os.Build.VERSION;
import androidx.core.content.FileProvider;
import com.sdkapi.api.SdkApi;
import com.sdkapi.common.ResultCallback;
@ -60,6 +65,9 @@ public class SignWayUtil {
}else if(Constant.androidBoardType.equals("huidu")){
HuiduTech helper = new HuiduTech(MyApplication.getInstance());
helper.shutdown();
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.intent.action.shutdown");
MyApplication.getInstance().sendBroadcast(intent);
}
} catch (Throwable t) {
LoggerUtil.e("shutDown", StringUtil.getThrowableStr(t));
@ -97,6 +105,9 @@ public class SignWayUtil {
}else if(Constant.androidBoardType.equals("huidu")){
HuiduTech helper = new HuiduTech(MyApplication.getInstance());
helper.reboot();
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.intent.action.reboot");
MyApplication.getInstance().sendBroadcast(intent);
}
} catch (Throwable t) {
LoggerUtil.e("reboot", StringUtil.getThrowableStr(t));
@ -150,6 +161,12 @@ public class SignWayUtil {
HuiduTech helper = new HuiduTech(MyApplication.getInstance());
helper.install(path);
//helper.installAndStart(path,"qianmu.container","qianmu.container.activity.H5.UpdateFileActivity");
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.intent.action.apkinstall");
intent.putExtra("path", path);
intent.putExtra("commit_start", true);
intent.putExtra("auto_start", true);
MyApplication.getInstance().sendBroadcast(intent);
}
} catch (Throwable t) {
LoggerUtil.e("silentInstallApk", StringUtil.getThrowableStr(t));
@ -305,6 +322,10 @@ public class SignWayUtil {
}catch(Exception exp){
LoggerUtil.e("screenShot",exp.getMessage());
}
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.intent.action.screenshoot");
intent.putExtra("path", path);
MyApplication.getInstance().sendBroadcast(intent);
}
} catch (Throwable t) {
LoggerUtil.e("takeScreenshot", StringUtil.getThrowableStr(t));
@ -368,6 +389,14 @@ public class SignWayUtil {
HuiduTech helper = new HuiduTech(MyApplication.getInstance());
helper.showNavigationBar(type);
helper.showStatusBar(type);
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent;
if (!type) {
intent = new Intent("rk.android.remove_navigationbar");
} else {
intent = new Intent("rk.android.add_navigationbar");
}
MyApplication.getInstance().sendBroadcast(intent);
}
} catch (Throwable t) {
@ -496,6 +525,8 @@ public class SignWayUtil {
return "视美泰-"+Build.MODEL+",Android"+getAndroidVersion();
}else if(Constant.androidBoardType.equals("huidu")){
return "灰度"+Build.MODEL+",Android"+getAndroidVersion();
}else if(Constant.androidBoardType.equals("ctf")){
return "创泰丰"+Build.MODEL+",Android"+getAndroidVersion();
}else {
return Build.MODEL+",Android"+getAndroidVersion();
}
@ -578,6 +609,12 @@ public class SignWayUtil {
}else if(Constant.androidBoardType.equals("huidu")){
HuiduTech helper = new HuiduTech(MyApplication.getInstance());
helper.setSystemTime(date.getTime());
}else if(Constant.androidBoardType.equals("ctf")){
Intent intent = new Intent("android.intent.action.settime");
int[] timeArray = {Integer.parseInt(timesplit[0]),Integer.parseInt(timesplit[1]),Integer.parseInt(timesplit[2]),Integer.parseInt(timesplit[3]),Integer.parseInt(timesplit[4]),Integer.parseInt(timesplit[5])};
intent.putExtra("settime",timeArray);
intent.putExtra("enable" ,true);
MyApplication.getInstance().sendBroadcast(intent);
}
}catch (Exception e){
LoggerUtil.e("setDeviceTime:","无法设置系统时间"+e.getMessage());

Loading…
Cancel
Save