Matthew 1 year ago
commit dd9b18badb

@ -24,6 +24,7 @@ import android.widget.TextView;
import com.dev.devapi.api.SysApi;
import com.xypower.common.HotspotManager;
import com.xypower.common.MicroPhotoContext;
import com.xypower.mpmaster.sms.DownloadUtils;
import java.io.IOException;
import java.text.SimpleDateFormat;
@ -171,6 +172,8 @@ public class MainActivity extends AppCompatActivity {
// 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.widget.Toast;
import com.dev.devapi.api.SysApi;
import java.io.File;
public class DownloadUtils {
@ -83,6 +85,8 @@ public class DownloadUtils {
//下载完成安装APK
// installAPK();
cursor.close();
mContext.unregisterReceiver(receiver);
SysApi.installApk(mContext, name, mContext.getPackageName(), true);
break;
//下载失败
case DownloadManager.STATUS_FAILED:

@ -57,7 +57,7 @@ public class SimUtil {
String sender = smsInfo.getSender();//收到的短信的手机号
String sendmessage = "";//要回复的短信
String sendtype = "";//收到的短信类型
JSONArray jsonArray = new JSONArray();//收到的短信内容拆分包装成数组
List<Integer> abslist = new ArrayList<>();//收到的短信内容拆分包装成数组
boolean ifmessageCorrect = false;//用来判断收到的短信内容是否正确
if (StringUtils.isEmpty(content)) {
return;
@ -104,14 +104,13 @@ public class SimUtil {
break;
}
times += time * 60;
jsonArray.put(times);
abslist.add(times);
}
}
}
}
if (ifmessageCorrect) {
UpdateSysConfigUtil.setAbsHeartbeats(packageName, jsonArray);
UpdateSysConfigUtil.setAbsHeartbeats(context, abslist);
}
}
}
@ -127,19 +126,15 @@ public class SimUtil {
sendtype = SmsTypeEnum.SET_YW_SCHEDULE.value();
} else if (content.contains(SmsTypeEnum.GET_YW_SCHEDULE.value())) {
ifmessageCorrect = true;
JSONArray absHeartbeats = UpdateSysConfigUtil.getAbsHeartbeats(packageName);
if (absHeartbeats == null || absHeartbeats.length() == 0) {
List<Integer> absHeartbeats = UpdateSysConfigUtil.getAbsHeartbeats(context);
if (absHeartbeats == null || absHeartbeats.size() == 0) {
sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=0";
} else {
int length = absHeartbeats.length();
int length = absHeartbeats.size();
sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=" + length;
for (int i = 0; i < length; i++) {
int mAbsHeartbeatTime = 0;
try {
mAbsHeartbeatTime = absHeartbeats.getInt(i);
} catch (JSONException e) {
throw new RuntimeException(e);
}
mAbsHeartbeatTime = absHeartbeats.get(i);
int hour = mAbsHeartbeatTime / 3600;
int leftsecond = mAbsHeartbeatTime % 3600;
int minute = leftsecond / 3600;
@ -155,7 +150,7 @@ public class SimUtil {
if (integer != null) {
if (integer == 0 || integer == 1) {
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())) {
sendtype = SmsTypeEnum.GET_OPERATE.value();
ifmessageCorrect = true;
int mntnMode = UpdateSysConfigUtil.getMntnMode(packageName);
int mntnMode = UpdateSysConfigUtil.getMntnMode(context);
sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnMode;
} else if (content.contains(SmsTypeEnum.SET_OPERATE_URL.value())) {
sendtype = SmsTypeEnum.SET_OPERATE_URL.value();
@ -185,7 +180,7 @@ public class SimUtil {
Integer integer = StringUtils.convert2Int(port);
if (integer != null) {
ifmessageCorrect = true;
UpdateSysConfigUtil.setMntnServer(packageName, ipAddress, integer);
UpdateSysConfigUtil.setMntnServer(context, ipAddress, integer);
}
}
}
@ -200,16 +195,15 @@ public class SimUtil {
} else if (content.contains(SmsTypeEnum.GET_OPERATE_URL.value())) {
sendtype = SmsTypeEnum.GET_OPERATE.value();
ifmessageCorrect = true;
String mntnServer = UpdateSysConfigUtil.getMntnServer(packageName);
String mntnServer = UpdateSysConfigUtil.getMntnServer(context);
sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnServer;
} else if (content.contains(SmsTypeEnum.UPDATE.value())) {
sendtype = SmsTypeEnum.UPDATE.value();
String[] split1 = StringUtils.splitString1(content);
if (split1 != null && split1.length == 2) {
ifmessageCorrect = true;
String s = split1[1];
DownloadUtils downloadUtils = new DownloadUtils(context.getApplicationContext(), s, "test.app");
}
String menssageBack = "";
if (ifmessageCorrect) {
@ -218,8 +212,113 @@ public class SimUtil {
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 = "";
if (ifmessageCorrect) {
menssageBack = " OK";
} else {
menssageBack = " ERROR";
}
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卡位置发送短信
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) {
SubscriptionManager localSubscriptionManager = SubscriptionManager.from(mContext);
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);
itSend.putExtra(SMSTYPE, value);
itSend.putExtra(SMSIFCORRECT, ifmessageCorrect);
itSend.putExtra(SMSDATA, (Serializable) jsonArray);
// itSend.putExtra(SMSDATA, (Serializable) jsonArray);
//sendIntent参数为传送后接受的广播信息PendingIntent
PendingIntent sendPI = PendingIntent.getBroadcast(mContext, 0, itSend, 0);

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

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