Browse Source

fix: ci

master
高志龙 7 months ago
parent
commit
6f1ea06215
  1. BIN
      app/libs/SdkApiJar_V1.250217.0851.aar
  2. BIN
      app/libs/SdkApiJar_V1.250415.0924.aar
  3. 42
      app/src/main/java/qianmu/container/app/MyApplication.java
  4. 40
      app/src/main/java/qianmu/container/handler/ContainerHandler.java
  5. 11
      app/src/main/java/qianmu/container/handler/HdmiStatusCallback.java
  6. 47
      app/src/main/java/qianmu/container/mqtt/MQTTService.java
  7. 19
      app/src/main/java/qianmu/container/util/RootCmdUtil.java
  8. 1
      app/src/main/java/qianmu/container/util/SignWayUtil.java

BIN
app/libs/SdkApiJar_V1.250217.0851.aar

Binary file not shown.

BIN
app/libs/SdkApiJar_V1.250415.0924.aar

Binary file not shown.

42
app/src/main/java/qianmu/container/app/MyApplication.java

@ -1,11 +1,13 @@
package qianmu.container.app;
import android.app.Activity;
import android.app.Application;
import android.app.Service;
import android.app.smdt.SmdtManagerNew;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.PowerManager;
import com.alibaba.android.arouter.BuildConfig;
@ -54,7 +56,7 @@ public class MyApplication extends Application {
private SocketServer socketServer;
private PowerManager powerManager = null;
private PowerManager.WakeLock wakeLock = null;
private Activity mCurrentActivity;
public static long lastClick = 0;// 最后点击时间
public static long lastClickTime = 0;// 最后点击时间
public static int clickTimes = 0;// 累计点击次数
@ -70,6 +72,8 @@ public class MyApplication extends Application {
return myApplication;
}
@Override
public void onCreate() {
super.onCreate();
@ -84,7 +88,36 @@ public class MyApplication extends Application {
if (Constant.androidBoardType.equals("smt")) {
smdt = SmdtManagerNew.getInstance(this);
}
// refWatcher = LeakCanary.install(this);
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) { }
@Override
public void onActivityStarted(Activity activity) {
mCurrentActivity = activity;
}
@Override
public void onActivityResumed(Activity activity) {
mCurrentActivity = activity;
}
@Override
public void onActivityPaused(Activity activity) {
if (mCurrentActivity == activity) {
mCurrentActivity = null;
}
}
@Override
public void onActivityStopped(Activity activity) {}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {}
@Override
public void onActivityDestroyed(Activity activity) { }
});
}
public Lztek getLztek() {
@ -209,5 +242,10 @@ public class MyApplication extends Application {
return false;
}
}
// 获取当前Activity
public Activity getCurrentActivity() {
return mCurrentActivity;
}
}

40
app/src/main/java/qianmu/container/handler/ContainerHandler.java

@ -115,10 +115,20 @@ public class ContainerHandler extends Handler {
try {
sendEmptyMessageDelayed(HEART_BEAT_DELAY_TIME, HEART_BEAT_DELAY_TIME);
if(Constant.androidBoardType.contains("xwst") && Constant.screenType.equals("HDMI")){
if(Constant.androidBoardType.equals("xwst") && Constant.screenType.equals("HDMI")){
if(RootCmdUtil.HDMIEnabled()){
PowerData.updatePowerOnOrOffTime();
}
}else if(Constant.androidBoardType.equals("xwst2") && Constant.screenType.equals("HDMI")){
RootCmdUtil.checkHDMIEnabled(new HdmiStatusCallback() {
@Override
public void onResult(boolean isEnabled) {
LoggerUtil.e("mqttState","HDMI结果:"+isEnabled+",mqttState结果:"+Constant.mqttState);
if(isEnabled){
PowerData.updatePowerOnOrOffTime();
}
}
});
}else {
PowerData.updatePowerOnOrOffTime();
}
@ -284,7 +294,7 @@ public class ContainerHandler extends Handler {
* */
private void mqttState(){
try {
if(Constant.androidBoardType.contains("xwst") && Constant.screenType.equals("HDMI")){
if(Constant.androidBoardType.equals("xwst") && Constant.screenType.equals("HDMI")){
//欣威视通假关机
LoggerUtil.e("mqttState","HDMI结果:"+RootCmdUtil.HDMIEnabled()+",mqttState结果:"+Constant.mqttState);
if(!RootCmdUtil.HDMIEnabled()){
@ -305,8 +315,32 @@ public class ContainerHandler extends Handler {
EventBus.getDefault().post(new MessageEvent(Constant.ACTION_MQTT_STATE));//通知mqtt状态判断
}
}
}else {
}else if(Constant.androidBoardType.equals("xwst2") && Constant.screenType.equals("HDMI")){
RootCmdUtil.checkHDMIEnabled(new HdmiStatusCallback() {
@Override
public void onResult(boolean isEnabled) {
LoggerUtil.e("mqttState","HDMI结果:"+isEnabled+",mqttState结果:"+Constant.mqttState);
if(!isEnabled){
//HDMI无信号
if(Constant.mqttState.equals("on")){
LoggerUtil.e("mqttState","HDMI无信号关闭MQTTService");
MyApplication.getInstance().stopService(new Intent(MyApplication.getInstance(),MQTTService.class));
}
}else {
//HDMI有信号
boolean isService = DeviceUtil.isServiceRunning(MyApplication.getInstance(), "MQTTService");
LoggerUtil.e("mqttState","MQTTService:"+isService);
if(Constant.mqttState.equals("off") || !isService){
LoggerUtil.e("mqttState","HDMI有信号开启MQTTService");
MyApplication.getInstance().startService(new Intent(MyApplication.getInstance(),MQTTService.class));
}else {
EventBus.getDefault().post(new MessageEvent(Constant.ACTION_MQTT_STATE));//通知mqtt状态判断
}
}
}
});
}else {
if(Constant.mqttState.equals("off")){
LoggerUtil.e("mqttState","MQTT被关闭了,开启MQTTService");
MyApplication.getInstance().startService(new Intent(MyApplication.getInstance(),MQTTService.class));

11
app/src/main/java/qianmu/container/handler/HdmiStatusCallback.java

@ -0,0 +1,11 @@
package qianmu.container.handler;
/**
* Created by Android Studio.
* User: linzhibin
* Date: 2025/10/30
* Time: 14:52
*/
public interface HdmiStatusCallback {
void onResult(boolean isEnabled);
}

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

@ -8,12 +8,15 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Binder;
import android.os.Environment;
import android.os.IBinder;
import android.util.Log;
import android.view.View;
import androidx.core.app.NotificationCompat;
@ -42,6 +45,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
@ -62,6 +66,7 @@ import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@ -652,47 +657,39 @@ public class MQTTService extends Service {
if(!b){
return;
}
Executors.newSingleThreadExecutor().execute(() -> {
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
singleThreadExecutor.execute(() -> {
try {
uploadScreenShot(path,DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE),String.valueOf(time));
} catch (Exception e) {
e.printStackTrace();
}
});
singleThreadExecutor.shutdown();
return;
}
String cmd = "screencap -p " + path;
Executors.newSingleThreadExecutor().execute(() -> {
try {
Process process = Runtime.getRuntime().exec("su");//不同的设备权限不一样
PrintWriter pw = new PrintWriter(process.getOutputStream());
pw.println(cmd);
pw.flush();
pw.println("exit");
pw.flush();
try {
process.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
View decorView = MyApplication.getInstance().getCurrentActivity().getWindow().getDecorView();
decorView.setDrawingCacheEnabled(true);
decorView.buildDrawingCache();
Bitmap bmp = decorView.getDrawingCache();
Rect frame = new Rect();
decorView.getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
Bitmap screenBitmap = Bitmap.createBitmap(bmp, 0, statusBarHeight, decorView.getWidth(), decorView.getHeight() - statusBarHeight);
decorView.setDrawingCacheEnabled(false);
//保存
try (FileOutputStream fos = new FileOutputStream(file)) {
screenBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
pw.close();
process.destroy();
if(!new File(path).exists()){
LoggerUtil.e("screenShot","截屏失败");
return;
}
uploadScreenShot(path,DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE),String.valueOf(time));
} catch (IOException e) {
e.printStackTrace();
}
});
}
//上传截屏

19
app/src/main/java/qianmu/container/util/RootCmdUtil.java

@ -2,11 +2,16 @@ package qianmu.container.util;
import android.util.Log;
import com.sdkapi.api.SdkApi;
import com.sdkapi.common.ApiTool;
import com.sdkapi.common.ResultCallback;
import com.sdkapi.common.ResultInfo;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import qianmu.container.handler.HdmiStatusCallback;
/**
@ -28,6 +33,17 @@ public final class RootCmdUtil {
else return true;
}
public static void checkHDMIEnabled(HdmiStatusCallback callback) {
SdkApi.getInstance().Display().getScreenOnoff(ApiTool.Screen.ALL,
new ResultCallback<ResultInfo<Boolean>>() {
@Override
public void onMsg(ResultInfo<Boolean> result) {
// 回调结果给外部
callback.onResult(result.getVal());
}
});
}
/**
* 执行命令并且输出结果
@ -68,3 +84,4 @@ public final class RootCmdUtil {
return result;
}
}

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

@ -362,6 +362,7 @@ public class SignWayUtil {
}if(Constant.androidBoardType.equals("xwst2")){
//true:显示 false:隐藏
SdkApi.getInstance().SystemCtrl().setStatusBarDisplay(type);
SdkApi.getInstance().SystemCtrl().setNavigationBar(type);
} else if(Constant.androidBoardType.equals("ys")){
//true:隐藏 false:显示
MyManager manager = MyManager.getInstance(MyApplication.getInstance());

Loading…
Cancel
Save