Fix network reachability for android 7
This commit is contained in:
parent
aebabe988d
commit
22f26ec6ff
1 changed files with 48 additions and 5 deletions
|
@ -151,9 +151,11 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
private BroadcastReceiver mKeepAliveReceiver;
|
private BroadcastReceiver mKeepAliveReceiver;
|
||||||
private BroadcastReceiver mDozeReceiver;
|
private BroadcastReceiver mDozeReceiver;
|
||||||
private BroadcastReceiver mHookReceiver;
|
private BroadcastReceiver mHookReceiver;
|
||||||
|
private BroadcastReceiver mNetworkReceiver;
|
||||||
private IntentFilter mKeepAliveIntentFilter;
|
private IntentFilter mKeepAliveIntentFilter;
|
||||||
private IntentFilter mDozeIntentFilter;
|
private IntentFilter mDozeIntentFilter;
|
||||||
private IntentFilter mHookIntentFilter;
|
private IntentFilter mHookIntentFilter;
|
||||||
|
private IntentFilter mNetworkIntentFilter;
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private WakeLock mIncallWakeLock;
|
private WakeLock mIncallWakeLock;
|
||||||
private WakeLock mProximityWakelock;
|
private WakeLock mProximityWakelock;
|
||||||
|
@ -697,8 +699,23 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
try {
|
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);
|
mServiceContext.unregisterReceiver(mHookReceiver);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
dozeManager(false);
|
dozeManager(false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(e);
|
Log.e(e);
|
||||||
|
@ -843,6 +860,13 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
|
|
||||||
mProximityWakelock = mPowerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "manager_proximity_sensor");
|
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();
|
updateNetworkReachability();
|
||||||
|
|
||||||
resetCameraFromPreferences();
|
resetCameraFromPreferences();
|
||||||
|
@ -984,9 +1008,28 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
Log.e(e);
|
Log.e(e);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
mServiceContext.unregisterReceiver(mKeepAliveReceiver);
|
try {
|
||||||
mServiceContext.unregisterReceiver(mHookReceiver);
|
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
|
||||||
dozeManager(false);
|
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;
|
mLc = null;
|
||||||
instance = null;
|
instance = null;
|
||||||
}
|
}
|
||||||
|
@ -998,7 +1041,7 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
|
||||||
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
|
||||||
} else {
|
} else {
|
||||||
Log.i("[Doze Mode]: unregister");
|
Log.i("[Doze Mode]: unregister");
|
||||||
if (dozeModeEnabled) mServiceContext.unregisterReceiver(mDozeReceiver);
|
mServiceContext.unregisterReceiver(mDozeReceiver);
|
||||||
dozeModeEnabled = false;
|
dozeModeEnabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue