Browse Source

fix:

master
高志龙 4 weeks ago
parent
commit
afd6b9c683
  1. 58
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  2. 6
      app/src/main/java/qianmu/container/app/Constant.java
  3. 4
      app/src/main/java/qianmu/container/app/MyApplication.java
  4. 13
      app/src/main/java/qianmu/container/data/PowerData.java
  5. 57
      app/src/main/java/qianmu/container/util/LoggerUtil.java
  6. 9
      app/src/main/java/qianmu/container/util/SignWayUtil.java

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

@ -58,6 +58,7 @@ import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -127,60 +128,67 @@ public class WebViewActivity extends BaseActivity {
private boolean isrun = false; // 是否正在听写 private boolean isrun = false; // 是否正在听写
private KDXFUtil kxdfttsUtil; private KDXFUtil kxdfttsUtil;
Handler handler = new Handler() {
@SuppressLint("HandlerLeak")
private final InnerHandler handler = new InnerHandler(this);
private static class InnerHandler extends Handler {
private final WeakReference<WebViewActivity> ref;
InnerHandler(WebViewActivity activity) {
ref = new WeakReference<>(activity);
}
@Override @Override
public void handleMessage(@NonNull Message msg) { public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case TYPE_REFURBISH_WEBVIEW://刷新webview
WebViewActivity activity = ref.get();
if (activity == null) return;
switch (msg.what) {
case TYPE_REFURBISH_WEBVIEW:
try { try {
binding.web.clearCache(true);
binding.web.loadUrl(HtmlUrl);
Constant.isCoreService=true;
}catch (Exception e){
activity.binding.web.clearCache(true);
activity.binding.web.loadUrl(HtmlUrl);
Constant.isCoreService = true;
} catch (Exception e) {
} }
break; break;
case TYPE_GO_SAVESCREEN://导视通知跳转屏保
case TYPE_GO_SAVESCREEN:
try { try {
initFirstTime(); initFirstTime();
if (!ScreenSaverData.isProgramPlay()) return; if (!ScreenSaverData.isProgramPlay()) return;
if (AppData.getFrontApp().equals(DeviceUtil.getPackageName())) { //信发处于系统前端时 显示屏保页面
if (AppData.getFrontApp().equals(DeviceUtil.getPackageName())) {
EventBus.getDefault().post(new MessageEvent(Constant.ACTION_SHOW_SPLASH)); EventBus.getDefault().post(new MessageEvent(Constant.ACTION_SHOW_SPLASH));
} else { //重新启动信发软件并打开屏保页面
} else {
ARouter.getInstance().build(Constant.ROUTE_SCREEN_SAVER).navigation(); ARouter.getInstance().build(Constant.ROUTE_SCREEN_SAVER).navigation();
} }
} catch (Throwable t) { } catch (Throwable t) {
LoggerUtil.e("WebViewActivity()", "导视通知跳转报错:"+StringUtil.getThrowableStr(t));
LoggerUtil.e("WebViewActivity()", "导视通知跳转报错:" + StringUtil.getThrowableStr(t));
} }
break; break;
case TYPE_HINT_PASSWORD: case TYPE_HINT_PASSWORD:
sendEmptyMessageDelayed(TYPE_HINT_PASSWORD,1000);
if(time>=30){
binding.layoutPass.setVisibility(View.GONE);
sendEmptyMessageDelayed(TYPE_HINT_PASSWORD, 1000);
if (activity.time >= 30) {
activity.binding.layoutPass.setVisibility(View.GONE);
removeMessages(TYPE_HINT_PASSWORD); removeMessages(TYPE_HINT_PASSWORD);
} }
time++;
activity.time++;
break; break;
case TYPE_START_SERVER: case TYPE_START_SERVER:
removeMessages(TYPE_REFURBISH_WEBVIEW); removeMessages(TYPE_REFURBISH_WEBVIEW);
sendEmptyMessageDelayed(TYPE_REFURBISH_WEBVIEW,2000);
startService(new Intent(WebViewActivity.this, CoreService.class));
LoggerUtil.e("WebViewActivity","CoreService重启");
sendEmptyMessageDelayed(TYPE_REFURBISH_WEBVIEW, 2000);
activity.startService(new Intent(activity, CoreService.class));
LoggerUtil.e("WebViewActivity", "CoreService重启");
break; break;
case TYPE_SHENG_HTML_MAG: case TYPE_SHENG_HTML_MAG:
getHandWriting(interfaceRequestData);
interfaceRequestData="";
activity.getHandWriting(activity.interfaceRequestData);
activity.interfaceRequestData = "";
DeviceData.saveInterfaceRequest(""); DeviceData.saveInterfaceRequest("");
break; break;
} }
} }
};
}
@Override @Override
protected void initView() { protected void initView() {

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

@ -23,7 +23,7 @@ public class Constant {
public static String mqttState = ""; // 屏幕连接方式 public static String mqttState = ""; // 屏幕连接方式
public static String TTSHome="sbc"; // sbc-思必驰 kdxf-科大讯飞 (有语音的项目需要配置) public static String TTSHome="sbc"; // sbc-思必驰 kdxf-科大讯飞 (有语音的项目需要配置)
// public static String androidBoardType = ""; //设备板子型号 无固定版 // public static String androidBoardType = ""; //设备板子型号 无固定版
public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
// public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch
// public static String androidBoardType = "xwst"; //设备板子型号 xwst(欣威视通3399) // public static String androidBoardType = "xwst"; //设备板子型号 xwst(欣威视通3399)
// public static String androidBoardType = "xwst2"; //设备板子型号 xwst2(欣威视通3588、T982、3576) // public static String androidBoardType = "xwst2"; //设备板子型号 xwst2(欣威视通3588、T982、3576)
// public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院) // public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院)
@ -33,7 +33,7 @@ public class Constant {
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M // public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
// public static String androidBoardType = "smt"; //设备板子型号 视美泰 // public static String androidBoardType = "smt"; //设备板子型号 视美泰
// public static String androidBoardType = "ctf"; //创泰丰 // public static String androidBoardType = "ctf"; //创泰丰
// public static String androidBoardType = "tcl"; //TCL 982
public static String androidBoardType = "tcl"; //TCL 982
public static final String VOID_STOP = "void_stop";// public static final String VOID_STOP = "void_stop";//
public static final String VOID_ERROR = "void_error"; public static final String VOID_ERROR = "void_error";
@ -95,6 +95,8 @@ public class Constant {
public static final String NOVA_SCREEN_POWER_ON = "nova_screen_power_on";// 诺瓦设备截屏 public static final String NOVA_SCREEN_POWER_ON = "nova_screen_power_on";// 诺瓦设备截屏
public static final String NOVA_SCREEN_POWER_CLOSE = "nova_screen_power_close";// 诺瓦设备截屏 public static final String NOVA_SCREEN_POWER_CLOSE = "nova_screen_power_close";// 诺瓦设备截屏
public static final String APP_SEND_PACKAGE_NAME = "action_send_packageName"; public static final String APP_SEND_PACKAGE_NAME = "action_send_packageName";
public static long powOnId = -1;
public static long powOffId = -1;
/** /**
* 后台服务器地址 * 后台服务器地址

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

@ -241,7 +241,7 @@ public class MyApplication extends Application {
String errorLog = StringUtil.strSplice( String errorLog = StringUtil.strSplice(
MyApplication.getInstance().dateTimeFormat.format(new Date(timeMillis)), ":\n", MyApplication.getInstance().dateTimeFormat.format(new Date(timeMillis)), ":\n",
throwable.getMessage(), "\n", sw.toString()); throwable.getMessage(), "\n", sw.toString());
LoggerUtil.e("APP崩溃", errorLog);
LoggerUtil.storeLogSync("APP崩溃", errorLog);
if (isSystemExceptionInternal(throwable)) { if (isSystemExceptionInternal(throwable)) {
try { try {
Thread.sleep(5000); Thread.sleep(5000);
@ -277,7 +277,7 @@ public class MyApplication extends Application {
* 重启软件 * 重启软件
*/ */
public void restartApp() { public void restartApp() {
LoggerUtil.e("MyApplication", "重启软件");
LoggerUtil.storeLogSync("MyApplication", "重启软件");
stopService(new Intent(this, ContainerService.class)); stopService(new Intent(this, ContainerService.class));
stopService(new Intent(this, MessengerService.class)); stopService(new Intent(this, MessengerService.class));
stopService(new Intent(this, CoreService.class)); stopService(new Intent(this, CoreService.class));

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

@ -8,6 +8,7 @@ import android.util.Log;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.sdkapi.api.SdkApi; import com.sdkapi.api.SdkApi;
import com.tclsy.extmanager.power.TPowerManager;
import com.ys.rkapi.MyManager; import com.ys.rkapi.MyManager;
import com.zcapi; import com.zcapi;
@ -265,7 +266,17 @@ public class PowerData extends BaseData {
SignWayUtil.setPowerOnOffTimeFortYs(timeoffArray,timeonArray); SignWayUtil.setPowerOnOffTimeFortYs(timeoffArray,timeonArray);
} }
} }
}else if(Constant.androidBoardType.equals("tcl")){
SignWayUtil.clearPowerOnOffTime();
if(parameterLong > bootLong) {
Constant.powOnId = TPowerManager.getInstance().addAlarm(Integer.parseInt(on2[0]), Integer.parseInt(on2[1]), 127, 0);
Constant.powOffId = TPowerManager.getInstance().addAlarm(Integer.parseInt(off[0]), Integer.parseInt(off[1]), 127, 1);
LoggerUtil.e("PowerData()", "关机时间:"+s + " " + parameter+",开机时间:"+dateFormat.format(currentLong+24*60*60*1000)+" "+bootTime2);
}else {
Constant.powOnId = TPowerManager.getInstance().addAlarm(Integer.parseInt(on[0]), Integer.parseInt(on[1]), 127, 0);
Constant.powOffId = TPowerManager.getInstance().addAlarm(Integer.parseInt(off[0]), Integer.parseInt(off[1]), 127, 1);
LoggerUtil.e("PowerData()", "关机时间:"+s + " " + parameter+",开机时间:"+s + " " + bootTime);
}
}else if(Constant.androidBoardType.equals("smt")){ }else if(Constant.androidBoardType.equals("smt")){
//视美泰 //视美泰
SmdtManagerNew smdt = MyApplication.getInstance().getSmdt(); SmdtManagerNew smdt = MyApplication.getInstance().getSmdt();

57
app/src/main/java/qianmu/container/util/LoggerUtil.java

@ -105,34 +105,39 @@ public class LoggerUtil {
} }
//将日志信息保存至SD卡
//将日志信息保存至SD卡(异步,正常日志使用)
public static synchronized void storeLog(String strModule, String strErrMsg) { public static synchronized void storeLog(String strModule, String strErrMsg) {
Executors.newSingleThreadExecutor().execute(() -> writeLogToFile(strModule, strErrMsg));
}
Executors.newSingleThreadExecutor().execute(() -> {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) return;
File fileDir = new File(SAVE_LOG_DIR_PATH);
// 目录是否已经存在
if (!fileDir.exists() && !fileDir.mkdirs()) {
Log.e(strModule, StringUtil.strSplice("Failed to create directory ", SAVE_LOG_DIR_PATH));
return;
}
String fileName = new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis());
File file = new File(StringUtil.strSplice(SAVE_LOG_DIR_PATH, "/", fileName, ".txt"));
if(5120000L <file.length()) return;
try {
if (!file.exists()) file.createNewFile(); // 判断日志文件是否已经存在
FileOutputStream fos = new FileOutputStream(file, true); // 输出
String data = StringUtil.strSplice(fmt.format(System.currentTimeMillis()), " >>", strModule, "<< ", strErrMsg, "\r");
OutputStreamWriter write = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write(data);
writer.close();
write.close();
fos.close();
} catch (Throwable t) {
LoggerUtil.e("storeLog", StringUtil.getThrowableStr(t));
}
});
//将日志信息同步保存至SD卡(崩溃时使用,确保进程退出前写入完成)
public static synchronized void storeLogSync(String strModule, String strErrMsg) {
writeLogToFile(strModule, strErrMsg);
}
private static void writeLogToFile(String strModule, String strErrMsg) {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) return;
File fileDir = new File(SAVE_LOG_DIR_PATH);
if (!fileDir.exists() && !fileDir.mkdirs()) {
Log.e(strModule, StringUtil.strSplice("Failed to create directory ", SAVE_LOG_DIR_PATH));
return;
}
String fileName = new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis());
File file = new File(StringUtil.strSplice(SAVE_LOG_DIR_PATH, "/", fileName, ".txt"));
if (5120000L < file.length()) return;
try {
if (!file.exists()) file.createNewFile();
FileOutputStream fos = new FileOutputStream(file, true);
String data = StringUtil.strSplice(fmt.format(System.currentTimeMillis()), " >>", strModule, "<< ", strErrMsg, "\r");
OutputStreamWriter write = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter writer = new BufferedWriter(write);
writer.write(data);
writer.close();
write.close();
fos.close();
} catch (Throwable t) {
Log.e("storeLog", t.getMessage());
}
} }

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

@ -312,10 +312,11 @@ public class SignWayUtil {
MyApplication.getInstance().sendBroadcast(intent1); MyApplication.getInstance().sendBroadcast(intent1);
MyApplication.getInstance().sendBroadcast(intent2); MyApplication.getInstance().sendBroadcast(intent2);
}else if(Constant.androidBoardType.equals("tcl")){ }else if(Constant.androidBoardType.equals("tcl")){
// boolean isAlarmEnable = TPowerManager.getInstance().isAlarmEnable();
// if(isAlarmEnable){
// TPowerManager.getInstance().deleteAlarm();
// }
boolean isAlarmEnable = TPowerManager.getInstance().isAlarmEnable();
if(isAlarmEnable && Constant.powOnId != -1){
TPowerManager.getInstance().deleteAlarm(Constant.powOnId);
TPowerManager.getInstance().deleteAlarm(Constant.powOffId);
}
}else if(Constant.androidBoardType.equals("zc")){ }else if(Constant.androidBoardType.equals("zc")){
int[] timeoffArray = {1970, 1, 1, 0, 0}; int[] timeoffArray = {1970, 1, 1, 0, 0};
int[] timeonArray = {1970, 1, 1, 0, 0}; int[] timeonArray = {1970, 1, 1, 0, 0};

Loading…
Cancel
Save