diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java index abea3b3a..5ee17218 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java @@ -114,6 +114,14 @@ public class AppMaster { public void start() { new Thread(new Runnable() { + + void sleep(long ms) { + try { + Thread.sleep(ms); + } catch (Exception ex) { + } + } + @Override public void run() { @@ -121,31 +129,24 @@ public class AppMaster { if (separateNetwork) { try { + ConnectivityManager connectivityManager = (ConnectivityManager) mService.getSystemService(Context.CONNECTIVITY_SERVICE); + Network previousNetwork = connectivityManager.getActiveNetwork(); + String previousNetworkStr = previousNetwork.toString(); + mService.logger.info("Switch to Simcard 2"); SysApi.selectSimCard4Data(mService.getApplicationContext(), 2); - Thread.sleep(100); + sleep(100); boolean connected = false; - ConnectivityManager connectivityManager = (ConnectivityManager) mService.getSystemService(Context.CONNECTIVITY_SERVICE); for (int idx = 0; idx < 8; idx++) { - Network[] networks = connectivityManager.getAllNetworks(); - if (networks != null && networks.length > 0) { - for (Network nw : networks) { - NetworkInfo ni = connectivityManager.getNetworkInfo(nw); - - if (ni.getType() == 0) { - connected = true; - break; - } - } - } - - if (connected) { + Network network = connectivityManager.getActiveNetwork(); + if (!network.equals(previousNetwork)) { + mService.logger.info("Network Changed from " + previousNetworkStr + " to " + network.toString()); break; } - Thread.sleep(1000); + sleep(1000); } try { @@ -164,6 +165,15 @@ public class AppMaster { } } catch (Exception ex) { ex.printStackTrace(); + } finally { + try { + if (!mService.isMntnMode()) { + mService.logger.info("Switch to Simcard 1"); + SysApi.selectSimCard4Data(mService.getApplicationContext(), 1); + } + } catch (Exception ex) { + ex.printStackTrace(); + } } } else { try { diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index fd285d8a..b651c8ba 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -658,8 +658,8 @@ public class MpMasterService extends Service { }, 5000); // Reset Data Network - logger.info("Switch to Simcard 1"); - SysApi.selectSimCard4Data(getApplicationContext(), 1); + // logger.info("Switch to Simcard 1"); + // SysApi.selectSimCard4Data(getApplicationContext(), 1); registerHeartbeatTimer();