Loading packages/SettingsLib/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ <!-- Status message of Wi-Fi when network has matching passpoint credentials. [CHAR LIMIT=NONE] --> <string name="available_via_passpoint">Available via %1$s</string> <!-- Summary for Connected wifi network without internet --> <string name="wifi_connected_no_internet">Connected, no Internet</string> <!-- Bluetooth settings. Message when a device is disconnected --> <string name="bluetooth_disconnected">Disconnected</string> <!-- Bluetooth settings. Message when disconnecting from a device --> Loading packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +25 −0 Original line number Diff line number Diff line Loading @@ -17,9 +17,13 @@ package com.android.settingslib.wifi; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.NetworkInfo.State; import android.net.wifi.IWifiManager; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; Loading @@ -27,6 +31,8 @@ import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; import android.util.LruCache; Loading Loading @@ -700,6 +706,25 @@ public class AccessPoint implements Comparable<AccessPoint> { } } // Case when there is wifi connected without internet connectivity. final ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (state == DetailedState.CONNECTED) { IWifiManager wifiManager = IWifiManager.Stub.asInterface( ServiceManager.getService(Context.WIFI_SERVICE)); Network nw; try { nw = wifiManager.getCurrentNetwork(); } catch (RemoteException e) { nw = null; } NetworkCapabilities nc = cm.getNetworkCapabilities(nw); if (nc != null && !nc.hasCapability(nc.NET_CAPABILITY_VALIDATED)) { return context.getString(R.string.wifi_connected_no_internet); } } String[] formats = context.getResources().getStringArray((ssid == null) ? R.array.wifi_status : R.array.wifi_status_with_ssid); int index = state.ordinal(); Loading services/core/java/com/android/server/ConnectivityService.java +7 −1 Original line number Diff line number Diff line Loading @@ -1141,7 +1141,13 @@ public class ConnectivityService extends IConnectivityManager.Stub NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network); if (nai != null) { synchronized (nai) { return new NetworkCapabilities(nai.networkCapabilities); NetworkCapabilities nc = new NetworkCapabilities(nai.networkCapabilities); if (nai.lastValidated) { nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); } else { nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); } return nc; } } return null; Loading wifi/java/android/net/wifi/IWifiManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.net.wifi.WifiChannel; import android.net.wifi.ScanResult; import android.net.wifi.WifiConnectionStatistics; import android.net.wifi.WifiActivityEnergyInfo; import android.net.Network; import android.net.DhcpInfo; Loading Loading @@ -168,5 +169,7 @@ interface IWifiManager void disableEphemeralNetwork(String SSID); void factoryReset(); Network getCurrentNetwork(); } wifi/java/android/net/wifi/WifiManager.java +13 −0 Original line number Diff line number Diff line Loading @@ -2804,4 +2804,17 @@ public class WifiManager { } catch (RemoteException e) { } } /** * Get Network object of current wifi network * @return Get Network object of current wifi network * @hide */ public Network getCurrentNetwork() { try { return mService.getCurrentNetwork(); } catch (RemoteException e) { return null; } } } Loading
packages/SettingsLib/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,9 @@ <!-- Status message of Wi-Fi when network has matching passpoint credentials. [CHAR LIMIT=NONE] --> <string name="available_via_passpoint">Available via %1$s</string> <!-- Summary for Connected wifi network without internet --> <string name="wifi_connected_no_internet">Connected, no Internet</string> <!-- Bluetooth settings. Message when a device is disconnected --> <string name="bluetooth_disconnected">Disconnected</string> <!-- Bluetooth settings. Message when disconnecting from a device --> Loading
packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +25 −0 Original line number Diff line number Diff line Loading @@ -17,9 +17,13 @@ package com.android.settingslib.wifi; import android.content.Context; import android.net.ConnectivityManager; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.NetworkInfo.State; import android.net.wifi.IWifiManager; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration.KeyMgmt; Loading @@ -27,6 +31,8 @@ import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.text.TextUtils; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Log; import android.util.LruCache; Loading Loading @@ -700,6 +706,25 @@ public class AccessPoint implements Comparable<AccessPoint> { } } // Case when there is wifi connected without internet connectivity. final ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (state == DetailedState.CONNECTED) { IWifiManager wifiManager = IWifiManager.Stub.asInterface( ServiceManager.getService(Context.WIFI_SERVICE)); Network nw; try { nw = wifiManager.getCurrentNetwork(); } catch (RemoteException e) { nw = null; } NetworkCapabilities nc = cm.getNetworkCapabilities(nw); if (nc != null && !nc.hasCapability(nc.NET_CAPABILITY_VALIDATED)) { return context.getString(R.string.wifi_connected_no_internet); } } String[] formats = context.getResources().getStringArray((ssid == null) ? R.array.wifi_status : R.array.wifi_status_with_ssid); int index = state.ordinal(); Loading
services/core/java/com/android/server/ConnectivityService.java +7 −1 Original line number Diff line number Diff line Loading @@ -1141,7 +1141,13 @@ public class ConnectivityService extends IConnectivityManager.Stub NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network); if (nai != null) { synchronized (nai) { return new NetworkCapabilities(nai.networkCapabilities); NetworkCapabilities nc = new NetworkCapabilities(nai.networkCapabilities); if (nai.lastValidated) { nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); } else { nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); } return nc; } } return null; Loading
wifi/java/android/net/wifi/IWifiManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.net.wifi.WifiChannel; import android.net.wifi.ScanResult; import android.net.wifi.WifiConnectionStatistics; import android.net.wifi.WifiActivityEnergyInfo; import android.net.Network; import android.net.DhcpInfo; Loading Loading @@ -168,5 +169,7 @@ interface IWifiManager void disableEphemeralNetwork(String SSID); void factoryReset(); Network getCurrentNetwork(); }
wifi/java/android/net/wifi/WifiManager.java +13 −0 Original line number Diff line number Diff line Loading @@ -2804,4 +2804,17 @@ public class WifiManager { } catch (RemoteException e) { } } /** * Get Network object of current wifi network * @return Get Network object of current wifi network * @hide */ public Network getCurrentNetwork() { try { return mService.getCurrentNetwork(); } catch (RemoteException e) { return null; } } }