| Index: webrtc/api/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| diff --git a/webrtc/api/java/android/org/webrtc/NetworkMonitorAutoDetect.java b/webrtc/api/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| index e0af09ba86e1b9b87091097e78ebb1ebd52fc481..c4e3a901c970fc8f3b9543c309bd8838c47813c8 100644
|
| --- a/webrtc/api/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| +++ b/webrtc/api/java/android/org/webrtc/NetworkMonitorAutoDetect.java
|
| @@ -445,8 +445,16 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
|
|
|
| registerReceiver();
|
| if (connectivityManagerDelegate.supportNetworkCallback()) {
|
| - mobileNetworkCallback = new NetworkCallback();
|
| - connectivityManagerDelegate.requestMobileNetwork(mobileNetworkCallback);
|
| + // On Android 6.0.0, the WRITE_SETTINGS permission is necessary for
|
| + // requestNetwork, so it will fail. This was fixed in Android 6.0.1.
|
| + NetworkCallback tempNetworkCallback = new NetworkCallback();
|
| + try {
|
| + connectivityManagerDelegate.requestMobileNetwork(tempNetworkCallback);
|
| + } catch (java.lang.SecurityException e) {
|
| + Logging.w(TAG, "Unable to obtain permission to request a cellular network.");
|
| + tempNetworkCallback = null;
|
| + }
|
| + mobileNetworkCallback = tempNetworkCallback;
|
| allNetworkCallback = new SimpleNetworkCallback();
|
| connectivityManagerDelegate.registerNetworkCallback(allNetworkCallback);
|
| } else {
|
|
|