运维时间表功能修改

serial
liuguijing 1 year ago
parent fe4a2ae765
commit 8360785f2f

@ -1,4 +1,4 @@
package com.xypower.mpmaster;
package com.xypower.common;
import android.Manifest;
import android.content.Context;

@ -133,33 +133,35 @@ public class MainActivity extends AppCompatActivity {
public void onClick(View view) {
// boolean gpsEnabled = LocationUtil.isGpsEnabled(MainActivity.this);
// System.out.printf("g" + gpsEnabled);
LocationUtil.register(MainActivity.this, 0, 0, new LocationUtil.OnLocationChangeListener() {
@Override
public void getLastKnownLocation(Location location) {
Log.e("xyh", "onLocationChanged: " + location.getLatitude());
}
@Override
public void onLocationChanged(Location location) {
//位置信息变化时触发
Log.e("xyh", "定位方式:" + location.getProvider());
Log.e("xyh", "纬度:" + location.getLatitude());
Log.e("xyh", "经度:" + location.getLongitude());
Log.e("xyh", "海拔:" + location.getAltitude());
Log.e("xyh", "时间:" + location.getTime());
Log.e("xyh", "国家:" + LocationUtil.getCountryName(MainActivity.this, location.getLatitude(), location.getLongitude()));
Log.e("xyh", "获取地理位置:" + LocationUtil.getAddress(MainActivity.this, location.getLatitude(), location.getLongitude()));
Log.e("xyh", "所在地:" + LocationUtil.getLocality(MainActivity.this, location.getLatitude(), location.getLongitude()));
Log.e("xyh", "所在街道:" + LocationUtil.getStreet(MainActivity.this, location.getLatitude(), location.getLongitude()));
LocationUtil.unregister();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
System.out.println("dfsad");
}
});
// LocationUtil.register(MainActivity.this, 0, 0, new LocationUtil.OnLocationChangeListener() {
// @Override
// public void getLastKnownLocation(Location location) {
// Log.e("xyh", "onLocationChanged: " + location.getLatitude());
// }
//
// @Override
// public void onLocationChanged(Location location) {
// //位置信息变化时触发
// Log.e("xyh", "定位方式:" + location.getProvider());
// Log.e("xyh", "纬度:" + location.getLatitude());
// Log.e("xyh", "经度:" + location.getLongitude());
// Log.e("xyh", "海拔:" + location.getAltitude());
// Log.e("xyh", "时间:" + location.getTime());
// Log.e("xyh", "国家:" + LocationUtil.getCountryName(MainActivity.this, location.getLatitude(), location.getLongitude()));
// Log.e("xyh", "获取地理位置:" + LocationUtil.getAddress(MainActivity.this, location.getLatitude(), location.getLongitude()));
// Log.e("xyh", "所在地:" + LocationUtil.getLocality(MainActivity.this, location.getLatitude(), location.getLongitude()));
// Log.e("xyh", "所在街道:" + LocationUtil.getStreet(MainActivity.this, location.getLatitude(), location.getLongitude()));
// LocationUtil.unregister();
//
// }
//
// @Override
// public void onStatusChanged(String provider, int status, Bundle extras) {
// System.out.println("dfsad");
// }
// });
SysApi.reboot(MainActivity.this);
}
});

@ -42,6 +42,10 @@ import com.xypower.mpmaster.sms.SmsSendReceiver;
import org.json.JSONObject;
import java.io.File;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -83,6 +87,7 @@ public class MpMasterService extends Service {
public static final int CONNECTED = 10;
public static final int NOT_CONNECTED = 0;
}
private static int mStateService = STATE_SERVICE.NOT_CONNECTED;
private boolean mMntnMode = false;
@ -120,6 +125,7 @@ public class MpMasterService extends Service {
public MpMasterService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
@ -226,7 +232,7 @@ public class MpMasterService extends Service {
mSmsSnedReceiver = new SmsSendReceiver();
IntentFilter intentFilter;
intentFilter = new IntentFilter(SimUtil.SMS_SEND_ACTION);
registerReceiver(mSmsSnedReceiver,intentFilter);
registerReceiver(mSmsSnedReceiver, intentFilter);
// AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
@ -294,8 +300,7 @@ public class MpMasterService extends Service {
}
private void loadIccid() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1)
{
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
try {
SubscriptionManager sm = SubscriptionManager.from(this);
List<SubscriptionInfo> sis = sm.getActiveSubscriptionInfoList();
@ -410,8 +415,7 @@ public class MpMasterService extends Service {
MicroPhotoContext.saveMasterConfig(getApplicationContext(), masterConfig);
logger.warning("MNTN Mode Changed from " + convertSwitch(oldMntnMode) + " to " + convertSwitch(mntnMode)
+ " Quick Heartbeat from" + convertSwitch(oldQuickHbMode) + " to " + convertSwitch(quickHbMode));
logger.warning("MNTN Mode Changed from " + convertSwitch(oldMntnMode) + " to " + convertSwitch(mntnMode) + " Quick Heartbeat from" + convertSwitch(oldQuickHbMode) + " to " + convertSwitch(quickHbMode));
}
if (oldQuickHbMode != quickHbMode) {
@ -442,12 +446,15 @@ public class MpMasterService extends Service {
public static class AlarmReceiver extends BroadcastReceiver {
private MpMasterService mService;
public AlarmReceiver() {
mService = null;
}
public AlarmReceiver(MpMasterService service) {
mService = service;
}
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (TextUtils.equals(ACTION_HEARTBEAT, action)) {
@ -480,24 +487,15 @@ public class MpMasterService extends Service {
String cmd = intent.getStringExtra("cmd");
String msg = intent.getStringExtra("msg");
// Log.e("_otg_","cmd="+cmd);
if("write".equals(cmd))
{
if ("write".equals(cmd)) {
// int progress = Integer.parseInt(msg);
}
else if("update".equals(cmd))
{
} else if ("update".equals(cmd)) {
// int progress = Integer.parseInt(msg);
}
else if("info".equals(cmd))
{
} else if ("info".equals(cmd)) {
}
else if("error".equals(cmd))
{
} else if ("error".equals(cmd)) {
mService.logger.warning("UPD OTA Failed");
}
else if("success".equals(cmd))
{
} else if ("success".equals(cmd)) {
//confirm to reboot device ??
mService.logger.warning("UPD OTA Succeeded, will RESET dev");
Handler handler = new Handler();
@ -528,11 +526,45 @@ public class MpMasterService extends Service {
long timeout = mHeartbeatDuration;
if (mMntnMode && mQuickHbMode) {
timeout = mQuickHeartbeatDuration;
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
} else {
long closestTime = 0;
if (mAbsHeartbeatTimes != null && mAbsHeartbeatTimes.length > 0) {
long currentTimeMillis = System.currentTimeMillis();
long heartTimeMills = currentTimeMillis + timeout * 1000;
Arrays.sort(mAbsHeartbeatTimes);
for (int i = 0; i < mAbsHeartbeatTimes.length; i++) {
int mAbsHeartbeatTime = mAbsHeartbeatTimes[i];
int hour = mAbsHeartbeatTime / 3600;
int leftsecond = mAbsHeartbeatTime % 3600;
int minute = leftsecond / 3600;
if (hour >= 24) {
return;
}
//设置提醒时间
Calendar calendar = Calendar.getInstance();
//这里时区需要设置一下不然会有8个小时的时间差
calendar.setTimeZone(TimeZone.getTimeZone("GMT+8"));
//设置每天为1350点提醒
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
long selecttime = calendar.getTimeInMillis();
if (selecttime > currentTimeMillis && selecttime < heartTimeMills) {
closestTime = selecttime;
break;
} else {
if (i == (mAbsHeartbeatTimes.length - 1)) {
closestTime = heartTimeMills;
}
}
}
}
if (closestTime > 0) {
registerAbsHeartbeatTimer(closestTime);
}
}
registerHeartbeatTimer(SystemClock.elapsedRealtime() + timeout * 1000);
}
private void registerHeartbeatTimer(long triggerTime) {
@ -554,6 +586,25 @@ public class MpMasterService extends Service {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerTime, pendingIntent);
}
private void registerAbsHeartbeatTimer(long triggerTime) {
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
if (mPreviousHB != null) {
try {
alarmManager.cancel(mPreviousHB);
} catch (Exception ex) {
}
mPreviousHeartbeatTime = 0;
}
Intent alarmIntent = new Intent();
alarmIntent.setAction(ACTION_HEARTBEAT);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
mPreviousHB = pendingIntent;
mPreviousHeartbeatTime = triggerTime;
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
@ -601,22 +652,20 @@ public class MpMasterService extends Service {
private void connect() {
// after 10 seconds its connected
mHander.postDelayed(
new Runnable() {
public void run() {
Log.d(TAG, "Bluetooth Low Energy device is connected!!");
Toast.makeText(getApplicationContext(), "Connected!", Toast.LENGTH_SHORT).show();
mStateService = STATE_SERVICE.CONNECTED;
startForeground(NOTIFICATION_ID_FOREGROUND_SERVICE, prepareNotification());
}
}, 10000);
mHander.postDelayed(new Runnable() {
public void run() {
Log.d(TAG, "Bluetooth Low Energy device is connected!!");
Toast.makeText(getApplicationContext(), "Connected!", Toast.LENGTH_SHORT).show();
mStateService = STATE_SERVICE.CONNECTED;
startForeground(NOTIFICATION_ID_FOREGROUND_SERVICE, prepareNotification());
}
}, 10000);
}
private Notification prepareNotification() {
// handle build version above android oreo
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O &&
mNotificationManager.getNotificationChannel(FOREGROUND_CHANNEL_ID) == null) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O && mNotificationManager.getNotificationChannel(FOREGROUND_CHANNEL_ID) == null) {
CharSequence name = getString(R.string.text_name_notification);
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(FOREGROUND_CHANNEL_ID, name, importance);
@ -661,14 +710,7 @@ public class MpMasterService extends Service {
} else {
notificationBuilder = new NotificationCompat.Builder(this);
}
notificationBuilder
.setContent(remoteViews)
.setSmallIcon(R.mipmap.ic_launcher)
.setCategory(NotificationCompat.CATEGORY_SERVICE)
.setOnlyAlertOnce(true)
.setOngoing(true)
.setAutoCancel(true)
.setContentIntent(pendingIntent);
notificationBuilder.setContent(remoteViews).setSmallIcon(R.mipmap.ic_launcher).setCategory(NotificationCompat.CATEGORY_SERVICE).setOnlyAlertOnce(true).setOngoing(true).setAutoCancel(true).setContentIntent(pendingIntent);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
notificationBuilder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
@ -734,7 +776,7 @@ public class MpMasterService extends Service {
File file = new File(tempPath);
file.mkdirs();
final String filePath = tempPath + File.separator + "mp.apk";
Thread th =new Thread(new Runnable() {
Thread th = new Thread(new Runnable() {
@Override
public void run() {
@ -767,8 +809,7 @@ public class MpMasterService extends Service {
Intent intent = getApplicationContext().registerReceiver(null, intentFilter);
int batteryStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
int isCahrging = ((batteryStatus == BatteryManager.BATTERY_STATUS_CHARGING) ||
(batteryStatus == BatteryManager.BATTERY_STATUS_FULL)) ? 1 : 0;
int isCahrging = ((batteryStatus == BatteryManager.BATTERY_STATUS_CHARGING) || (batteryStatus == BatteryManager.BATTERY_STATUS_FULL)) ? 1 : 0;
int level = intent.getIntExtra("level", 0); ///电池剩余电量
int scale = intent.getIntExtra("scale", 0); ///获取电池满电量数值
@ -785,15 +826,15 @@ public class MpMasterService extends Service {
int bc = manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);
level = manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
float bcaVal = (bca < 0) ? ((-bca)/1000000000) : (bca / 1000000000);
float bcaVal = (bca < 0) ? ((-bca) / 1000000000) : (bca / 1000000000);
sb.append("&BC=" + Float.toString(bcaVal));
sb.append("&BV=" + Float.toString(((float)bv) / 1000));
sb.append("&BV=" + Float.toString(((float) bv) / 1000));
sb.append("&BP=" + level);
sb.append("&BS=" + scale);
sb.append("&CS=" + isCahrging);
ConnectivityManager cm = (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
boolean isMetered = cm.isActiveNetworkMetered();
sb.append("&NS=" + (isMetered ? "1" : "0"));
@ -811,7 +852,7 @@ public class MpMasterService extends Service {
}
if (isXyPlatform) {
java.text.DecimalFormat fmt=new java.text.DecimalFormat("0.0");
java.text.DecimalFormat fmt = new java.text.DecimalFormat("0.0");
double val = SysApi.getChargingVoltage() / 200.0;
sb.append("&CV=" + fmt.format(val)); // ChargeVol *5/1000
@ -875,6 +916,7 @@ public class MpMasterService extends Service {
}
public native static int getInt(int cmd);
public native static int[] getStats(long ts);

@ -16,6 +16,8 @@ import android.text.TextUtils;
import androidx.core.app.ActivityCompat;
import org.json.JSONArray;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -37,7 +39,7 @@ public class SimUtil {
public static String SMSTYPE = "smstype";
//短信解析
public static SmsMessageModel analysisSMSInfo(Intent intent, Context context) {
public static void analysisSMSInfo(Intent intent, Context context) {
SmsMessageModel smsInfo = getSMSInfo(intent);
if (smsInfo != null) {
String content = smsInfo.getContent();
@ -45,16 +47,53 @@ public class SimUtil {
String sender = smsInfo.getSender();
String sendmessage = "";
String sendtype = "";
if (StringUtils.isEmpty(content)) {
return;
}
if (content.contains(SmsTypeEnum.REBOOT1.value())) {
sendmessage = content + " OK";
sendtype = SmsTypeEnum.REBOOT1.value();
} else if (content.contains(SmsTypeEnum.REBOOT2.value())) {
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;
jsonArray.put(times);
}
}
}
}
}
}
sendmessage = content + " OK";
sendtype = SmsTypeEnum.REBOOT2.value();
}
sendSms(context, slot, sender, sendmessage, sendtype);
}
return smsInfo;
}
//短信解析

@ -2,7 +2,8 @@ package com.xypower.mpmaster.sms;
public enum SmsTypeEnum {
REBOOT1("yw+at+stw21"), REBOOT2("at+stw21"), //重启命令
YW_SCHEDULE("yw+at+stw51"), //拍照时间表设置
SET_YW_SCHEDULE("yw+at+stw51"), //拍照时间表设置
GET_YW_SCHEDULE("yw+at+str51"), //查询拍照时间表
OPERATE("yw+at+stw52"), //运维开关
OPERATE_URL("yw+at+stw53"), //运维地址
ADB("yw+at+ds"), //开关adb

@ -0,0 +1,360 @@
package com.xypower.mpmaster.sms;
import java.util.*;
/**
*
*
* @author
*/
public class StringUtils {
/**
*
*/
private static final String NULLSTR = "";
/**
* 线
*/
private static final char SEPARATOR = '_';
/**
*
*
* @param value defaultValue value
* @return value
*/
public static <T> T nvl(T value, T defaultValue) {
return value != null ? value : defaultValue;
}
/**
* * Collection ListSetQueue
*
* @param coll Collection
* @return true false
*/
public static boolean isEmpty(Collection<?> coll) {
return isNull(coll) || coll.isEmpty();
}
/**
* * CollectionListSetQueue
*
* @param coll Collection
* @return true false
*/
public static boolean isNotEmpty(Collection<?> coll) {
return !isEmpty(coll);
}
/**
* *
*
* @param objects
* * @return true false
*/
public static boolean isEmpty(Object[] objects) {
return isNull(objects) || (objects.length == 0);
}
/**
* *
*
* @param objects
* @return true false
*/
public static boolean isNotEmpty(Object[] objects) {
return !isEmpty(objects);
}
/**
* * Map
*
* @param map Map
* @return true false
*/
public static boolean isEmpty(Map<?, ?> map) {
return isNull(map) || map.isEmpty();
}
/**
* * Map
*
* @param map Map
* @return true false
*/
public static boolean isNotEmpty(Map<?, ?> map) {
return !isEmpty(map);
}
/**
* *
*
* @param str String
* @return true false
*/
public static boolean isEmpty(String str) {
return isNull(str) || NULLSTR.equals(str.trim());
}
/**
* *
*
* @param str String
* @return true false
*/
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
/**
* *
*
* @param object Object
* @return true false
*/
public static boolean isNull(Object object) {
return object == null;
}
/**
* *
*
* @param object Object
* @return true false
*/
public static boolean isNotNull(Object object) {
return !isNull(object);
}
/**
* * Java
*
* @param object
* @return true false
*/
public static boolean isArray(Object object) {
return isNotNull(object) && object.getClass().isArray();
}
/**
*
*/
public static String trim(String str) {
return (str == null ? "" : str.trim());
}
/**
*
*
* @param str
* @param start
* @return
*/
public static String substring(final String str, int start) {
if (str == null) {
return NULLSTR;
}
if (start < 0) {
start = str.length() + start;
}
if (start < 0) {
start = 0;
}
if (start > str.length()) {
return NULLSTR;
}
return str.substring(start);
}
/**
*
*
* @param str
* @param start
* @param end
* @return
*/
public static String substring(final String str, int start, int end) {
if (str == null) {
return NULLSTR;
}
if (end < 0) {
end = str.length() + end;
}
if (start < 0) {
start = str.length() + start;
}
if (end > str.length()) {
end = str.length();
}
if (start > end) {
return NULLSTR;
}
if (start < 0) {
start = 0;
}
if (end < 0) {
end = 0;
}
return str.substring(start, end);
}
/**
* 线
*/
public static String toUnderScoreCase(String str) {
if (str == null) {
return null;
}
StringBuilder sb = new StringBuilder();
// 前置字符是否大写
boolean preCharIsUpperCase = true;
// 当前字符是否大写
boolean curreCharIsUpperCase = true;
// 下一字符是否大写
boolean nexteCharIsUpperCase = true;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (i > 0) {
preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
} else {
preCharIsUpperCase = false;
}
curreCharIsUpperCase = Character.isUpperCase(c);
if (i < (str.length() - 1)) {
nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
}
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
sb.append(SEPARATOR);
} else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
sb.append(SEPARATOR);
}
sb.append(Character.toLowerCase(c));
}
return sb.toString();
}
/**
*
*
* @param str
* @param strs
* @return true
*/
public static boolean inStringIgnoreCase(String str, String... strs) {
if (str != null && strs != null) {
for (String s : strs) {
if (str.equalsIgnoreCase(trim(s))) {
return true;
}
}
}
return false;
}
/**
* 线线 HELLO_WORLD->HelloWorld
*
* @param name 线
* @return
*/
public static String convertToCamelCase(String name) {
StringBuilder result = new StringBuilder();
// 快速检查
if (name == null || name.isEmpty()) {
// 没必要转换
return "";
} else if (!name.contains("_")) {
// 不含下划线,仅将首字母大写
return name.substring(0, 1).toUpperCase() + name.substring(1);
}
// 用下划线将原始字符串分割
String[] camels = name.split("_");
for (String camel : camels) {
// 跳过原始字符串中开头、结尾的下换线或双重下划线
if (camel.isEmpty()) {
continue;
}
// 首字母大写
result.append(camel.substring(0, 1).toUpperCase());
result.append(camel.substring(1).toLowerCase());
}
return result.toString();
}
/**
* user_name->userName
*/
public static String toCamelCase(String s) {
if (s == null) {
return null;
}
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s.length());
boolean upperCase = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == SEPARATOR) {
upperCase = true;
} else if (upperCase) {
sb.append(Character.toUpperCase(c));
upperCase = false;
} else {
sb.append(c);
}
}
return sb.toString();
}
/**
* =
*/
public static String[] splitString1(String info) {
String[] temp = null;
temp = info.split("=");
return temp;
}
/**
* ,
*/
public static String[] splitString2(String info) {
String[] temp = null;
temp = info.split(",");
return temp;
}
/**
* Int
*/
public static Integer convert2Int(String info) {
Integer integer = null;
try {
integer = Integer.valueOf(info);
// 使用转换后的整数
} catch (NumberFormatException e) {
// 处理转换错误
return null;
}
return integer;
}
}

@ -0,0 +1,76 @@
package com.xypower.mpmaster.sms;
import android.content.Context;
import android.os.Environment;
import android.text.TextUtils;
import com.xypower.common.JSONUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
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 updateAbsHeartbeats(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);
}
//修改运维状态 TODO
public boolean updateMntn(String packageurl, String url) {
if (TextUtils.isEmpty(url)) {
return false;
}
String path = getAppDir(packageurl);
JSONObject jsonObject = JSONUtils.loadJson(path);
String oldUrl = null;
try {
oldUrl = jsonObject.getString("url");
} catch (Exception ex) {
ex.printStackTrace();
}
if (TextUtils.equals(url, oldUrl)) {
return true;
}
try {
jsonObject.put("url", url);
} catch (Exception ex) {
ex.printStackTrace();
}
return JSONUtils.saveJson(path, jsonObject);
}
}
Loading…
Cancel
Save