优化网络切换逻辑

hdrplus
Matthew 1 year ago
parent dfeb462d0e
commit 129f6df639

@ -114,6 +114,14 @@ public class AppMaster {
public void start() { public void start() {
new Thread(new Runnable() { new Thread(new Runnable() {
void sleep(long ms) {
try {
Thread.sleep(ms);
} catch (Exception ex) {
}
}
@Override @Override
public void run() { public void run() {
@ -121,31 +129,24 @@ public class AppMaster {
if (separateNetwork) { if (separateNetwork) {
try { try {
ConnectivityManager connectivityManager = (ConnectivityManager) mService.getSystemService(Context.CONNECTIVITY_SERVICE);
Network previousNetwork = connectivityManager.getActiveNetwork();
String previousNetworkStr = previousNetwork.toString();
mService.logger.info("Switch to Simcard 2"); mService.logger.info("Switch to Simcard 2");
SysApi.selectSimCard4Data(mService.getApplicationContext(), 2); SysApi.selectSimCard4Data(mService.getApplicationContext(), 2);
Thread.sleep(100); sleep(100);
boolean connected = false; boolean connected = false;
ConnectivityManager connectivityManager = (ConnectivityManager) mService.getSystemService(Context.CONNECTIVITY_SERVICE);
for (int idx = 0; idx < 8; idx++) { for (int idx = 0; idx < 8; idx++) {
Network[] networks = connectivityManager.getAllNetworks(); Network network = connectivityManager.getActiveNetwork();
if (networks != null && networks.length > 0) { if (!network.equals(previousNetwork)) {
for (Network nw : networks) { mService.logger.info("Network Changed from " + previousNetworkStr + " to " + network.toString());
NetworkInfo ni = connectivityManager.getNetworkInfo(nw);
if (ni.getType() == 0) {
connected = true;
break;
}
}
}
if (connected) {
break; break;
} }
Thread.sleep(1000); sleep(1000);
} }
try { try {
@ -164,6 +165,15 @@ public class AppMaster {
} }
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); 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 { } else {
try { try {

@ -658,8 +658,8 @@ public class MpMasterService extends Service {
}, 5000); }, 5000);
// Reset Data Network // Reset Data Network
logger.info("Switch to Simcard 1"); // logger.info("Switch to Simcard 1");
SysApi.selectSimCard4Data(getApplicationContext(), 1); // SysApi.selectSimCard4Data(getApplicationContext(), 1);
registerHeartbeatTimer(); registerHeartbeatTimer();

Loading…
Cancel
Save