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;
|
package android.telephony;
|
||||||
|
|
||||||
import static android.telephony.TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN;
|
|
||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
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.
|
* Get current data network type.
|
||||||
*
|
*
|
||||||
@@ -1738,36 +1730,6 @@ public class ServiceState implements Parcelable {
|
|||||||
return false;
|
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 */
|
/** @hide */
|
||||||
public static int getBitmaskForTech(int radioTech) {
|
public static int getBitmaskForTech(int radioTech) {
|
||||||
if (radioTech >= 1) {
|
if (radioTech >= 1) {
|
||||||
|
|||||||
@@ -1417,6 +1417,28 @@ public class ApnSetting implements Parcelable {
|
|||||||
return port == UNSPECIFIED_INT ? null : Integer.toString(port);
|
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.
|
// Implement Parcelable.
|
||||||
@Override
|
@Override
|
||||||
/** @hide */
|
/** @hide */
|
||||||
|
|||||||
Reference in New Issue
Block a user