Matthew 1 year ago
commit dd9b18badb

@ -24,6 +24,7 @@ import android.widget.TextView;
import com.dev.devapi.api.SysApi; import com.dev.devapi.api.SysApi;
import com.xypower.common.HotspotManager; import com.xypower.common.HotspotManager;
import com.xypower.common.MicroPhotoContext; import com.xypower.common.MicroPhotoContext;
import com.xypower.mpmaster.sms.DownloadUtils;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -171,6 +172,8 @@ public class MainActivity extends AppCompatActivity {
// SysApi.reboot(MainActivity.this); // SysApi.reboot(MainActivity.this);
DownloadUtils downloadUtils = new DownloadUtils(getApplicationContext(), "http://180.166.218.222:40101/upgrades/20240509_upd_663c857dbfcf7.apk", "test.apk");
} }
}); });

@ -10,6 +10,8 @@ import android.net.Uri;
import android.os.Environment; import android.os.Environment;
import android.widget.Toast; import android.widget.Toast;
import com.dev.devapi.api.SysApi;
import java.io.File; import java.io.File;
public class DownloadUtils { public class DownloadUtils {
@ -83,6 +85,8 @@ public class DownloadUtils {
//下载完成安装APK //下载完成安装APK
// installAPK(); // installAPK();
cursor.close(); cursor.close();
mContext.unregisterReceiver(receiver);
SysApi.installApk(mContext, name, mContext.getPackageName(), true);
break; break;
//下载失败 //下载失败
case DownloadManager.STATUS_FAILED: case DownloadManager.STATUS_FAILED:

@ -57,7 +57,7 @@ public class SimUtil {
String sender = smsInfo.getSender();//收到的短信的手机号 String sender = smsInfo.getSender();//收到的短信的手机号
String sendmessage = "";//要回复的短信 String sendmessage = "";//要回复的短信
String sendtype = "";//收到的短信类型 String sendtype = "";//收到的短信类型
JSONArray jsonArray = new JSONArray();//收到的短信内容拆分包装成数组 List<Integer> abslist = new ArrayList<>();//收到的短信内容拆分包装成数组
boolean ifmessageCorrect = false;//用来判断收到的短信内容是否正确 boolean ifmessageCorrect = false;//用来判断收到的短信内容是否正确
if (StringUtils.isEmpty(content)) { if (StringUtils.isEmpty(content)) {
return; return;
@ -104,14 +104,13 @@ public class SimUtil {
break; break;
} }
times += time * 60; times += time * 60;
jsonArray.put(times); abslist.add(times);
} }
} }
} }
} }
if (ifmessageCorrect) { if (ifmessageCorrect) {
UpdateSysConfigUtil.setAbsHeartbeats(packageName, jsonArray); UpdateSysConfigUtil.setAbsHeartbeats(context, abslist);
} }
} }
} }
@ -127,19 +126,15 @@ public class SimUtil {
sendtype = SmsTypeEnum.SET_YW_SCHEDULE.value(); sendtype = SmsTypeEnum.SET_YW_SCHEDULE.value();
} else if (content.contains(SmsTypeEnum.GET_YW_SCHEDULE.value())) { } else if (content.contains(SmsTypeEnum.GET_YW_SCHEDULE.value())) {
ifmessageCorrect = true; ifmessageCorrect = true;
JSONArray absHeartbeats = UpdateSysConfigUtil.getAbsHeartbeats(packageName); List<Integer> absHeartbeats = UpdateSysConfigUtil.getAbsHeartbeats(context);
if (absHeartbeats == null || absHeartbeats.length() == 0) { if (absHeartbeats == null || absHeartbeats.size() == 0) {
sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=0"; sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=0";
} else { } else {
int length = absHeartbeats.length(); int length = absHeartbeats.size();
sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=" + length; sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=" + length;
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
int mAbsHeartbeatTime = 0; int mAbsHeartbeatTime = 0;
try { mAbsHeartbeatTime = absHeartbeats.get(i);
mAbsHeartbeatTime = absHeartbeats.getInt(i);
} catch (JSONException e) {
throw new RuntimeException(e);
}
int hour = mAbsHeartbeatTime / 3600; int hour = mAbsHeartbeatTime / 3600;
int leftsecond = mAbsHeartbeatTime % 3600; int leftsecond = mAbsHeartbeatTime % 3600;
int minute = leftsecond / 3600; int minute = leftsecond / 3600;
@ -155,7 +150,7 @@ public class SimUtil {
if (integer != null) { if (integer != null) {
if (integer == 0 || integer == 1) { if (integer == 0 || integer == 1) {
ifmessageCorrect = true; ifmessageCorrect = true;
UpdateSysConfigUtil.setMntnMode(packageName, integer); UpdateSysConfigUtil.setMntnMode(context, integer);
} }
} }
} }
@ -169,7 +164,7 @@ public class SimUtil {
} else if (content.contains(SmsTypeEnum.GET_OPERATE.value())) { } else if (content.contains(SmsTypeEnum.GET_OPERATE.value())) {
sendtype = SmsTypeEnum.GET_OPERATE.value(); sendtype = SmsTypeEnum.GET_OPERATE.value();
ifmessageCorrect = true; ifmessageCorrect = true;
int mntnMode = UpdateSysConfigUtil.getMntnMode(packageName); int mntnMode = UpdateSysConfigUtil.getMntnMode(context);
sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnMode; sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnMode;
} else if (content.contains(SmsTypeEnum.SET_OPERATE_URL.value())) { } else if (content.contains(SmsTypeEnum.SET_OPERATE_URL.value())) {
sendtype = SmsTypeEnum.SET_OPERATE_URL.value(); sendtype = SmsTypeEnum.SET_OPERATE_URL.value();
@ -185,7 +180,7 @@ public class SimUtil {
Integer integer = StringUtils.convert2Int(port); Integer integer = StringUtils.convert2Int(port);
if (integer != null) { if (integer != null) {
ifmessageCorrect = true; ifmessageCorrect = true;
UpdateSysConfigUtil.setMntnServer(packageName, ipAddress, integer); UpdateSysConfigUtil.setMntnServer(context, ipAddress, integer);
} }
} }
} }
@ -200,16 +195,67 @@ public class SimUtil {
} else if (content.contains(SmsTypeEnum.GET_OPERATE_URL.value())) { } else if (content.contains(SmsTypeEnum.GET_OPERATE_URL.value())) {
sendtype = SmsTypeEnum.GET_OPERATE.value(); sendtype = SmsTypeEnum.GET_OPERATE.value();
ifmessageCorrect = true; ifmessageCorrect = true;
String mntnServer = UpdateSysConfigUtil.getMntnServer(packageName); String mntnServer = UpdateSysConfigUtil.getMntnServer(context);
sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnServer; sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnServer;
} else if (content.contains(SmsTypeEnum.UPDATE.value())) { } else if (content.contains(SmsTypeEnum.UPDATE.value())) {
sendtype = SmsTypeEnum.UPDATE.value(); sendtype = SmsTypeEnum.UPDATE.value();
String[] split1 = StringUtils.splitString1(content); String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length == 2) { if (split1 != null && split1.length == 2) {
ifmessageCorrect = true; ifmessageCorrect = true;
String s = split1[1]; String s = split1[1];
DownloadUtils downloadUtils = new DownloadUtils(context.getApplicationContext(), s, "test.app");
}
String menssageBack = "";
if (ifmessageCorrect) {
menssageBack = " OK";
} else {
menssageBack = " ERROR";
}
sendmessage = content + menssageBack;
} else if (content.contains(SmsTypeEnum.SET_CMDID.value())) {
sendtype = SmsTypeEnum.SET_CMDID.value();
String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length > 1) {
String cmdid = split1[1];
UpdateSysConfigUtil.setCmdid(context, cmdid);
}
String menssageBack = "";
if (ifmessageCorrect) {
menssageBack = " OK";
} else {
menssageBack = " ERROR";
}
sendmessage = content + menssageBack;
} else if (content.contains(SmsTypeEnum.GET_CMDID.value())) {
sendtype = SmsTypeEnum.GET_CMDID.value();
ifmessageCorrect = true;
String cmdid = UpdateSysConfigUtil.getCmdid(context);
sendmessage = SmsTypeEnum.GET_OPERATE + "=" + cmdid;
} else if (content.contains(SmsTypeEnum.SET_IP.value())) {
sendtype = SmsTypeEnum.SET_IP.value();
String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length > 1) {
String s = split1[1];
String[] split2 = StringUtils.splitString1(s);
if (split2 != null && (split2.length == 2 || split2.length == 4)) {
String server;
Integer integer;
server = split2[0];
String port = split2[1];
integer = StringUtils.convert2Int(port);
int utcp = -1;
int encrypto = -1;
if (integer != null) {
ifmessageCorrect = true;
}
if (split2.length == 4) {
String s1 = split2[2];
utcp = StringUtils.convert2Int(s1);
String s2 = split2[3];
encrypto = StringUtils.convert2Int(s2);
}
UpdateSysConfigUtil.setIP(context, server, integer, utcp, encrypto);
}
} }
String menssageBack = ""; String menssageBack = "";
if (ifmessageCorrect) { if (ifmessageCorrect) {
@ -218,8 +264,61 @@ public class SimUtil {
menssageBack = " ERROR"; menssageBack = " ERROR";
} }
sendmessage = content + menssageBack; sendmessage = content + menssageBack;
} else if (content.contains(SmsTypeEnum.GET_IP.value())) {
sendtype = SmsTypeEnum.GET_IP.value();
ifmessageCorrect = true;
String ip = UpdateSysConfigUtil.getIP(context);
sendmessage = SmsTypeEnum.GET_IP + "=" + ip;
} else if (content.contains(SmsTypeEnum.SET_OSD.value())) {
//TODO 水印功能待开发
sendtype = SmsTypeEnum.SET_OSD.value();
String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length > 1) {
String s = split1[1];
String[] split2 = StringUtils.splitString1(s);
if (split2 != null && split2.length == 2) {
// UpdateSysConfigUtil.setIP(context, server, integer, utcp, encrypto);
}
}
String menssageBack = "";
if (ifmessageCorrect) {
menssageBack = " OK";
} else {
menssageBack = " ERROR";
}
sendmessage = content + menssageBack;
} else if (content.contains(SmsTypeEnum.GET_OSD.value())) {
//TODO 水印功能待开发
sendtype = SmsTypeEnum.GET_OSD.value();
ifmessageCorrect = true;
// String ip = UpdateSysConfigUtil.getIP(context);
// sendmessage = SmsTypeEnum.GET_OSD + "=" + ip;
}else if (content.contains(SmsTypeEnum.SET_PHOTO_SCHEDULE_LIST.value())) {
//TODO 水印功能待开发
sendtype = SmsTypeEnum.SET_OSD.value();
String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length > 1) {
String s = split1[1];
String[] split2 = StringUtils.splitString1(s);
if (split2 != null && split2.length == 2) {
// UpdateSysConfigUtil.setIP(context, server, integer, utcp, encrypto);
}
}
String menssageBack = "";
if (ifmessageCorrect) {
menssageBack = " OK";
} else {
menssageBack = " ERROR";
}
sendmessage = content + menssageBack;
} else if (content.contains(SmsTypeEnum.GET_OSD.value())) {
//TODO 水印功能待开发
sendtype = SmsTypeEnum.GET_OSD.value();
ifmessageCorrect = true;
// String ip = UpdateSysConfigUtil.getIP(context);
// sendmessage = SmsTypeEnum.GET_OSD + "=" + ip;
} }
sendSms(context, slot, sender, sendmessage, sendtype, ifmessageCorrect, jsonArray); sendSms(context, slot, sender, sendmessage, sendtype, ifmessageCorrect);
} }
} }
@ -301,7 +400,7 @@ public class SimUtil {
} }
//指定sim卡位置发送短信 //指定sim卡位置发送短信
public static void sendSms(Context mContext, int slot, String sender, String message, String value, boolean ifmessageCorrect, JSONArray jsonArray) { public static void sendSms(Context mContext, int slot, String sender, String message, String value, boolean ifmessageCorrect) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager localSubscriptionManager = SubscriptionManager.from(mContext); SubscriptionManager localSubscriptionManager = SubscriptionManager.from(mContext);
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
@ -321,7 +420,7 @@ public class SimUtil {
Intent itSend = new Intent(SMS_SEND_ACTION); Intent itSend = new Intent(SMS_SEND_ACTION);
itSend.putExtra(SMSTYPE, value); itSend.putExtra(SMSTYPE, value);
itSend.putExtra(SMSIFCORRECT, ifmessageCorrect); itSend.putExtra(SMSIFCORRECT, ifmessageCorrect);
itSend.putExtra(SMSDATA, (Serializable) jsonArray); // itSend.putExtra(SMSDATA, (Serializable) jsonArray);
//sendIntent参数为传送后接受的广播信息PendingIntent //sendIntent参数为传送后接受的广播信息PendingIntent
PendingIntent sendPI = PendingIntent.getBroadcast(mContext, 0, itSend, 0); PendingIntent sendPI = PendingIntent.getBroadcast(mContext, 0, itSend, 0);

@ -10,10 +10,10 @@ public enum SmsTypeEnum {
GET_OPERATE_URL("yw+at+str53"), //查询运维地址 GET_OPERATE_URL("yw+at+str53"), //查询运维地址
ADB("yw+at+ds"), //开关adb ADB("yw+at+ds"), //开关adb
UPDATE("yw+at+update"), //远程升级 UPDATE("yw+at+update"), //远程升级
READ_CMDID("at+str01"), //读取设备编号 GET_CMDID("at+str01"), //读取设备编号
SET_CMDID("at+stw01"), //设置设备编号 SET_CMDID("at+stw01"), //设置设备编号
SET_IP("at+stw05"), //设置主站IP SET_IP("at+stw05"), //设置主站IP
READ_IP("at+str05"), //读取主站IP端口 GET_IP("at+str05"), //读取主站IP端口
SET_AI("yw+at+stw61"), //设置ai识别是否可用 0是不启用,1是启用 SET_AI("yw+at+stw61"), //设置ai识别是否可用 0是不启用,1是启用
GET_AI("yw+at+stw62"), //查询ai识别是否可用 0是不启用,1是启用 GET_AI("yw+at+stw62"), //查询ai识别是否可用 0是不启用,1是启用
SET_AI_BOARD("yw+at+stw63"), //设置ai画框是否可用 0是不启用,1是启用 SET_AI_BOARD("yw+at+stw63"), //设置ai画框是否可用 0是不启用,1是启用

@ -1,115 +1,119 @@
package com.xypower.mpmaster.sms; package com.xypower.mpmaster.sms;
import android.content.Context;
import android.os.Environment; import android.os.Environment;
import com.xypower.common.JSONUtils; import com.xypower.common.JSONUtils;
import com.xypower.common.MicroPhotoContext;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class UpdateSysConfigUtil { public class UpdateSysConfigUtil {
public static String SysConfigName = "data/Master.json";
//创建运维配置文件文件夹
public static String buildAppDir(String packageurl) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
if (!path.endsWith(File.separator)) {
path += File.separator;
}
path += packageurl + File.separator;
File pathFile = new File(path);
if (!pathFile.exists() && !pathFile.mkdirs()) {
return null;
}
return path;
}
//获取配置文件地址
public static String getAppDir(String packageurl) {
String path = buildAppDir(packageurl);
path += SysConfigName;
return path;
}
//修改运维时间表 //修改运维时间表
public static boolean setAbsHeartbeats(String packageurl, JSONArray jsonArray) { public static void setAbsHeartbeats(Context context, List<Integer> list) {
String path = getAppDir(packageurl); MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
JSONObject jsonObject = JSONUtils.loadJson(path); int[] array = new int[list.size()];
try { if (list != null && list.size() > 0) {
jsonObject.put("absHeartbeats", jsonArray); for (int i = 0; i < list.size(); i++) {
} catch (JSONException e) { array[i] = list.get(i);
throw new RuntimeException(e); }
} }
return JSONUtils.saveJson(path, jsonObject); masterConfig.absHeartbeats = array;
MicroPhotoContext.saveMasterConfig(context, masterConfig);
} }
//获取运维时间表 //获取运维时间表
public static JSONArray getAbsHeartbeats(String packageurl) { public static List getAbsHeartbeats(Context context) {
JSONArray absHeartbeats = new JSONArray(); MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
String path = getAppDir(packageurl); ArrayList<Integer> list = new ArrayList<>();
JSONObject jsonObject = JSONUtils.loadJson(path); int[] absHeartbeats = masterConfig.absHeartbeats;
try { if (absHeartbeats != null && absHeartbeats.length > 0) {
absHeartbeats = jsonObject.getJSONArray("absHeartbeats"); for (int i = 0; i < absHeartbeats.length; i++) {
} catch (JSONException e) { list.add(absHeartbeats[i]);
throw new RuntimeException(e); }
} }
return absHeartbeats; return list;
} }
//修改运维状态 TODO //修改运维状态 TODO
public static boolean setMntnMode(String packageurl, int mntnMode) { public static void setMntnMode(Context context, int mntnMode) {
String path = getAppDir(packageurl); MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
JSONObject jsonObject = JSONUtils.loadJson(path); masterConfig.mntnMode = mntnMode;
try { MicroPhotoContext.saveMasterConfig(context, masterConfig);
jsonObject.put("mntnMode", mntnMode);
} catch (Exception ex) {
ex.printStackTrace();
}
return JSONUtils.saveJson(path, jsonObject);
} }
//查询运维状态 TODO //查询运维状态 TODO
public static int getMntnMode(String packageurl) { public static int getMntnMode(Context context) {
int mntnMode = -1; MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
String path = getAppDir(packageurl); return masterConfig.mntnMode;
JSONObject jsonObject = JSONUtils.loadJson(path);
try {
mntnMode = jsonObject.getInt("mntnMode");
} catch (Exception ex) {
ex.printStackTrace();
}
return mntnMode;
} }
//修改运维状态 TODO //修改运维状态 TODO
public static boolean setMntnServer(String packageurl, String server, int port) { public static void setMntnServer(Context context, String server, int port) {
String path = getAppDir(packageurl); MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
JSONObject jsonObject = JSONUtils.loadJson(path); masterConfig.server = server;
try { masterConfig.port = port;
jsonObject.put("server", server); MicroPhotoContext.saveMasterConfig(context, masterConfig);
jsonObject.put("port", port);
} catch (Exception ex) {
ex.printStackTrace();
}
return JSONUtils.saveJson(path, jsonObject);
} }
//查询运维状态 TODO //查询运维状态 TODO
public static String getMntnServer(String packageurl) { public static String getMntnServer(Context context) {
String server = ""; String server = "";
int port = 0; int port;
String path = getAppDir(packageurl); MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context);
JSONObject jsonObject = JSONUtils.loadJson(path); server = masterConfig.server;
try { port = masterConfig.port;
server = jsonObject.getString("server");
port = jsonObject.getInt("port");
} catch (Exception ex) {
ex.printStackTrace();
}
return server + "," + port; return server + "," + port;
} }
//修改cmdid TODO
public static void setCmdid(Context context, String cmdid) {
MicroPhotoContext.AppConfig mpAppConfig = MicroPhotoContext.getMpAppConfig(context);
mpAppConfig.cmdid = cmdid;
MicroPhotoContext.saveMpAppConfig(context, mpAppConfig);
}
//查询cmdid TODO
public static String getCmdid(Context context) {
MicroPhotoContext.AppConfig mpAppConfig = MicroPhotoContext.getMpAppConfig(context);
return mpAppConfig.cmdid;
}
//修改app的ip TODO
public static void setIP(Context context, String server, int port, int utcp, int encrypto) {
MicroPhotoContext.AppConfig mpAppConfig = MicroPhotoContext.getMpAppConfig(context);
mpAppConfig.server = server;
mpAppConfig.port = port;
if (utcp != -1) {
mpAppConfig.networkProtocol = utcp;
}
if (encrypto != -1) {
mpAppConfig.encryption = encrypto;
}
MicroPhotoContext.saveMpAppConfig(context, mpAppConfig);
}
//查询cmdid TODO
public static String getIP(Context context) {
MicroPhotoContext.AppConfig mpAppConfig = MicroPhotoContext.getMpAppConfig(context);
String server = mpAppConfig.server;
int port = mpAppConfig.port;
int networkProtocol = mpAppConfig.networkProtocol;
int encryption = mpAppConfig.encryption;
return server + "," + port + "," + networkProtocol + "," + encryption;
}
} }

Loading…
Cancel
Save