Fix for network reachability
This commit is contained in:
parent
3028dac9ed
commit
329e26a0b7
1 changed files with 19 additions and 3 deletions
|
@ -37,6 +37,7 @@ import android.hardware.SensorManager;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.Network;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -956,15 +957,30 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
public void updateNetworkReachability() {
|
public void updateNetworkReachability() {
|
||||||
if (mConnectivityManager == null) return;
|
if (mConnectivityManager == null) return;
|
||||||
|
|
||||||
NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkInfo();
|
boolean connected = false;
|
||||||
|
NetworkInfo networkInfo = null;
|
||||||
|
if (Version.sdkAboveOrEqual(Version.API21_LOLLIPOP_50)) {
|
||||||
|
for (Network network : mConnectivityManager.getAllNetworks()) {
|
||||||
|
if (network != null) {
|
||||||
|
networkInfo = mConnectivityManager.getNetworkInfo(network);
|
||||||
|
if (networkInfo != null && networkInfo.isConnected()) {
|
||||||
|
connected = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
networkInfo = mConnectivityManager.getActiveNetworkInfo();
|
||||||
|
connected = networkInfo != null && networkInfo.isConnected();
|
||||||
|
}
|
||||||
|
|
||||||
if (networkInfo == null || !networkInfo.isConnected()) {
|
if (networkInfo == null || !connected) {
|
||||||
Log.i("No connectivity: setting network unreachable");
|
Log.i("No connectivity: setting network unreachable");
|
||||||
mLc.setNetworkReachable(false);
|
mLc.setNetworkReachable(false);
|
||||||
} else if (dozeModeEnabled) {
|
} else if (dozeModeEnabled) {
|
||||||
Log.i("Doze Mode enabled: shutting down network");
|
Log.i("Doze Mode enabled: shutting down network");
|
||||||
mLc.setNetworkReachable(false);
|
mLc.setNetworkReachable(false);
|
||||||
}else if (networkInfo.isConnected()){
|
} else if (connected){
|
||||||
manageTunnelServer(networkInfo);
|
manageTunnelServer(networkInfo);
|
||||||
|
|
||||||
boolean wifiOnly = LinphonePreferences.instance().isWifiOnlyEnabled();
|
boolean wifiOnly = LinphonePreferences.instance().isWifiOnlyEnabled();
|
||||||
|
|
Loading…
Reference in a new issue