diff --git a/common/src/main/java/com/xypower/common/RegexUtil.java b/common/src/main/java/com/xypower/common/RegexUtil.java new file mode 100644 index 00000000..98535f00 --- /dev/null +++ b/common/src/main/java/com/xypower/common/RegexUtil.java @@ -0,0 +1,152 @@ +package com.xypower.common; + +import java.util.regex.Pattern; + +public final class RegexUtil { + + /** + * 验证Email + * + * @param email email地址,格式:zhangsan@sina.com,zhangsan@xxx.com.cn,xxx代表邮件服务商 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkEmail(String email) { + String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?"; + return Pattern.matches(regex, email); + } + + /** + * 验证身份证号码 + * + * @param idCard 居民身份证号码15位或18位,最后一位可能是数字或字母 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkIdCard(String idCard) { + String regex = "[1-9]\\d{13,16}[a-zA-Z0-9]{1}"; + return Pattern.matches(regex, idCard); + } + + /** + * 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港)) + * + * @param mobile 移动、联通、电信运营商的号码段 + *

移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡) + * 、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)

+ *

联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)

+ *

电信的号段:133、153、180(未启用)、189

+ * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkMobile(String mobile) { + String regex = "(\\+\\d+)?1[3458]\\d{9}$"; + return Pattern.matches(regex, mobile); + } + + /** + * 验证固定电话号码 + * + * @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447 + *

国家(地区) 代码 :标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字, + * 数字之后是空格分隔的国家(地区)代码。

+ *

区号(城市代码):这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号—— + * 对不使用地区或城市代码的国家(地区),则省略该组件。

+ *

电话号码:这包含从 0 到 9 的一个或多个数字

+ * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkPhone(String phone) { + String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$"; + return Pattern.matches(regex, phone); + } + + /** + * 验证整数(正整数和负整数) + * + * @param digit 一位或多位0-9之间的整数 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkDigit(String digit) { + String regex = "\\-?[1-9]\\d+"; + return Pattern.matches(regex, digit); + } + + /** + * 验证整数和浮点数(正负整数和正负浮点数) + * + * @param decimals 一位或多位0-9之间的浮点数,如:1.23,233.30 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkDecimals(String decimals) { + String regex = "\\-?[1-9]\\d+(\\.\\d+)?"; + return Pattern.matches(regex, decimals); + } + + /** + * 验证空白字符 + * + * @param blankSpace 空白字符,包括:空格、\t、\n、\r、\f、\x0B + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkBlankSpace(String blankSpace) { + String regex = "\\s+"; + return Pattern.matches(regex, blankSpace); + } + + /** + * 验证中文 + * + * @param chinese 中文字符 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkChinese(String chinese) { + String regex = "^[\u4E00-\u9FA5]+$"; + return Pattern.matches(regex, chinese); + } + + /** + * 验证日期(年月日) + * + * @param birthday 日期,格式:1992-09-03,或1992.09.03 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkBirthday(String birthday) { + String regex = "[1-9]{4}([-./])\\d{1,2}\\1\\d{1,2}"; + return Pattern.matches(regex, birthday); + } + + /** + * 验证URL地址 + * + * @param url 格式:http://blog.csdn.net:80/xyang81/article/details/7705960? 或 http://www.csdn.net:80 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkURL(String url) { + String regex = "(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?"; + return Pattern.matches(regex, url); + } + + /** + * 匹配中国邮政编码 + * + * @param postcode 邮政编码 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkPostcode(String postcode) { + String regex = "[1-9]\\d{5}"; + return Pattern.matches(regex, postcode); + } + + /** + * 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小) + * + * @param ipAddress IPv4标准地址 + * @return 验证成功返回true,验证失败返回false + */ + public static boolean checkIpAddress(String ipAddress) { + if (ipAddress != null) { + String regex = "[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))"; + return Pattern.matches(regex, ipAddress); + } else { + return false; + } + } + +} diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java index 58fca929..56b297c7 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java @@ -25,6 +25,7 @@ import com.dev.devapi.api.SysApi; import com.xypower.common.HotspotManager; import com.xypower.common.MicroPhotoContext; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; @@ -168,7 +169,8 @@ public class MainActivity extends AppCompatActivity { // } // }); - SysApi.reboot(MainActivity.this); +// SysApi.reboot(MainActivity.this); + } }); @@ -181,7 +183,6 @@ public class MainActivity extends AppCompatActivity { startMicroPhotoService(getApplicationContext()); } - private void requestPermissions() { String[] accessPermissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.FOREGROUND_SERVICE, Manifest.permission.READ_PHONE_STATE, /*Manifest.permission.PACKAGE_USAGE_STATS,*/ diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadFileTask.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadFileTask.java new file mode 100644 index 00000000..baba85ed --- /dev/null +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadFileTask.java @@ -0,0 +1,75 @@ +package com.xypower.mpmaster.sms; + +import android.content.Context; +import android.os.AsyncTask; +import android.os.Environment; + +import java.io.BufferedInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; + +public class DownloadFileTask extends AsyncTask { + + private Context mContext; + + public DownloadFileTask(Context context) { + mContext = context; + } + + @Override + protected String doInBackground(String... params) { + String fileUrl = params[0]; + String fileName = params[1]; + try { + URL url = new URL(fileUrl); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.connect(); + + // 获取文件大小 + int fileLength = connection.getContentLength(); + + // 创建输入流 + InputStream input = new BufferedInputStream(url.openStream()); + + // 创建输出流 + OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + fileName); + + byte[] data = new byte[1024]; + int total = 0; + int count; + while ((count = input.read(data)) != -1) { + total += count; + // 发布进度信息 + publishProgress((int) (total * 100 / fileLength)); + output.write(data, 0, count); + } + + // 关闭流 + output.flush(); + output.close(); + input.close(); + } catch (Exception e) { + e.printStackTrace(); + return "下载失败"; + } + return "下载成功"; + } + + @Override + protected void onPostExecute(String result) { + + + + +// Toast.makeText(mContext, result, Toast.LENGTH_SHORT).show(); + } + + @Override + protected void onProgressUpdate(Integer... progress) { + // 更新下载进度 +// Log.d("Download progress", progress[0] + "%"); + } +} diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadUtils.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadUtils.java new file mode 100644 index 00000000..004133fa --- /dev/null +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/DownloadUtils.java @@ -0,0 +1,126 @@ +package com.xypower.mpmaster.sms; + +import android.app.DownloadManager; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.database.Cursor; +import android.net.Uri; +import android.os.Environment; +import android.widget.Toast; + +import java.io.File; + +public class DownloadUtils { + //下载器 + private DownloadManager downloadManager; + private Context mContext; + //下载的ID + private long downloadId; + private String name; + private String pathstr; + + public DownloadUtils(Context context, String url, String name) { + this.mContext = context; + downloadAPK(url, name); + this.name = name; + } + + //下载apk + private void downloadAPK(String url, String name) { + //创建下载任务 + DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); + //移动网络情况下是否允许漫游 + request.setAllowedOverRoaming(true); + //在通知栏中显示,默认就是显示的 + request.setVisibleInDownloadsUi(false); + + //设置下载的路径 + File file = new File(mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), name); + request.setDestinationUri(Uri.fromFile(file)); + pathstr = file.getAbsolutePath(); + //获取DownloadManager + if (downloadManager == null) + downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); + //将下载请求加入下载队列,加入下载队列后会给该任务返回一个long型的id,通过该id可以取消任务,重启任务、获取下载的文件等等 + if (downloadManager != null) { + downloadId = downloadManager.enqueue(request); + } + + //注册广播接收者,监听下载状态 + mContext.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); + } + + //广播监听下载的各个状态 + private BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + checkStatus(); + } + }; + + //检查下载状态 + private void checkStatus() { + DownloadManager.Query query = new DownloadManager.Query(); + //通过下载的id查找 + query.setFilterById(downloadId); + Cursor cursor = downloadManager.query(query); + if (cursor.moveToFirst()) { + int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)); + switch (status) { + //下载暂停 + case DownloadManager.STATUS_PAUSED: + break; + //下载延迟 + case DownloadManager.STATUS_PENDING: + break; + //正在下载 + case DownloadManager.STATUS_RUNNING: + break; + //下载完成 + case DownloadManager.STATUS_SUCCESSFUL: + //下载完成安装APK +// installAPK(); + cursor.close(); + break; + //下载失败 + case DownloadManager.STATUS_FAILED: + Toast.makeText(mContext, "下载失败", Toast.LENGTH_SHORT).show(); + cursor.close(); + mContext.unregisterReceiver(receiver); + break; + } + } + } + +// private void installAPK() { +// setPermission(pathstr); +// Intent intent = new Intent(Intent.ACTION_VIEW); +// // 由于没有在Activity环境下启动Activity,设置下面的标签 +// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); +// //Android 7.0以上要使用FileProvider +// if (Build.VERSION.SDK_INT >= 24) { +// File file = (new File(pathstr)); +// //参数1 上下文, 参数2 Provider主机地址 和配置文件中保持一致 参数3 共享的文件 +// Uri apkUri = FileProvider.getUriForFile(mContext, "com.lxtwsw.weather.fileprovider", file); +// //添加这一句表示对目标应用临时授权该Uri所代表的文件 +// intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); +// intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); +// } else { +// intent.setDataAndType(Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, name)), "application/vnd.android.package-archive"); +// } +// mContext.startActivity(intent); +// } + + //修改文件权限 +// private void setPermission(String absolutePath) { +// String command = "chmod " + "777" + " " + absolutePath; +// Runtime runtime = Runtime.getRuntime(); +// try { +// runtime.exec(command); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +} diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java index 658a73ba..abbe452b 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java @@ -16,8 +16,14 @@ import android.text.TextUtils; import androidx.core.app.ActivityCompat; +import com.dev.devapi.api.SysApi; +import com.xypower.common.RegexUtil; + import org.json.JSONArray; +import org.json.JSONException; +import java.io.IOException; +import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -37,63 +43,185 @@ public class SimUtil { //自定义ACTION常数 作为广播的IntentFilter识别常数 public static String SMS_SEND_ACTION = "com.xypower.mpmaster.SMS_SEND_ACTION"; public static String SMSTYPE = "smstype"; + public static String SMSDATA = "smsdata"; + + public static String SMSIFCORRECT = "smsifcorrect"; //短信解析 public static void analysisSMSInfo(Intent intent, Context context) { SmsMessageModel smsInfo = getSMSInfo(intent); if (smsInfo != null) { + String packageName = context.getApplicationContext().getPackageName(); String content = smsInfo.getContent(); - int slot = smsInfo.getSlot(); - String sender = smsInfo.getSender(); - String sendmessage = ""; - String sendtype = ""; + int slot = smsInfo.getSlot();//那张卡收到的短信 + String sender = smsInfo.getSender();//收到的短信的手机号 + String sendmessage = "";//要回复的短信 + String sendtype = "";//收到的短信类型 + JSONArray jsonArray = new JSONArray();//收到的短信内容拆分包装成数组 + boolean ifmessageCorrect = false;//用来判断收到的短信内容是否正确 if (StringUtils.isEmpty(content)) { return; } if (content.contains(SmsTypeEnum.REBOOT1.value())) { + ifmessageCorrect = true; sendmessage = content + " OK"; sendtype = SmsTypeEnum.REBOOT1.value(); } else if (content.contains(SmsTypeEnum.REBOOT2.value())) { + ifmessageCorrect = true; sendmessage = content + " OK"; sendtype = SmsTypeEnum.REBOOT2.value(); } else if (content.contains(SmsTypeEnum.SET_YW_SCHEDULE.value())) { - String packageName = context.getApplicationContext().getPackageName(); String[] split1 = StringUtils.splitString1(content); if (split1 != null && split1.length > 1) { String s = split1[1]; String[] split2 = StringUtils.splitString2(s); if (split2 != null && split2.length >= 1) { - String num = split2[0]; - Integer integer = StringUtils.convert2Int(num); - if (integer != null) { - if (integer == 0) {//删除所有运维 - UpdateSysConfigUtil.updateAbsHeartbeats(packageName, new JSONArray()); - } else { - JSONArray jsonArray = new JSONArray(); - int times = 0; - for (int i = 0; i < split2.length; i++) { - if (i == 0) { - continue; - } - String ts = split2[i]; - Integer time = StringUtils.convert2Int(ts); - if (i % 2 == 1) { - time = 0; - times = time * 3600; - } else { - times += time * 60; - jsonArray.put(times); + int length = split2.length; + if (length % 2 == 1) { + String num = split2[0]; + Integer integer = StringUtils.convert2Int(num); + if (integer != null) { + if (integer == 0) {//删除所有运维 + ifmessageCorrect = true; + } else { + if (length == integer + 1) { + int times = 0; + for (int i = 0; i < split2.length; i++) { + if (i == 0) { + continue; + } + String ts = split2[i]; + Integer time = StringUtils.convert2Int(ts); + if (i % 2 == 1) { + if (time > 23) { + ifmessageCorrect = false; + break; + } + times = time * 3600; + } else { + if (time > 59) { + ifmessageCorrect = false; + break; + } + times += time * 60; + jsonArray.put(times); + } + } + } } + if (ifmessageCorrect) { + UpdateSysConfigUtil.setAbsHeartbeats(packageName, jsonArray); + } } } } } - sendmessage = content + " OK"; - sendtype = SmsTypeEnum.REBOOT2.value(); + String menssageBack = ""; + if (ifmessageCorrect) { + menssageBack = " OK"; + } else { + menssageBack = " ERROR"; + } + sendmessage = content + menssageBack; + 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) { + sendmessage = SmsTypeEnum.GET_YW_SCHEDULE.value() + "=0"; + } else { + int length = absHeartbeats.length(); + 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); + } + int hour = mAbsHeartbeatTime / 3600; + int leftsecond = mAbsHeartbeatTime % 3600; + int minute = leftsecond / 3600; + sendmessage += "," + hour + "," + minute; + } + } + } else if (content.contains(SmsTypeEnum.SET_OPERATE.value())) { + sendtype = SmsTypeEnum.SET_OPERATE.value(); + String[] split1 = StringUtils.splitString1(content); + if (split1 != null && split1.length > 1) { + String s = split1[1]; + Integer integer = StringUtils.convert2Int(s); + if (integer != null) { + if (integer == 0 || integer == 1) { + ifmessageCorrect = true; + UpdateSysConfigUtil.setMntnMode(packageName, integer); + } + } + } + String menssageBack = ""; + if (ifmessageCorrect) { + menssageBack = " OK"; + } else { + menssageBack = " ERROR"; + } + sendmessage = content + menssageBack; + } else if (content.contains(SmsTypeEnum.GET_OPERATE.value())) { + sendtype = SmsTypeEnum.GET_OPERATE.value(); + ifmessageCorrect = true; + int mntnMode = UpdateSysConfigUtil.getMntnMode(packageName); + sendmessage = SmsTypeEnum.GET_OPERATE + "=" + mntnMode; + } else if (content.contains(SmsTypeEnum.SET_OPERATE_URL.value())) { + sendtype = SmsTypeEnum.SET_OPERATE_URL.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) { + String ipAddress = split2[0]; + String port = split2[1]; + boolean b = RegexUtil.checkIpAddress(ipAddress); + if (b) { + Integer integer = StringUtils.convert2Int(port); + if (integer != null) { + ifmessageCorrect = true; + UpdateSysConfigUtil.setMntnServer(packageName, ipAddress, integer); + } + } + } + } + String menssageBack = ""; + if (ifmessageCorrect) { + menssageBack = " OK"; + } else { + menssageBack = " ERROR"; + } + sendmessage = content + menssageBack; + } else if (content.contains(SmsTypeEnum.GET_OPERATE_URL.value())) { + sendtype = SmsTypeEnum.GET_OPERATE.value(); + ifmessageCorrect = true; + String mntnServer = UpdateSysConfigUtil.getMntnServer(packageName); + 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]; + + } + String menssageBack = ""; + if (ifmessageCorrect) { + menssageBack = " OK"; + } else { + menssageBack = " ERROR"; + } + sendmessage = content + menssageBack; } - sendSms(context, slot, sender, sendmessage, sendtype); + sendSms(context, slot, sender, sendmessage, sendtype, ifmessageCorrect, jsonArray); } + } //短信解析 @@ -173,7 +301,7 @@ public class SimUtil { } //指定sim卡位置发送短信 - public static void sendSms(Context mContext, int slot, String sender, String message, String value) { + public static void sendSms(Context mContext, int slot, String sender, String message, String value, boolean ifmessageCorrect, JSONArray jsonArray) { 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) { @@ -192,6 +320,8 @@ public class SimUtil { } Intent itSend = new Intent(SMS_SEND_ACTION); itSend.putExtra(SMSTYPE, value); + itSend.putExtra(SMSIFCORRECT, ifmessageCorrect); + itSend.putExtra(SMSDATA, (Serializable) jsonArray); //sendIntent参数为传送后接受的广播信息PendingIntent PendingIntent sendPI = PendingIntent.getBroadcast(mContext, 0, itSend, 0); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java index c376045a..e62177bc 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java @@ -1,12 +1,14 @@ package com.xypower.mpmaster.sms; +import android.app.DownloadManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.os.Bundle; import com.dev.devapi.api.SysApi; +import org.json.JSONArray; + /** * 短信发送的监听广播 @@ -22,7 +24,18 @@ public class SmsSendReceiver extends BroadcastReceiver { String type = intent.getStringExtra(SimUtil.SMSTYPE); if (type.contains(SmsTypeEnum.REBOOT1.value())) { SysApi.reboot(context); + } else if (type.contains(SmsTypeEnum.REBOOT2.value())) { + SysApi.reboot(context); + } + +// else if (type.contains(SmsTypeEnum.SET_YW_SCHEDULE.value())) { +// if (jsonArray != null) { +// String packageName = context.getApplicationContext().getPackageName(); +// UpdateSysConfigUtil.setAbsHeartbeats(packageName, jsonArray); +// } +// } + } } diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java index acabc4c7..170be531 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java @@ -4,8 +4,10 @@ public enum SmsTypeEnum { REBOOT1("yw+at+stw21"), REBOOT2("at+stw21"), //重启命令 SET_YW_SCHEDULE("yw+at+stw51"), //拍照时间表设置 GET_YW_SCHEDULE("yw+at+str51"), //查询拍照时间表 - OPERATE("yw+at+stw52"), //运维开关 - OPERATE_URL("yw+at+stw53"), //运维地址 + SET_OPERATE("yw+at+stw52"), //设置运维开关 + GET_OPERATE("yw+at+str52"), //查询运维开关 + SET_OPERATE_URL("yw+at+stw53"), //设置运维地址 + GET_OPERATE_URL("yw+at+str53"), //查询运维地址 ADB("yw+at+ds"), //开关adb UPDATE("yw+at+update"), //远程升级 READ_CMDID("at+str01"), //读取设备编号 diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java index 2d02b552..10739fc4 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java @@ -1,8 +1,6 @@ package com.xypower.mpmaster.sms; -import android.content.Context; import android.os.Environment; -import android.text.TextUtils; import com.xypower.common.JSONUtils; @@ -38,7 +36,7 @@ public class UpdateSysConfigUtil { } //修改运维时间表 - public static boolean updateAbsHeartbeats(String packageurl, JSONArray jsonArray) { + public static boolean setAbsHeartbeats(String packageurl, JSONArray jsonArray) { String path = getAppDir(packageurl); JSONObject jsonObject = JSONUtils.loadJson(path); try { @@ -49,28 +47,69 @@ public class UpdateSysConfigUtil { return JSONUtils.saveJson(path, jsonObject); } - //修改运维状态 TODO - public boolean updateMntn(String packageurl, String url) { - if (TextUtils.isEmpty(url)) { - return false; + //获取运维时间表 + 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); } + return absHeartbeats; + } + + //修改运维状态 TODO + public static boolean setMntnMode(String packageurl, int mntnMode) { String path = getAppDir(packageurl); JSONObject jsonObject = JSONUtils.loadJson(path); - String oldUrl = null; try { - oldUrl = jsonObject.getString("url"); + jsonObject.put("mntnMode", mntnMode); } catch (Exception ex) { ex.printStackTrace(); } - if (TextUtils.equals(url, oldUrl)) { - return true; + return JSONUtils.saveJson(path, jsonObject); + } + + //查询运维状态 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; + } + //修改运维状态 TODO + public static boolean setMntnServer(String packageurl, String server, int port) { + String path = getAppDir(packageurl); + JSONObject jsonObject = JSONUtils.loadJson(path); try { - jsonObject.put("url", url); + jsonObject.put("server", server); + jsonObject.put("port", port); } catch (Exception ex) { ex.printStackTrace(); } return JSONUtils.saveJson(path, jsonObject); } + + //查询运维状态 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(); + } + return server + "," + port; + } }