Create new isNetworkSupported API

Useful for checking if on a wifi-only device.
Similar to asking for NetworkInfo for a network type and checking for
null, though here the intent is explicit.

bug:5087537
Change-Id: Ia3ddd09b6b735b8b3ceb7a347891e015fd96b218
This commit is contained in:
Robert Greenwalt
2011-08-31 11:46:42 -07:00
parent 971cd16561
commit 0114f6e8e9
3 changed files with 26 additions and 0 deletions

View File

@@ -814,4 +814,22 @@ public class ConnectivityManager {
} catch (RemoteException e) { } catch (RemoteException e) {
} }
} }
/**
* Returns true if the hardware supports the given network type
* else it returns false. This doesn't indicate we have coverage
* or are authorized onto a network, just whether or not the
* hardware supports it. For example a gsm phone without a sim
* should still return true for mobile data, but a wifi only tablet
* would return false.
* @param networkType The nework type we'd like to check
* @return true if supported, else false
* @hide
*/
public boolean isNetworkSupported(int networkType) {
try {
return mService.isNetworkSupported(networkType);
} catch (RemoteException e) {}
return false;
}
} }

View File

@@ -43,6 +43,8 @@ interface IConnectivityManager
NetworkInfo getNetworkInfo(int networkType); NetworkInfo getNetworkInfo(int networkType);
NetworkInfo[] getAllNetworkInfo(); NetworkInfo[] getAllNetworkInfo();
boolean isNetworkSupported(int networkType);
LinkProperties getActiveLinkProperties(); LinkProperties getActiveLinkProperties();
LinkProperties getLinkProperties(int networkType); LinkProperties getLinkProperties(int networkType);

View File

@@ -703,6 +703,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
return result.toArray(new NetworkInfo[result.size()]); return result.toArray(new NetworkInfo[result.size()]);
} }
@Override
public boolean isNetworkSupported(int networkType) {
enforceAccessPermission();
return (isNetworkTypeValid(networkType) && (mNetTrackers[networkType] != null));
}
/** /**
* Return LinkProperties for the active (i.e., connected) default * Return LinkProperties for the active (i.e., connected) default
* network interface. It is assumed that at most one default network * network interface. It is assumed that at most one default network