Add CAPABILITY_ALLOWED_NETWORK_TYPES_USED
* Made the HAL version available to radio interface capabilities * With version 1.6 of the Radio HAL, a new function was added to enforce the user network types preference (setAllowedNetworkTypeBitmap). Depending on the version implemented by the modem the setPreferredNetworkType and setAllowedNetworkTypes TelephonyManager API methods may use this new HAL method or rely on the previous method (setPreferredNetworkType). This new capability enum value can be used by TelephonyManager consumers to know which HAL function is effectively backing up their calls. Bug: 163168917 Test: checked logs, created RadioConfigCapabilitiesResponseTest Change-Id: Ie31d32a08b10b8c125f27832e81a3e65b6d8767a
This commit is contained in:
@@ -11949,6 +11949,7 @@ package android.telephony {
|
||||
field public static final int CALL_WAITING_STATUS_ENABLED = 1; // 0x1
|
||||
field public static final int CALL_WAITING_STATUS_NOT_SUPPORTED = 4; // 0x4
|
||||
field public static final int CALL_WAITING_STATUS_UNKNOWN_ERROR = 3; // 0x3
|
||||
field public static final String CAPABILITY_ALLOWED_NETWORK_TYPES_USED = "CAPABILITY_ALLOWED_NETWORK_TYPES_USED";
|
||||
field public static final String CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE = "CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE";
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
|
||||
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.telephony;
|
||||
|
||||
import android.util.ArraySet;
|
||||
|
||||
/**
|
||||
* Contains the set of supported capabilities that the Radio Interface supports on this device.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public class RadioInterfaceCapabilities {
|
||||
|
||||
private final ArraySet<String> mSupportedCapabilities;
|
||||
|
||||
|
||||
public RadioInterfaceCapabilities() {
|
||||
mSupportedCapabilities = new ArraySet<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks a capability as supported
|
||||
*
|
||||
* @param capabilityName the name of the capability
|
||||
*/
|
||||
public void addSupportedCapability(
|
||||
@TelephonyManager.RadioInterfaceCapability String capabilityName) {
|
||||
mSupportedCapabilities.add(capabilityName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the capability is supported
|
||||
*
|
||||
* @param capabilityName the name of the capability
|
||||
*/
|
||||
public boolean isSupported(String capabilityName) {
|
||||
return mSupportedCapabilities.contains(capabilityName);
|
||||
}
|
||||
}
|
||||
@@ -8491,6 +8491,11 @@ public class TelephonyManager {
|
||||
* <p>Requires Permission:
|
||||
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling
|
||||
* app has carrier privileges (see {@link #hasCarrierPrivileges}).
|
||||
* <p>
|
||||
* If {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}
|
||||
* ({@link TelephonyManager#CAPABILITY_ALLOWED_NETWORK_TYPES_USED}) returns true, then
|
||||
* setAllowedNetworkTypesBitmap is used on the radio interface. Otherwise,
|
||||
* setPreferredNetworkTypesBitmap is used instead.
|
||||
*
|
||||
* @param subId the id of the subscription to set the preferred network type for.
|
||||
* @param networkType the preferred network type
|
||||
@@ -8524,6 +8529,11 @@ public class TelephonyManager {
|
||||
* <p>Requires Permission:
|
||||
* {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling
|
||||
* app has carrier privileges (see {@link #hasCarrierPrivileges}).
|
||||
* <p>
|
||||
* If {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}
|
||||
* ({@link TelephonyManager#CAPABILITY_ALLOWED_NETWORK_TYPES_USED}) returns true, then
|
||||
* setAllowedNetworkTypesBitmap is used on the radio interface. Otherwise,
|
||||
* setPreferredNetworkTypesBitmap is used instead.
|
||||
*
|
||||
* @param networkTypeBitmask The bitmask of preferred network types.
|
||||
* @return true on success; false on any failure.
|
||||
@@ -8550,6 +8560,11 @@ public class TelephonyManager {
|
||||
* Set the allowed network types of the device. This is for carrier or privileged apps to
|
||||
* enable/disable certain network types on the device. The user preferred network types should
|
||||
* be set through {@link #setPreferredNetworkTypeBitmask}.
|
||||
* <p>
|
||||
* If {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}
|
||||
* ({@link TelephonyManager#CAPABILITY_ALLOWED_NETWORK_TYPES_USED}) returns true, then
|
||||
* setAllowedNetworkTypesBitmap is used on the radio interface. Otherwise,
|
||||
* setPreferredNetworkTypesBitmap is used instead.
|
||||
*
|
||||
* @param allowedNetworkTypes The bitmask of allowed network types.
|
||||
* @return true on success; false on any failure.
|
||||
@@ -8624,6 +8639,11 @@ public class TelephonyManager {
|
||||
* </ol>
|
||||
* This API will result in allowing an intersection of allowed network types for all reasons,
|
||||
* including the configuration done through other reasons.
|
||||
* <p>
|
||||
* If {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}
|
||||
* ({@link TelephonyManager#CAPABILITY_ALLOWED_NETWORK_TYPES_USED}) returns true, then
|
||||
* setAllowedNetworkTypesBitmap is used on the radio interface. Otherwise,
|
||||
* setPreferredNetworkTypesBitmap is used instead.
|
||||
*
|
||||
* @param reason the reason the allowed network type change is taking place
|
||||
* @param allowedNetworkTypes The bitmask of allowed network types.
|
||||
@@ -14861,10 +14881,24 @@ public class TelephonyManager {
|
||||
public static final String CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE =
|
||||
"CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE";
|
||||
|
||||
/**
|
||||
* Indicates whether {@link #setPreferredNetworkType}, {@link
|
||||
* #setPreferredNetworkTypeBitmask}, {@link #setAllowedNetworkTypes} and
|
||||
* {@link #setAllowedNetworkTypesForReason} rely on
|
||||
* setAllowedNetworkTypesBitmap instead of setPreferredNetworkTypesBitmap on the radio
|
||||
* interface.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final String CAPABILITY_ALLOWED_NETWORK_TYPES_USED =
|
||||
"CAPABILITY_ALLOWED_NETWORK_TYPES_USED";
|
||||
|
||||
/** @hide */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@StringDef(prefix = "CAPABILITY_", value = {
|
||||
CAPABILITY_SECONDARY_LINK_BANDWIDTH_VISIBLE,
|
||||
CAPABILITY_ALLOWED_NETWORK_TYPES_USED,
|
||||
})
|
||||
public @interface RadioInterfaceCapability {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user