Methods Summary |
---|
public static android.net.NetworkIdentity | buildNetworkIdentity(android.content.Context context, NetworkState state)Build a {@link NetworkIdentity} from the given {@link NetworkState},
assuming that any mobile networks are using the current IMSI.
final int type = state.networkInfo.getType();
final int subType = state.networkInfo.getSubtype();
String subscriberId = null;
String networkId = null;
boolean roaming = false;
if (isNetworkTypeMobile(type)) {
if (state.subscriberId == null) {
Slog.w(TAG, "Active mobile network without subscriber!");
}
subscriberId = state.subscriberId;
roaming = state.networkInfo.isRoaming();
} else if (type == TYPE_WIFI) {
if (state.networkId != null) {
networkId = state.networkId;
} else {
final WifiManager wifi = (WifiManager) context.getSystemService(
Context.WIFI_SERVICE);
final WifiInfo info = wifi.getConnectionInfo();
networkId = info != null ? info.getSSID() : null;
}
}
return new NetworkIdentity(type, subType, subscriberId, networkId, roaming);
|
public int | compareTo(android.net.NetworkIdentity another)
int res = Integer.compare(mType, another.mType);
if (res == 0) {
res = Integer.compare(mSubType, another.mSubType);
}
if (res == 0 && mSubscriberId != null && another.mSubscriberId != null) {
res = mSubscriberId.compareTo(another.mSubscriberId);
}
if (res == 0 && mNetworkId != null && another.mNetworkId != null) {
res = mNetworkId.compareTo(another.mNetworkId);
}
if (res == 0) {
res = Boolean.compare(mRoaming, another.mRoaming);
}
return res;
|
public boolean | equals(java.lang.Object obj)
if (obj instanceof NetworkIdentity) {
final NetworkIdentity ident = (NetworkIdentity) obj;
return mType == ident.mType && mSubType == ident.mSubType && mRoaming == ident.mRoaming
&& Objects.equals(mSubscriberId, ident.mSubscriberId)
&& Objects.equals(mNetworkId, ident.mNetworkId);
}
return false;
|
public java.lang.String | getNetworkId()
return mNetworkId;
|
public boolean | getRoaming()
return mRoaming;
|
public int | getSubType()
return mSubType;
|
public java.lang.String | getSubscriberId()
return mSubscriberId;
|
public int | getType()
return mType;
|
public int | hashCode()
return Objects.hash(mType, mSubType, mSubscriberId, mNetworkId, mRoaming);
|
public static java.lang.String | scrubSubscriberId(java.lang.String subscriberId)Scrub given IMSI on production builds.
if ("eng".equals(Build.TYPE)) {
return subscriberId;
} else if (subscriberId != null) {
// TODO: parse this as MCC+MNC instead of hard-coding
return subscriberId.substring(0, Math.min(6, subscriberId.length())) + "...";
} else {
return "null";
}
|
public static java.lang.String[] | scrubSubscriberId(java.lang.String[] subscriberId)Scrub given IMSI on production builds.
if (subscriberId == null) return null;
final String[] res = new String[subscriberId.length];
for (int i = 0; i < res.length; i++) {
res[i] = NetworkIdentity.scrubSubscriberId(subscriberId[i]);
}
return res;
|
public java.lang.String | toString()
final StringBuilder builder = new StringBuilder("{");
builder.append("type=").append(getNetworkTypeName(mType));
builder.append(", subType=");
if (COMBINE_SUBTYPE_ENABLED) {
builder.append("COMBINED");
} else if (ConnectivityManager.isNetworkTypeMobile(mType)) {
builder.append(TelephonyManager.getNetworkTypeName(mSubType));
} else {
builder.append(mSubType);
}
if (mSubscriberId != null) {
builder.append(", subscriberId=").append(scrubSubscriberId(mSubscriberId));
}
if (mNetworkId != null) {
builder.append(", networkId=").append(mNetworkId);
}
if (mRoaming) {
builder.append(", ROAMING");
}
return builder.append("}").toString();
|