Merge "Reverted to the old logic for APN selection" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5d02fcb146
@@ -16,8 +16,6 @@
|
||||
|
||||
package android.telephony;
|
||||
|
||||
import static android.telephony.TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -1607,12 +1605,6 @@ public class ServiceState implements Parcelable {
|
||||
}
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public static int networkTypeToAccessNetworkType(@TelephonyManager.NetworkType
|
||||
int networkType) {
|
||||
return rilRadioTechnologyToAccessNetworkType(networkTypeToRilRadioTechnology(networkType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current data network type.
|
||||
*
|
||||
@@ -1738,36 +1730,6 @@ public class ServiceState implements Parcelable {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Returns whether the bearerBitmask includes a networkType that matches the accessNetworkType.
|
||||
*
|
||||
* The NetworkType refers to NetworkType in TelephonyManager. For example
|
||||
* {@link TelephonyManager#NETWORK_TYPE_GPRS}.
|
||||
*
|
||||
* The accessNetworkType refers to {@link AccessNetworkType}.
|
||||
*
|
||||
* @hide
|
||||
* */
|
||||
public static boolean networkBitmaskHasAccessNetworkType(
|
||||
@TelephonyManager.NetworkTypeBitMask int networkBitmask, int accessNetworkType) {
|
||||
if (networkBitmask == NETWORK_TYPE_BITMASK_UNKNOWN) return true;
|
||||
if (accessNetworkType == AccessNetworkType.UNKNOWN) return false;
|
||||
|
||||
int networkType = 1;
|
||||
while (networkBitmask != 0) {
|
||||
if ((networkBitmask & 1) != 0) {
|
||||
if (networkTypeToAccessNetworkType(networkType) == accessNetworkType) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
networkBitmask = networkBitmask >> 1;
|
||||
networkType++;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public static int getBitmaskForTech(int radioTech) {
|
||||
if (radioTech >= 1) {
|
||||
|
||||
@@ -1417,6 +1417,28 @@ public class ApnSetting implements Parcelable {
|
||||
return port == UNSPECIFIED_INT ? null : Integer.toString(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this APN setting can support the given network
|
||||
*
|
||||
* @param networkType The network type
|
||||
* @return {@code true} if this APN setting can support the given network.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public boolean canSupportNetworkType(@TelephonyManager.NetworkType int networkType) {
|
||||
// Do a special checking for GSM. In reality, GSM is a voice only network type and can never
|
||||
// be used for data. We allow it here because in some DSDS corner cases, on the non-DDS
|
||||
// sub, modem reports data rat unknown. In that case if voice is GSM and this APN supports
|
||||
// GPRS or EDGE, this APN setting should be selected.
|
||||
if (networkType == TelephonyManager.NETWORK_TYPE_GSM
|
||||
&& (mNetworkTypeBitmask & (TelephonyManager.NETWORK_TYPE_BITMASK_GPRS
|
||||
| TelephonyManager.NETWORK_TYPE_BITMASK_EDGE)) != 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return ServiceState.bitmaskHasTech(mNetworkTypeBitmask, networkType);
|
||||
}
|
||||
|
||||
// Implement Parcelable.
|
||||
@Override
|
||||
/** @hide */
|
||||
|
||||
Reference in New Issue
Block a user