Ver código fonte

<设备出现断网时将通过MCU重启设备,若重启多次还是没有网络则不再继续重启>

weizhengliang 4 anos atrás
pai
commit
f4609b88a3

+ 1 - 1
app/build.gradle

@@ -25,7 +25,7 @@ android {
         minSdkVersion 15
         targetSdkVersion 26
         versionCode 1
-        versionName "1.41"
+        versionName "1.42"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 
         buildConfigField "String", "BUILD_TIME", getDate()

+ 2 - 0
app/src/main/java/com/wdkl/callingbed2/common/Constants.java

@@ -283,4 +283,6 @@ public class Constants {
      * 单片机版本号  add by waderson 20190708
      */
     public static String MCU_VERSION_NUMBER = "";
+
+    public static String REBOOT_COUNT = "RebootCount";
 }

+ 12 - 3
app/src/main/java/com/wdkl/callingbed2/ui/CallingBedActivity.java

@@ -912,7 +912,12 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
         getSystemSettingData();
         getNoticeData();
         setTrustIcon();
-        getBroadcastAudioFiles();
+        if (isDownloadMp3) {
+            ToastUtil.showToast("广播文件正在下载中,请稍等...");
+        } else {
+            getBroadcastAudioFiles();
+        }
+
         /**
          * 由于机器性能方面的差异有些机子的串口反应速度比较慢;急速初始化将失效!
          * */
@@ -1868,7 +1873,11 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
                         long curTime = System.currentTimeMillis();
                         if (curTime - updateAudioTime > 10000) {
                             updateAudioTime = curTime;
-                            getBroadcastAudioFiles();
+                            if (isDownloadMp3) {
+                                ToastUtil.showToast("广播文件正在下载中,请稍等...");
+                            } else {
+                                getBroadcastAudioFiles();
+                            }
                         }
                         break;
                     case "broadcast_1":
@@ -2933,7 +2942,7 @@ public class CallingBedActivity extends BaseActivity implements ISerialPortBedOn
 
     //广播的实体
     private ArrayList<AllBroadcastEntity> allBroadcastList = new ArrayList<>();
-    private boolean isDownloadMp3;
+    private boolean isDownloadMp3 = false;
     private boolean needReDownload = false;
 
     //下载广播音频文件

+ 20 - 3
app/src/main/java/com/wdkl/callingbed2/ui/InitActivity.java

@@ -32,6 +32,7 @@ import com.wdkl.callingbed2.util.DownloadUtil;
 import com.wdkl.callingbed2.util.LogUtil;
 import com.wdkl.callingbed2.util.NetUtil;
 import com.wdkl.callingbed2.util.ScreenManagerUtil;
+import com.wdkl.callingbed2.util.SharedPreferencesUtil;
 import com.wdkl.callingbed2.util.StringUtils;
 import com.wdkl.callingbed2.util.ToastUtil;
 import com.wdkl.callingbed2.util.UdpSendUtil;
@@ -196,6 +197,7 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
                 CallingBedSendCommand.setSipStatus(serialPortUtil, "0");
                 showNetErrorView("MAC地址: " + macAddress + " IP地址: " + ipStr + "\nError:无网络连接;以太网是否连接正常?");//网络信息初始化错误
                 ToastUtil.showToast("无网络连接;以太网是否连接正常?");//网络信息初始化错误
+
                 resetEthernet();
             }
         } else {
@@ -273,6 +275,10 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
     private void getInitData() {
         LogUtil.d("getInitData", "URL==" + Constants.URL + Constants.URL_END + Constants.CALLINGBED_INIT);
         final String ipStr = NetUtil.getLocalIP();
+        //网络恢复正常,重置重启计数
+        if (!TextUtils.isEmpty(ipStr)) {
+            SharedPreferencesUtil.putIntSp(context, Constants.REBOOT_COUNT, Constants.REBOOT_COUNT, 0);
+        }
         if (Constants.URL.length() > 7) {
             OkHttpUtils
                     .post()
@@ -588,11 +594,22 @@ public class InitActivity extends BaseActivity implements SerialPortUtil.ISerial
                     }
                     break;
                 case 222:
-                    if (TextUtils.isEmpty(NetUtil.getLocalIP())) {
-                        ToastUtil.showToast("网络异常,设备即将重启!!!");
-                        CallingBedSendCommand.setNetStatus(serialPortUtil, "1");
+                    int count = SharedPreferencesUtil.getIntSp(context, Constants.REBOOT_COUNT, Constants.REBOOT_COUNT);
+                    LogUtil.d("wzlll", "NetReset reboot count: " + count);
+                    if (count >= 10) {
+                        ToastUtil.showToast("设备出现异常,请确保网络连接正常或重启设备");
+                    } else {
+                        count++;
+                        SharedPreferencesUtil.putIntSp(context, Constants.REBOOT_COUNT, Constants.REBOOT_COUNT, count);
+                        ToastUtil.showToast("网络异常,即将重启");
+                        updateHandler.sendEmptyMessageDelayed(333, 5000);
                     }
                     break;
+                case 333:
+                    LogUtil.d("wzlll", "NetReset reboot...");
+                    AutoRebootUtil.reboot(MyApplication.getAppContext());
+                    CallingBedSendCommand.setNetStatus(serialPortUtil, "1");
+                    break;
             }
         }
     };

+ 11 - 0
app/src/main/java/com/wdkl/callingbed2/util/SharedPreferencesUtil.java

@@ -36,6 +36,17 @@ public class SharedPreferencesUtil {
         sp.edit().putString(vname, vdata).commit();
     }
 
+    public static int getIntSp(Context context, String spname, String vname) {
+        SharedPreferences sp = context.getSharedPreferences(spname, Context.MODE_PRIVATE);
+        int value = sp.getInt(vname, 0);
+        return value;
+    }
+
+    public static void putIntSp(Context context, String spname, String vname, int vdata) {
+        SharedPreferences sp = context.getSharedPreferences(spname, Context.MODE_PRIVATE);
+        sp.edit().putInt(vname, vdata).commit();
+    }
+
     /**
      * SharedPreferences数据的清除
      *