Loading core/java/android/net/BaseNetworkStateTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public abstract class BaseNetworkStateTracker implements NetworkStateTracker { } @Override public LinkInfo getLinkInfo() { public LinkQualityInfo getLinkQualityInfo() { return null; } Loading core/java/android/net/ConnectivityManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -1426,9 +1426,9 @@ public class ConnectivityManager { * get the information about a specific network link * @hide */ public LinkInfo getLinkInfo(int networkType) { public LinkQualityInfo getLinkQualityInfo(int networkType) { try { LinkInfo li = mService.getLinkInfo(networkType); LinkQualityInfo li = mService.getLinkQualityInfo(networkType); return li; } catch (RemoteException e) { return null; Loading @@ -1439,9 +1439,9 @@ public class ConnectivityManager { * get the information of currently active network link * @hide */ public LinkInfo getActiveLinkInfo() { public LinkQualityInfo getActiveLinkQualityInfo() { try { LinkInfo li = mService.getActiveLinkInfo(); LinkQualityInfo li = mService.getActiveLinkQualityInfo(); return li; } catch (RemoteException e) { return null; Loading @@ -1452,9 +1452,9 @@ public class ConnectivityManager { * get the information of all network links * @hide */ public LinkInfo[] getAllLinkInfo() { public LinkQualityInfo[] getAllLinkQualityInfo() { try { LinkInfo[] li = mService.getAllLinkInfo(); LinkQualityInfo[] li = mService.getAllLinkQualityInfo(); return li; } catch (RemoteException e) { return null; Loading core/java/android/net/IConnectivityManager.aidl +4 −4 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ package android.net; import android.net.LinkInfo; import android.net.LinkQualityInfo; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkQuotaInfo; Loading Loading @@ -149,11 +149,11 @@ interface IConnectivityManager String getMobileRedirectedProvisioningUrl(); LinkInfo getLinkInfo(int networkType); LinkQualityInfo getLinkQualityInfo(int networkType); LinkInfo getActiveLinkInfo(); LinkQualityInfo getActiveLinkQualityInfo(); LinkInfo[] getAllLinkInfo(); LinkQualityInfo[] getAllLinkQualityInfo(); void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url); } core/java/android/net/LinkInfo.aidl→core/java/android/net/LinkQualityInfo.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -16,4 +16,4 @@ package android.net; parcelable LinkInfo; parcelable LinkQualityInfo; core/java/android/net/LinkInfo.java→core/java/android/net/LinkQualityInfo.java +286 −0 Original line number Diff line number Diff line Loading @@ -23,39 +23,48 @@ import android.os.Parcelable; * Class that represents useful attributes of generic network links * such as the upload/download throughput or packet error rate. * Generally speaking, you should be dealing with instances of * LinkInfo subclasses, such as {@link android.net.#WifiLinkInfo} * or {@link android.net.#MobileLinkInfo} which provide additional * LinkQualityInfo subclasses, such as {@link android.net.#WifiLinkQualityInfo} * or {@link android.net.#MobileLinkQualityInfo} which provide additional * information. * @hide */ public class LinkInfo implements Parcelable { public static final int UNKNOWN = -1; public class LinkQualityInfo implements Parcelable { /** * Represents a value that you can use to test if an integer field is set to a good value */ public static final int UNKNOWN_INT = Integer.MAX_VALUE; /** * Represents a value that you can use to test if a long field is set to a good value */ public static final long UNKNOWN_LONG = Long.MAX_VALUE; public static final int NORMALIZED_MIN_SIGNAL_STRENGTH = 0; public static final int NORMALIZED_MAX_SIGNAL_STRENGTH = 99; public static final int NORMALIZED_SIGNAL_STRENGTH_RANGE = NORMALIZED_MAX_SIGNAL_STRENGTH + 1; public static final int NORMALIZED_SIGNAL_STRENGTH_RANGE = NORMALIZED_MAX_SIGNAL_STRENGTH - NORMALIZED_MIN_SIGNAL_STRENGTH + 1; /* Network type as defined by ConnectivityManager */ public int mNetworkType = ConnectivityManager.TYPE_NONE; private int mNetworkType = ConnectivityManager.TYPE_NONE; public int mNormalizedSignalStrength = UNKNOWN; private int mNormalizedSignalStrength = UNKNOWN_INT; public long mPacketCount = UNKNOWN; public long mPacketErrorCount = UNKNOWN; public int mTheoreticalTxBandwidth = UNKNOWN; public int mTheoreticalRxBandwidth = UNKNOWN; public int mTheoreticalLatency = UNKNOWN; private long mPacketCount = UNKNOWN_LONG; private long mPacketErrorCount = UNKNOWN_LONG; private int mTheoreticalTxBandwidth = UNKNOWN_INT; private int mTheoreticalRxBandwidth = UNKNOWN_INT; private int mTheoreticalLatency = UNKNOWN_INT; /* Timestamp when last sample was made available */ public long mLastDataSampleTime = UNKNOWN; private long mLastDataSampleTime = UNKNOWN_LONG; /* Sample duration in millisecond */ public int mDataSampleDuration = UNKNOWN; private int mDataSampleDuration = UNKNOWN_INT; public LinkInfo() { public LinkQualityInfo() { } Loading @@ -66,18 +75,25 @@ public class LinkInfo implements Parcelable public int describeContents() { return 0; } /** * Implement the Parcelable interface. */ protected static final int OBJECT_TYPE_LINKINFO = 1; protected static final int OBJECT_TYPE_WIFI_LINKINFO = 2; protected static final int OBJECT_TYPE_MOBILE_LINKINFO = 3; protected static final int OBJECT_TYPE_LINK_QUALITY_INFO = 1; protected static final int OBJECT_TYPE_WIFI_LINK_QUALITY_INFO = 2; protected static final int OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO = 3; /** * @hide */ public void writeToParcel(Parcel dest, int flags) { writeToParcel(dest, flags, OBJECT_TYPE_LINKINFO); writeToParcel(dest, flags, OBJECT_TYPE_LINK_QUALITY_INFO); } /** * @hide */ public void writeToParcel(Parcel dest, int flags, int objectType) { dest.writeInt(objectType); dest.writeInt(mNetworkType); Loading @@ -91,28 +107,34 @@ public class LinkInfo implements Parcelable dest.writeInt(mDataSampleDuration); } public static final Creator<LinkInfo> CREATOR = new Creator<LinkInfo>() { public LinkInfo createFromParcel(Parcel in) { /** * @hide */ public static final Creator<LinkQualityInfo> CREATOR = new Creator<LinkQualityInfo>() { public LinkQualityInfo createFromParcel(Parcel in) { int objectType = in.readInt(); if (objectType == OBJECT_TYPE_LINKINFO) { LinkInfo li = new LinkInfo(); if (objectType == OBJECT_TYPE_LINK_QUALITY_INFO) { LinkQualityInfo li = new LinkQualityInfo(); li.initializeFromParcel(in); return li; } else if (objectType == OBJECT_TYPE_WIFI_LINKINFO) { return WifiLinkInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_MOBILE_LINKINFO) { return MobileLinkInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_WIFI_LINK_QUALITY_INFO) { return WifiLinkQualityInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO) { return MobileLinkQualityInfo.createFromParcelBody(in); } else { return null; } } public LinkInfo[] newArray(int size) { return new LinkInfo[size]; public LinkQualityInfo[] newArray(int size) { return new LinkQualityInfo[size]; } }; /** * @hide */ protected void initializeFromParcel(Parcel in) { mNetworkType = in.readInt(); mNormalizedSignalStrength = in.readInt(); Loading @@ -125,4 +147,140 @@ public class LinkInfo implements Parcelable mDataSampleDuration = in.readInt(); } /** * returns the type of network this link is connected to * @return network type as defined by {@link android.net.ConnectivityManager} or * {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getNetworkType() { return mNetworkType; } /** * @hide */ public void setNetworkType(int networkType) { mNetworkType = networkType; } /** * returns the signal strength normalized across multiple types of networks * @return an integer value from 0 - 99 or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getNormalizedSignalStrength() { return mNormalizedSignalStrength; } /** * @hide */ public void setNormalizedSignalStrength(int normalizedSignalStrength) { mNormalizedSignalStrength = normalizedSignalStrength; } /** * returns the total number of packets sent or received in sample duration * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getPacketCount() { return mPacketCount; } /** * @hide */ public void setPacketCount(long packetCount) { mPacketCount = packetCount; } /** * returns the total number of packets errors encountered in sample duration * @return number of errors or {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getPacketErrorCount() { return mPacketErrorCount; } /** * @hide */ public void setPacketErrorCount(long packetErrorCount) { mPacketErrorCount = packetErrorCount; } /** * returns the theoretical upload bandwidth of this network * @return bandwidth in Kbps or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalTxBandwidth() { return mTheoreticalTxBandwidth; } /** * @hide */ public void setTheoreticalTxBandwidth(int theoreticalTxBandwidth) { mTheoreticalTxBandwidth = theoreticalTxBandwidth; } /** * returns the theoretical download bandwidth of this network * @return bandwidth in Kbps or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalRxBandwidth() { return mTheoreticalRxBandwidth; } /** * @hide */ public void setTheoreticalRxBandwidth(int theoreticalRxBandwidth) { mTheoreticalRxBandwidth = theoreticalRxBandwidth; } /** * returns the theoretical latency of this network * @return latency in milliseconds or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalLatency() { return mTheoreticalLatency; } /** * @hide */ public void setTheoreticalLatency(int theoreticalLatency) { mTheoreticalLatency = theoreticalLatency; } /** * returns the time stamp of the last sample * @return milliseconds elapsed since start and sample time or * {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getLastDataSampleTime() { return mLastDataSampleTime; } /** * @hide */ public void setLastDataSampleTime(long lastDataSampleTime) { mLastDataSampleTime = lastDataSampleTime; } /** * returns the sample duration used * @return duration in milliseconds or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getDataSampleDuration() { return mDataSampleDuration; } /** * @hide */ public void setDataSampleDuration(int dataSampleDuration) { mDataSampleDuration = dataSampleDuration; } } Loading
core/java/android/net/BaseNetworkStateTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ public abstract class BaseNetworkStateTracker implements NetworkStateTracker { } @Override public LinkInfo getLinkInfo() { public LinkQualityInfo getLinkQualityInfo() { return null; } Loading
core/java/android/net/ConnectivityManager.java +6 −6 Original line number Diff line number Diff line Loading @@ -1426,9 +1426,9 @@ public class ConnectivityManager { * get the information about a specific network link * @hide */ public LinkInfo getLinkInfo(int networkType) { public LinkQualityInfo getLinkQualityInfo(int networkType) { try { LinkInfo li = mService.getLinkInfo(networkType); LinkQualityInfo li = mService.getLinkQualityInfo(networkType); return li; } catch (RemoteException e) { return null; Loading @@ -1439,9 +1439,9 @@ public class ConnectivityManager { * get the information of currently active network link * @hide */ public LinkInfo getActiveLinkInfo() { public LinkQualityInfo getActiveLinkQualityInfo() { try { LinkInfo li = mService.getActiveLinkInfo(); LinkQualityInfo li = mService.getActiveLinkQualityInfo(); return li; } catch (RemoteException e) { return null; Loading @@ -1452,9 +1452,9 @@ public class ConnectivityManager { * get the information of all network links * @hide */ public LinkInfo[] getAllLinkInfo() { public LinkQualityInfo[] getAllLinkQualityInfo() { try { LinkInfo[] li = mService.getAllLinkInfo(); LinkQualityInfo[] li = mService.getAllLinkQualityInfo(); return li; } catch (RemoteException e) { return null; Loading
core/java/android/net/IConnectivityManager.aidl +4 −4 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ package android.net; import android.net.LinkInfo; import android.net.LinkQualityInfo; import android.net.LinkProperties; import android.net.NetworkInfo; import android.net.NetworkQuotaInfo; Loading Loading @@ -149,11 +149,11 @@ interface IConnectivityManager String getMobileRedirectedProvisioningUrl(); LinkInfo getLinkInfo(int networkType); LinkQualityInfo getLinkQualityInfo(int networkType); LinkInfo getActiveLinkInfo(); LinkQualityInfo getActiveLinkQualityInfo(); LinkInfo[] getAllLinkInfo(); LinkQualityInfo[] getAllLinkQualityInfo(); void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url); }
core/java/android/net/LinkInfo.aidl→core/java/android/net/LinkQualityInfo.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -16,4 +16,4 @@ package android.net; parcelable LinkInfo; parcelable LinkQualityInfo;
core/java/android/net/LinkInfo.java→core/java/android/net/LinkQualityInfo.java +286 −0 Original line number Diff line number Diff line Loading @@ -23,39 +23,48 @@ import android.os.Parcelable; * Class that represents useful attributes of generic network links * such as the upload/download throughput or packet error rate. * Generally speaking, you should be dealing with instances of * LinkInfo subclasses, such as {@link android.net.#WifiLinkInfo} * or {@link android.net.#MobileLinkInfo} which provide additional * LinkQualityInfo subclasses, such as {@link android.net.#WifiLinkQualityInfo} * or {@link android.net.#MobileLinkQualityInfo} which provide additional * information. * @hide */ public class LinkInfo implements Parcelable { public static final int UNKNOWN = -1; public class LinkQualityInfo implements Parcelable { /** * Represents a value that you can use to test if an integer field is set to a good value */ public static final int UNKNOWN_INT = Integer.MAX_VALUE; /** * Represents a value that you can use to test if a long field is set to a good value */ public static final long UNKNOWN_LONG = Long.MAX_VALUE; public static final int NORMALIZED_MIN_SIGNAL_STRENGTH = 0; public static final int NORMALIZED_MAX_SIGNAL_STRENGTH = 99; public static final int NORMALIZED_SIGNAL_STRENGTH_RANGE = NORMALIZED_MAX_SIGNAL_STRENGTH + 1; public static final int NORMALIZED_SIGNAL_STRENGTH_RANGE = NORMALIZED_MAX_SIGNAL_STRENGTH - NORMALIZED_MIN_SIGNAL_STRENGTH + 1; /* Network type as defined by ConnectivityManager */ public int mNetworkType = ConnectivityManager.TYPE_NONE; private int mNetworkType = ConnectivityManager.TYPE_NONE; public int mNormalizedSignalStrength = UNKNOWN; private int mNormalizedSignalStrength = UNKNOWN_INT; public long mPacketCount = UNKNOWN; public long mPacketErrorCount = UNKNOWN; public int mTheoreticalTxBandwidth = UNKNOWN; public int mTheoreticalRxBandwidth = UNKNOWN; public int mTheoreticalLatency = UNKNOWN; private long mPacketCount = UNKNOWN_LONG; private long mPacketErrorCount = UNKNOWN_LONG; private int mTheoreticalTxBandwidth = UNKNOWN_INT; private int mTheoreticalRxBandwidth = UNKNOWN_INT; private int mTheoreticalLatency = UNKNOWN_INT; /* Timestamp when last sample was made available */ public long mLastDataSampleTime = UNKNOWN; private long mLastDataSampleTime = UNKNOWN_LONG; /* Sample duration in millisecond */ public int mDataSampleDuration = UNKNOWN; private int mDataSampleDuration = UNKNOWN_INT; public LinkInfo() { public LinkQualityInfo() { } Loading @@ -66,18 +75,25 @@ public class LinkInfo implements Parcelable public int describeContents() { return 0; } /** * Implement the Parcelable interface. */ protected static final int OBJECT_TYPE_LINKINFO = 1; protected static final int OBJECT_TYPE_WIFI_LINKINFO = 2; protected static final int OBJECT_TYPE_MOBILE_LINKINFO = 3; protected static final int OBJECT_TYPE_LINK_QUALITY_INFO = 1; protected static final int OBJECT_TYPE_WIFI_LINK_QUALITY_INFO = 2; protected static final int OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO = 3; /** * @hide */ public void writeToParcel(Parcel dest, int flags) { writeToParcel(dest, flags, OBJECT_TYPE_LINKINFO); writeToParcel(dest, flags, OBJECT_TYPE_LINK_QUALITY_INFO); } /** * @hide */ public void writeToParcel(Parcel dest, int flags, int objectType) { dest.writeInt(objectType); dest.writeInt(mNetworkType); Loading @@ -91,28 +107,34 @@ public class LinkInfo implements Parcelable dest.writeInt(mDataSampleDuration); } public static final Creator<LinkInfo> CREATOR = new Creator<LinkInfo>() { public LinkInfo createFromParcel(Parcel in) { /** * @hide */ public static final Creator<LinkQualityInfo> CREATOR = new Creator<LinkQualityInfo>() { public LinkQualityInfo createFromParcel(Parcel in) { int objectType = in.readInt(); if (objectType == OBJECT_TYPE_LINKINFO) { LinkInfo li = new LinkInfo(); if (objectType == OBJECT_TYPE_LINK_QUALITY_INFO) { LinkQualityInfo li = new LinkQualityInfo(); li.initializeFromParcel(in); return li; } else if (objectType == OBJECT_TYPE_WIFI_LINKINFO) { return WifiLinkInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_MOBILE_LINKINFO) { return MobileLinkInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_WIFI_LINK_QUALITY_INFO) { return WifiLinkQualityInfo.createFromParcelBody(in); } else if (objectType == OBJECT_TYPE_MOBILE_LINK_QUALITY_INFO) { return MobileLinkQualityInfo.createFromParcelBody(in); } else { return null; } } public LinkInfo[] newArray(int size) { return new LinkInfo[size]; public LinkQualityInfo[] newArray(int size) { return new LinkQualityInfo[size]; } }; /** * @hide */ protected void initializeFromParcel(Parcel in) { mNetworkType = in.readInt(); mNormalizedSignalStrength = in.readInt(); Loading @@ -125,4 +147,140 @@ public class LinkInfo implements Parcelable mDataSampleDuration = in.readInt(); } /** * returns the type of network this link is connected to * @return network type as defined by {@link android.net.ConnectivityManager} or * {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getNetworkType() { return mNetworkType; } /** * @hide */ public void setNetworkType(int networkType) { mNetworkType = networkType; } /** * returns the signal strength normalized across multiple types of networks * @return an integer value from 0 - 99 or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getNormalizedSignalStrength() { return mNormalizedSignalStrength; } /** * @hide */ public void setNormalizedSignalStrength(int normalizedSignalStrength) { mNormalizedSignalStrength = normalizedSignalStrength; } /** * returns the total number of packets sent or received in sample duration * @return number of packets or {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getPacketCount() { return mPacketCount; } /** * @hide */ public void setPacketCount(long packetCount) { mPacketCount = packetCount; } /** * returns the total number of packets errors encountered in sample duration * @return number of errors or {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getPacketErrorCount() { return mPacketErrorCount; } /** * @hide */ public void setPacketErrorCount(long packetErrorCount) { mPacketErrorCount = packetErrorCount; } /** * returns the theoretical upload bandwidth of this network * @return bandwidth in Kbps or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalTxBandwidth() { return mTheoreticalTxBandwidth; } /** * @hide */ public void setTheoreticalTxBandwidth(int theoreticalTxBandwidth) { mTheoreticalTxBandwidth = theoreticalTxBandwidth; } /** * returns the theoretical download bandwidth of this network * @return bandwidth in Kbps or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalRxBandwidth() { return mTheoreticalRxBandwidth; } /** * @hide */ public void setTheoreticalRxBandwidth(int theoreticalRxBandwidth) { mTheoreticalRxBandwidth = theoreticalRxBandwidth; } /** * returns the theoretical latency of this network * @return latency in milliseconds or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getTheoreticalLatency() { return mTheoreticalLatency; } /** * @hide */ public void setTheoreticalLatency(int theoreticalLatency) { mTheoreticalLatency = theoreticalLatency; } /** * returns the time stamp of the last sample * @return milliseconds elapsed since start and sample time or * {@link android.net.LinkQualityInfo#UNKNOWN_LONG} */ public long getLastDataSampleTime() { return mLastDataSampleTime; } /** * @hide */ public void setLastDataSampleTime(long lastDataSampleTime) { mLastDataSampleTime = lastDataSampleTime; } /** * returns the sample duration used * @return duration in milliseconds or {@link android.net.LinkQualityInfo#UNKNOWN_INT} */ public int getDataSampleDuration() { return mDataSampleDuration; } /** * @hide */ public void setDataSampleDuration(int dataSampleDuration) { mDataSampleDuration = dataSampleDuration; } }