Loading api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -16980,7 +16980,8 @@ package android.net { method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void releaseNetworkRequest(android.app.PendingIntent); method public void removeDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener); method public void reportBadNetwork(android.net.Network); method public deprecated void reportBadNetwork(android.net.Network); method public void reportNetworkConnectivity(android.net.Network, boolean); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int); api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -18241,7 +18241,8 @@ package android.net { method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void releaseNetworkRequest(android.app.PendingIntent); method public void removeDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener); method public void reportBadNetwork(android.net.Network); method public deprecated void reportBadNetwork(android.net.Network); method public void reportNetworkConnectivity(android.net.Network, boolean); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int); core/java/android/net/ConnectivityManager.java +24 −1 Original line number Diff line number Diff line Loading @@ -1708,10 +1708,33 @@ public class ConnectivityManager { * * @param network The {@link Network} the application was attempting to use * or {@code null} to indicate the current default network. * @deprecated Use {@link #reportNetworkConnectivity} which allows reporting both * working and non-working connectivity. */ public void reportBadNetwork(Network network) { try { mService.reportBadNetwork(network); // One of these will be ignored because it matches system's current state. // The other will trigger the necessary reevaluation. mService.reportNetworkConnectivity(network, true); mService.reportNetworkConnectivity(network, false); } catch (RemoteException e) { } } /** * Report to the framework whether a network has working connectivity. * This provides a hint to the system that a particular network is providing * working connectivity or not. In response the framework may re-evaluate * the network's connectivity and might take further action thereafter. * * @param network The {@link Network} the application was attempting to use * or {@code null} to indicate the current default network. * @param hasConnectivity {@code true} if the application was able to successfully access the * Internet using {@code network} or {@code false} if not. */ public void reportNetworkConnectivity(Network network, boolean hasConnectivity) { try { mService.reportNetworkConnectivity(network, hasConnectivity); } catch (RemoteException e) { } } Loading core/java/android/net/IConnectivityManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ interface IConnectivityManager void reportInetCondition(int networkType, int percentage); void reportBadNetwork(in Network network); void reportNetworkConnectivity(in Network network, boolean hasConnectivity); ProxyInfo getGlobalProxy(); Loading services/core/java/com/android/server/ConnectivityService.java +15 −13 Original line number Diff line number Diff line Loading @@ -2461,25 +2461,27 @@ public class ConnectivityService extends IConnectivityManager.Stub public void reportInetCondition(int networkType, int percentage) { NetworkAgentInfo nai = mLegacyTypeTracker.getNetworkForType(networkType); if (nai == null) return; boolean isGood = percentage > 50; // Revalidate if the app report does not match our current validated state. if (isGood != nai.lastValidated) { // Make the message logged by reportBadNetwork below less confusing. if (DBG && isGood) log("reportInetCondition: type=" + networkType + " ok, revalidate"); reportBadNetwork(nai.network); } reportNetworkConnectivity(nai.network, percentage > 50); } public void reportBadNetwork(Network network) { public void reportNetworkConnectivity(Network network, boolean hasConnectivity) { enforceAccessPermission(); enforceInternetPermission(); if (network == null) return; final int uid = Binder.getCallingUid(); NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network); NetworkAgentInfo nai; if (network == null) { nai = getDefaultNetwork(); } else { nai = getNetworkAgentInfoForNetwork(network); } if (nai == null) return; if (DBG) log("reportBadNetwork(" + nai.name() + ") by " + uid); // Revalidate if the app report does not match our current validated state. if (hasConnectivity == nai.lastValidated) return; final int uid = Binder.getCallingUid(); if (DBG) { log("reportNetworkConnectivity(" + nai.network.netId + ", " + hasConnectivity + ") by " + uid); } synchronized (nai) { // Validating an uncreated network could result in a call to rematchNetworkAndRequests() // which isn't meant to work on uncreated networks. Loading Loading
api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -16980,7 +16980,8 @@ package android.net { method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void releaseNetworkRequest(android.app.PendingIntent); method public void removeDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener); method public void reportBadNetwork(android.net.Network); method public deprecated void reportBadNetwork(android.net.Network); method public void reportNetworkConnectivity(android.net.Network, boolean); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int);
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -18241,7 +18241,8 @@ package android.net { method public void registerNetworkCallback(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void releaseNetworkRequest(android.app.PendingIntent); method public void removeDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener); method public void reportBadNetwork(android.net.Network); method public deprecated void reportBadNetwork(android.net.Network); method public void reportNetworkConnectivity(android.net.Network, boolean); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated boolean requestRouteToHost(int, int);
core/java/android/net/ConnectivityManager.java +24 −1 Original line number Diff line number Diff line Loading @@ -1708,10 +1708,33 @@ public class ConnectivityManager { * * @param network The {@link Network} the application was attempting to use * or {@code null} to indicate the current default network. * @deprecated Use {@link #reportNetworkConnectivity} which allows reporting both * working and non-working connectivity. */ public void reportBadNetwork(Network network) { try { mService.reportBadNetwork(network); // One of these will be ignored because it matches system's current state. // The other will trigger the necessary reevaluation. mService.reportNetworkConnectivity(network, true); mService.reportNetworkConnectivity(network, false); } catch (RemoteException e) { } } /** * Report to the framework whether a network has working connectivity. * This provides a hint to the system that a particular network is providing * working connectivity or not. In response the framework may re-evaluate * the network's connectivity and might take further action thereafter. * * @param network The {@link Network} the application was attempting to use * or {@code null} to indicate the current default network. * @param hasConnectivity {@code true} if the application was able to successfully access the * Internet using {@code network} or {@code false} if not. */ public void reportNetworkConnectivity(Network network, boolean hasConnectivity) { try { mService.reportNetworkConnectivity(network, hasConnectivity); } catch (RemoteException e) { } } Loading
core/java/android/net/IConnectivityManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ interface IConnectivityManager void reportInetCondition(int networkType, int percentage); void reportBadNetwork(in Network network); void reportNetworkConnectivity(in Network network, boolean hasConnectivity); ProxyInfo getGlobalProxy(); Loading
services/core/java/com/android/server/ConnectivityService.java +15 −13 Original line number Diff line number Diff line Loading @@ -2461,25 +2461,27 @@ public class ConnectivityService extends IConnectivityManager.Stub public void reportInetCondition(int networkType, int percentage) { NetworkAgentInfo nai = mLegacyTypeTracker.getNetworkForType(networkType); if (nai == null) return; boolean isGood = percentage > 50; // Revalidate if the app report does not match our current validated state. if (isGood != nai.lastValidated) { // Make the message logged by reportBadNetwork below less confusing. if (DBG && isGood) log("reportInetCondition: type=" + networkType + " ok, revalidate"); reportBadNetwork(nai.network); } reportNetworkConnectivity(nai.network, percentage > 50); } public void reportBadNetwork(Network network) { public void reportNetworkConnectivity(Network network, boolean hasConnectivity) { enforceAccessPermission(); enforceInternetPermission(); if (network == null) return; final int uid = Binder.getCallingUid(); NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network); NetworkAgentInfo nai; if (network == null) { nai = getDefaultNetwork(); } else { nai = getNetworkAgentInfoForNetwork(network); } if (nai == null) return; if (DBG) log("reportBadNetwork(" + nai.name() + ") by " + uid); // Revalidate if the app report does not match our current validated state. if (hasConnectivity == nai.lastValidated) return; final int uid = Binder.getCallingUid(); if (DBG) { log("reportNetworkConnectivity(" + nai.network.netId + ", " + hasConnectivity + ") by " + uid); } synchronized (nai) { // Validating an uncreated network could result in a call to rematchNetworkAndRequests() // which isn't meant to work on uncreated networks. Loading