Fix network reachability for android 7
This commit is contained in:
parent
207eb626b6
commit
733c2f7a31
1 changed files with 48 additions and 5 deletions
|
@ -151,9 +151,11 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
private BroadcastReceiver mKeepAliveReceiver;
|
||||
private BroadcastReceiver mDozeReceiver;
|
||||
private BroadcastReceiver mHookReceiver;
|
||||
private BroadcastReceiver mNetworkReceiver;
|
||||
private IntentFilter mKeepAliveIntentFilter;
|
||||
private IntentFilter mDozeIntentFilter;
|
||||
private IntentFilter mHookIntentFilter;
|
||||
private IntentFilter mNetworkIntentFilter;
|
||||
private Handler mHandler = new Handler();
|
||||
private WakeLock mIncallWakeLock;
|
||||
private WakeLock mProximityWakelock;
|
||||
|
@ -693,8 +695,23 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
}
|
||||
finally {
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
|
||||
mServiceContext.unregisterReceiver(mNetworkReceiver);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mHookReceiver);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
dozeManager(false);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
|
@ -841,6 +858,13 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
|
||||
mProximityWakelock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "manager_proximity_sensor");
|
||||
|
||||
// Since Android N we need to register the network manager
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
|
||||
mNetworkReceiver = new NetworkManager();
|
||||
mNetworkIntentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||
mServiceContext.registerReceiver(mNetworkReceiver, mNetworkIntentFilter);
|
||||
}
|
||||
|
||||
updateNetworkReachability();
|
||||
|
||||
resetCameraFromPreferences();
|
||||
|
@ -982,9 +1006,28 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
Log.e(e);
|
||||
}
|
||||
finally {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
mServiceContext.unregisterReceiver(mHookReceiver);
|
||||
dozeManager(false);
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
|
||||
mServiceContext.unregisterReceiver(mNetworkReceiver);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mHookReceiver);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
try {
|
||||
dozeManager(false);
|
||||
} catch (Exception e) {
|
||||
Log.e(e);
|
||||
}
|
||||
mLc = null;
|
||||
instance = null;
|
||||
}
|
||||
|
@ -996,7 +1039,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
|||
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
||||
} else {
|
||||
Log.i("[Doze Mode]: unregister");
|
||||
if (dozeModeEnabled) mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||
mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||
dozeModeEnabled = false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue