From: snickersun Date: Sat, 22 Feb 2020 20:36:18 +0000 (+0800) Subject: 1、修改#deviceinfo#分两条短信发送版本信息,和运行状态。 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=c4dac58c0f03f689b19c316517207ea224800533;p=icsupport.git 1、修改#deviceinfo#分两条短信发送版本信息,和运行状态。 2、添加wifi配置的短信命令,可以用adb配置。 --- diff --git a/app/src/main/java/com/enqualcomm/support/Config.java b/app/src/main/java/com/enqualcomm/support/Config.java index c20d55d9..fa277157 100644 --- a/app/src/main/java/com/enqualcomm/support/Config.java +++ b/app/src/main/java/com/enqualcomm/support/Config.java @@ -191,7 +191,7 @@ public class Config { public static final String DefaultWiFiSSID="Xplay6"; public static final String DefaultWiFiPWD="87654321"; - + public static final String DefaultWiFiEncryptType="psk"; static { } @@ -312,7 +312,7 @@ public class Config { final static String KeyWiFiSSID="WiFiSSID"; final static String KeyWiFiPasswd="WiFiPWD"; - + final static String KeyWiFiEncyptType="WiFiEncryptType"; public static String getWiFiSSID(Context context){ return SharPreferenceUtil.getPrefString(context,KeyWiFiSSID,DefaultWiFiSSID); @@ -330,8 +330,16 @@ public class Config { SharPreferenceUtil.setPrefString(context,KeyWiFiPasswd,pwd); } + public static String getWiFiEncryptType(Context context){ + return SharPreferenceUtil.getPrefString(context,KeyWiFiEncyptType,DefaultWiFiEncryptType); + } + + public static void setWiFiEncryptType(Context context,String type){ + SharPreferenceUtil.setPrefString(context,KeyWiFiEncyptType,type); + } + - public static String getFtpUser(Context context){ + public static String getFtpUser(Context context){ return SharPreferenceUtil.getPrefString(context,KeyLogFtpUser,DefaultLogFtpUser); } diff --git a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java index 2e486a1f..4912dc1a 100644 --- a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java +++ b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java @@ -16,6 +16,7 @@ import android.widget.Toast; import com.enqualcomm.support.bean.ICLocation; import com.enqualcomm.support.bean.Runtime; +import com.enqualcomm.support.service.Deliver; import com.enqualcomm.support.utils.APNUtil; import com.enqualcomm.support.utils.DeviceInfoUtil; import com.enqualcomm.support.utils.Logger; @@ -36,6 +37,7 @@ import rx.Observable; import rx.functions.Action1; import static com.enqualcomm.support.Constants.DIALOG_ACTION; +import static com.enqualcomm.support.utils.DeviceInfoUtil.getDeviceVersion; public class ICSmsManager { @@ -164,6 +166,8 @@ public class ICSmsManager { } } else if (sms.startsWith("#deviceinfo#")) { + Logger.i("SMS " + sms + " reply " + DeviceInfoUtil.getDeviceVersion(runtime)); + sendSMS(phonenumber, DeviceInfoUtil.getDeviceVersion(runtime)); Logger.i("SMS " + sms + " reply " + DeviceInfoUtil.getShortDeviceInfo(runtime)); sendSMS(phonenumber, DeviceInfoUtil.getShortDeviceInfo(runtime)); } else if (sms.startsWith("#status#")) { @@ -305,21 +309,41 @@ public class ICSmsManager { } else { sendSMS(phonenumber, "skipmovecheck format error!"); } - }else if(sms.startsWith("#connectwifi#=")){ + }else if(sms.startsWith("#wifictl#=")){ String tmp[] = sms.split("="); if (tmp.length == 2) { if (tmp[1].equals("current")) { - sendSMS(phonenumber, "SkipMoveCheck " + LocationClient.getSkipMoveCheck() + "!"); + sendSMS(phonenumber, "Current Wifi Setting SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ "!"); } else if (tmp[1].equals("reset")) { - LocationClient.setSkipMoveCheck(true); - sendSMS(phonenumber, "set SkipMoveCheck " + LocationClient.getSkipMoveCheck() + " success!"); - } else { + Config.setWiFiSSID(mContext,Config.DefaultWiFiSSID); + Config.setWiFiPasswd(mContext,Config.DefaultWiFiPWD); + sendSMS(phonenumber, "reset Wifi Setting to SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ "!"); + } else if (tmp[1].startsWith("connect,")) { + + String tmplist[]=tmp[1].split(","); + if (tmplist.length==4){ + String SSID=tmplist[1]; + String PWD=tmplist[2]; + String encyptType=tmplist[3]; + Config.setWiFiSSID(mContext,SSID); + Config.setWiFiPasswd(mContext,PWD); + sendSMS(phonenumber, "set and connect to Wifi SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ ", encryptType "+encyptType+"!"); + //connect to wifi + Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1() { + public void call(Long param1Long) { + Deliver.connectToWifi(SSID,PWD,encyptType); + } + }); + }else { - sendSMS(phonenumber, "skipmovecheck format error!"); + sendSMS(phonenumber, "set SkipMoveCheck " + LocationClient.getSkipMoveCheck() + " success!"); + } + } else { + sendSMS(phonenumber, "WiFi Control format error!"); } } else { - sendSMS(phonenumber, "skipmovecheck format error!"); + sendSMS(phonenumber, "WiFi Control format error!"); } }else if(sms.startsWith("#logctl#=")){ String tmp[] = sms.split("="); diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index 7cdea9da..dc33187a 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -20,7 +20,8 @@ public class Runtime { public int SignalStrength; private String battery="000"; - + + private int batteryVoltage=0; private boolean batteryLow; private boolean batterychanging; @@ -208,7 +209,11 @@ public class Runtime { public boolean getAntioffStatus() { return this.isNeedAntioff; } public String getBattery() { return this.battery; } - + + public int getBatteryVotage(){ return this.batteryVoltage;} + public void setBatteryVoltage(int voltage){ + this.batteryVoltage=voltage; + } public boolean getBatteryLow() { return this.batteryLow; } public boolean getBatterychanging() { return this.batterychanging; } diff --git a/app/src/main/java/com/enqualcomm/support/service/Deliver.java b/app/src/main/java/com/enqualcomm/support/service/Deliver.java index 97828855..fa8d55c3 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -41,6 +41,7 @@ import com.enqualcomm.support.utils.NettyConnection; import com.enqualcomm.support.utils.ServiceUtil; import com.enqualcomm.support.utils.SharPreferenceUtil; import com.enqualcomm.support.utils.SimSignalUtil; +import com.enqualcomm.support.utils.Util; import java.util.ArrayList; import java.util.concurrent.LinkedBlockingDeque; @@ -84,7 +85,7 @@ public class Deliver extends AbstractConnectionService { public static boolean is_active_location = false; - private PowerManager.WakeLock ReceiveWakeLock; + private static PowerManager.WakeLock ReceiveWakeLock; private Handler delayHandler; @@ -96,14 +97,14 @@ public class Deliver extends AbstractConnectionService { private static Runtime mRuntime; - private boolean wakeLockWifiList = false; + private static boolean wakeLockWifiList = false; - private boolean wakeLockWifiSet = false; + private static boolean wakeLockWifiSet = false; private String wifiDataForCm; - private boolean wifiEnabled; + private static boolean wifiEnabled; public static Runnable delaySendMSG; // public static boolean sendingMsg=false; @@ -409,14 +410,14 @@ public static void sendLocationMSG( String Msg){ return false; } - public void releaseOneWakeLock() { - if (this.ReceiveWakeLock == null) { + public static void releaseOneWakeLock() { + if (ReceiveWakeLock == null) { Logger.i("ReceiveWakeLock 没有加锁"); return; } - if (!this.wakeLockWifiList && !this.wakeLockWifiSet && this.ReceiveWakeLock.isHeld()) { - this.ReceiveWakeLock.release(); - this.ReceiveWakeLock = null; + if (!wakeLockWifiList && !wakeLockWifiSet && ReceiveWakeLock.isHeld()) { + ReceiveWakeLock.release(); + ReceiveWakeLock = null; } } @@ -432,7 +433,36 @@ public static void sendLocationMSG( String Msg){ this.ReceiveWakeLock = null; } } - + public static void connectToWifi(String ssid,String pwd,String encryptType){ + int networkid; + final WifiManager wifiManager = mRuntime.getContextProxy().getWifiManager(); + wifiEnabled = wifiManager.isWifiEnabled(); + if (Util.isConnectWifi(mRuntime.getContextProxy().context)) { + networkid = wifiManager.getConnectionInfo().getNetworkId(); + wifiManager.disconnect(); + wifiManager.removeNetwork(networkid); + wifiManager.saveConfiguration(); + } + + Deliver.isAppSetWifi = 1; + WifiConfiguration wifiConfiguration = Util.GetconfigWifiInfo(mRuntime.getContextProxy().context, ssid, pwd, encryptType); + networkid = wifiConfiguration.networkId; + wifiManager.removeNetwork(networkid); + wifiManager.saveConfiguration(); + networkid = wifiManager.addNetwork(wifiConfiguration); + if (Util.connectWifiByReflectMethod(mRuntime.getContextProxy().context, networkid) == null && !wifiManager.enableNetwork(networkid, true)) { + Logger.i("连接失败 3"); + SystemClock.sleep(3000L); + + wifiManager.setWifiEnabled(false); + wakeLockWifiSet = false; + releaseOneWakeLock(); + WifiListWakeLock = Deliver.WakeLockForGetWifiList(mRuntime); + + return; + } + + } public void setWakeupAlarm(Runtime paramRuntime) { AlarmManager alarmManager = (AlarmManager)(paramRuntime.getContextProxy()).context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent((paramRuntime.getContextProxy()).context, CoreService.class); diff --git a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java index 1737bcde..8698d542 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java @@ -33,6 +33,7 @@ public class BatteryUtil { int i = param1Intent.getIntExtra(EXTRA_LEVEL, 0) * 100 / param1Intent.getIntExtra(EXTRA_SCALE, 100); // 当前电池电压 int batteryVolt = param1Intent.getIntExtra(EXTRA_VOLTAGE, -1); + BatteryUtil.this.mRuntime.setBatteryVoltage(batteryVolt); Logger.i("BatteryLevel "+i + " BatteryVotage "+batteryVolt); if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(mRuntime.getCacheDir(),"Battery","BatteryLevel "+i + " BatteryVotage "+batteryVolt); if (i >= 100) { diff --git a/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java b/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java index 3a03e4c3..37968af8 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/DeviceInfoUtil.java @@ -196,7 +196,7 @@ public class DeviceInfoUtil { .append(" [").append(runtime.getSignalStrength()).append(",Mini:").append(SimSignalUtil.getMinSignalStrength(sim.getNetworkType())).append("]") .append("\n KeepAlive ").append(KeepAlive.isConnected).append(" , HBcycle ").append(runtime.getHeartBeatCycle()) .append("\n ServerConnected is ").append(runtime.isServerProtocolConnected()) - .append(" \n Bat ").append(runtime.getBattery()) + .append(" \n Bat ").append(runtime.getBattery()).append(",").append(runtime.getBatteryVotage()) .append(" StepCount ").append(runtime.getTotalStepCount()) .append( "\n Working Mode ").append(runtime.getLocationInstance().getWorkingMod()) .append(" \n Location Cycle ").append(runtime.getLocationInstance().getLocation_cycle()) @@ -212,14 +212,12 @@ public class DeviceInfoUtil { public static String getShortDeviceInfo(Runtime runtime){ SimSignalUtil sim=SimSignalUtil.getInstance(runtime.getContextProxy().context); - return new StringBuilder() - .append(DeviceInfoUtil.getSWVersionDisplayName()).append("\n") - .append(DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context)) + return new StringBuilder("Network ") .append(SimSignalUtil.hasSimCard(runtime.getContextProxy().context)?" ":" NoSIM ") .append(sim.getNetworkType()==SimSignalUtil.IS_2G?"2G":(sim.getNetworkType()==SimSignalUtil.IS_3G)?"3G":(sim.getNetworkType()==SimSignalUtil.IS_4G?"4G":"unknown")) .append("[").append(runtime.getSignalStrength()).append("]") .append("\nHeartbeat[").append(runtime.getSrvIP()).append(":").append(runtime.getPort()).append(",").append(runtime.isServerProtocolConnected()).append(",").append(runtime.getHeartBeatCycle()) - .append("]\nBat").append(runtime.getBattery()) + .append("]\nBat").append(runtime.getBattery()).append(",").append(runtime.getBatteryVotage()) .append(",Step").append(runtime.getTotalStepCount()) .append( "\nLocation[M").append(runtime.getLocationInstance().getWorkingMod()) .append(",C").append(runtime.getLocationInstance().getLocation_cycle()) @@ -233,6 +231,13 @@ public class DeviceInfoUtil { .toString(); } + public static String getDeviceVersion(Runtime runtime){ + return new StringBuilder("Firmware ") + .append(DeviceInfoUtil.getSWVersionDisplayName()).append("\nProtocol ") + .append(DeviceInfoUtil.getVersionCode(runtime.getContextProxy().context)) + .append("\nIMEI ").append(runtime.IMEI()) + .toString(); + } public static void setLockSimInfo(Context paramContext) { Settings.System.putInt(paramContext.getContentResolver(), "com.eqc.watch.launcher.SimIsBlocked", 1); } } diff --git a/app/src/main/java/com/enqualcomm/support/utils/Util.java b/app/src/main/java/com/enqualcomm/support/utils/Util.java index 5bf8471a..7d0a2992 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/Util.java +++ b/app/src/main/java/com/enqualcomm/support/utils/Util.java @@ -172,80 +172,78 @@ public class Util { return str; } - public static WifiConfiguration GetconfigWifiInfo(Context context, String var1, String var2, String var3) { - WifiConfiguration var8; - label36: { - WifiManager var7 = (WifiManager)context.getSystemService(WIFI_SERVICE); - if (var7 != null) { - Iterator var4 = var7.getConfiguredNetworks().iterator(); - - while(var4.hasNext()) { - var8 = (WifiConfiguration)var4.next(); - if (var8 != null) { - String var5 = var8.SSID; - StringBuilder var6 = new StringBuilder(); - var6.append("\""); - var6.append(var1); - var6.append("\""); - if (var5.equals(var6.toString())) { - break label36; + public static WifiConfiguration GetconfigWifiInfo(Context context, String ssid, String pwd, String encryptType) { + WifiConfiguration wifiConfiguration=null; + StringBuilder stringBuilder; + WifiManager wifiManager = (WifiManager)context.getSystemService(WIFI_SERVICE); + if (wifiManager != null && wifiManager.getConfiguredNetworks()!=null) { + Iterator it = wifiManager.getConfiguredNetworks().iterator(); + + while(it.hasNext()) { + wifiConfiguration = (WifiConfiguration)it.next(); + if (wifiConfiguration != null) { + String ssid_tmp = wifiConfiguration.SSID; + stringBuilder= new StringBuilder(); + stringBuilder.append("\""); + stringBuilder.append(ssid); + stringBuilder.append("\""); + if (ssid_tmp.equals(stringBuilder.toString())) { + return wifiConfiguration; } } } } - var8 = null; - } - WifiConfiguration var12 = var8; - if (var8 == null) { - var12 = new WifiConfiguration(); + + WifiConfiguration retWiFiConfigration = wifiConfiguration; + if (retWiFiConfigration == null) { + retWiFiConfigration = new WifiConfiguration(); } - var12.allowedAuthAlgorithms.clear(); - var12.allowedGroupCiphers.clear(); - var12.allowedKeyManagement.clear(); - var12.allowedPairwiseCiphers.clear(); - var12.allowedProtocols.clear(); - StringBuilder var10 = new StringBuilder(); - var10.append("\""); - var10.append(var1); - var10.append("\""); - var12.SSID = var10.toString(); - if ("none".equals(var3)) { - var12.allowedKeyManagement.set(0); - } else if ("wep".equals(var3)) { - var12.hiddenSSID = true; - String[] var11 = var12.wepKeys; - StringBuilder var9 = new StringBuilder(); - var9.append("\""); - var9.append(var2); - var9.append("\""); - var11[0] = var9.toString(); - var12.allowedAuthAlgorithms.set(1); - var12.allowedGroupCiphers.set(3); - var12.allowedGroupCiphers.set(2); - var12.allowedGroupCiphers.set(0); - var12.allowedGroupCiphers.set(1); - var12.allowedKeyManagement.set(0); - var12.wepTxKeyIndex = 0; - } else if ("psk".equals(var3)) { - var10 = new StringBuilder(); - var10.append("\""); - var10.append(var2); - var10.append("\""); - var12.preSharedKey = var10.toString(); - var12.hiddenSSID = true; - var12.allowedAuthAlgorithms.set(0); - var12.allowedGroupCiphers.set(2); - var12.allowedKeyManagement.set(1); - var12.allowedPairwiseCiphers.set(1); - var12.allowedGroupCiphers.set(3); - var12.allowedPairwiseCiphers.set(2); - var12.status = 2; + retWiFiConfigration.allowedAuthAlgorithms.clear(); + retWiFiConfigration.allowedGroupCiphers.clear(); + retWiFiConfigration.allowedKeyManagement.clear(); + retWiFiConfigration.allowedPairwiseCiphers.clear(); + retWiFiConfigration.allowedProtocols.clear(); + stringBuilder = new StringBuilder(); + stringBuilder.append("\""); + stringBuilder.append(ssid); + stringBuilder.append("\""); + retWiFiConfigration.SSID = stringBuilder.toString(); + if ("none".equals(encryptType)) { + retWiFiConfigration.allowedKeyManagement.set(0); + } else if ("wep".equals(encryptType)) { + retWiFiConfigration.hiddenSSID = true; + stringBuilder = new StringBuilder(); + stringBuilder.append("\""); + stringBuilder.append(pwd); + stringBuilder.append("\""); + retWiFiConfigration.wepKeys[0] = stringBuilder.toString(); + retWiFiConfigration.allowedAuthAlgorithms.set(1); + retWiFiConfigration.allowedGroupCiphers.set(3); + retWiFiConfigration.allowedGroupCiphers.set(2); + retWiFiConfigration.allowedGroupCiphers.set(0); + retWiFiConfigration.allowedGroupCiphers.set(1); + retWiFiConfigration.allowedKeyManagement.set(0); + retWiFiConfigration.wepTxKeyIndex = 0; + } else if ("psk".equals(encryptType)) { + stringBuilder = new StringBuilder(); + stringBuilder.append("\""); + stringBuilder.append(pwd); + stringBuilder.append("\""); + retWiFiConfigration.preSharedKey = stringBuilder.toString(); + retWiFiConfigration.hiddenSSID = true; + retWiFiConfigration.allowedAuthAlgorithms.set(0); + retWiFiConfigration.allowedGroupCiphers.set(2); + retWiFiConfigration.allowedKeyManagement.set(1); + retWiFiConfigration.allowedPairwiseCiphers.set(1); + retWiFiConfigration.allowedGroupCiphers.set(3); + retWiFiConfigration.allowedPairwiseCiphers.set(2); + retWiFiConfigration.status = 2; } - return var12; + return retWiFiConfigration; } public static String byte2hex(byte[] var0) {