Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 160a0832 authored by Hui Wang's avatar Hui Wang Committed by Sarah Chin
Browse files

Add new Telephony feature flags and update API annotations

Bug: 206437821
Test: make
Test: atest CtsTelephonyTestCases FrameworksTelephonyTests
Change-Id: I511afb5afc52b859a37f8ae27ab671c2b8037527
Merged-In: I511afb5afc52b859a37f8ae27ab671c2b8037527
parent 25157d11
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -11473,7 +11473,7 @@ package android.content.pm {
    field public static final String FEATURE_CAMERA_LEVEL_FULL = "android.hardware.camera.level.full";
    field public static final String FEATURE_CANT_SAVE_STATE = "android.software.cant_save_state";
    field public static final String FEATURE_COMPANION_DEVICE_SETUP = "android.software.companion_device_setup";
    field public static final String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";
    field @Deprecated public static final String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";
    field public static final String FEATURE_CONSUMER_IR = "android.hardware.consumerir";
    field public static final String FEATURE_CONTROLS = "android.software.controls";
    field public static final String FEATURE_DEVICE_ADMIN = "android.software.device_admin";
@@ -11544,12 +11544,18 @@ package android.content.pm {
    field public static final String FEATURE_SIP = "android.software.sip";
    field public static final String FEATURE_SIP_VOIP = "android.software.sip.voip";
    field public static final String FEATURE_STRONGBOX_KEYSTORE = "android.hardware.strongbox_keystore";
    field public static final String FEATURE_TELECOM = "android.software.telecom";
    field public static final String FEATURE_TELEPHONY = "android.hardware.telephony";
    field public static final String FEATURE_TELEPHONY_CALLING = "android.hardware.telephony.calling";
    field public static final String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma";
    field public static final String FEATURE_TELEPHONY_DATA = "android.hardware.telephony.data";
    field public static final String FEATURE_TELEPHONY_EUICC = "android.hardware.telephony.euicc";
    field public static final String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm";
    field public static final String FEATURE_TELEPHONY_IMS = "android.hardware.telephony.ims";
    field public static final String FEATURE_TELEPHONY_MBMS = "android.hardware.telephony.mbms";
    field public static final String FEATURE_TELEPHONY_MESSAGING = "android.hardware.telephony.messaging";
    field public static final String FEATURE_TELEPHONY_RADIO_ACCESS = "android.hardware.telephony.radio";
    field public static final String FEATURE_TELEPHONY_SUBSCRIPTION = "android.hardware.telephony.subscription";
    field @Deprecated public static final String FEATURE_TELEVISION = "android.hardware.type.television";
    field public static final String FEATURE_TOUCHSCREEN = "android.hardware.touchscreen";
    field public static final String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch";
+73 −0
Original line number Diff line number Diff line
@@ -2929,6 +2929,8 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and
     * {@link #hasSystemFeature}: The device has a CDMA telephony stack.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY} has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma";
@@ -2936,6 +2938,8 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and
     * {@link #hasSystemFeature}: The device has a GSM telephony stack.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY} has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm";
@@ -2947,6 +2951,9 @@ public abstract class PackageManager {
     * <p>Devices declaring this feature must have an implementation of the
     * {@link android.telephony.TelephonyManager#getAllowedCarriers} and
     * {@link android.telephony.TelephonyManager#setAllowedCarriers}.
     *
     * This feature should only be defined if {@link #FEATURE_TELEPHONY_SUBSCRIPTION}
     * has been defined.
     * @hide
     */
    @SystemApi
@@ -2957,6 +2964,9 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device
     * supports embedded subscriptions on eUICCs.
     *
     * This feature should only be defined if {@link #FEATURE_TELEPHONY_SUBSCRIPTION}
     * has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_EUICC = "android.hardware.telephony.euicc";
@@ -2964,6 +2974,9 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device
     * supports cell-broadcast reception using the MBMS APIs.
     *
     * <p>This feature should only be defined if both {@link #FEATURE_TELEPHONY_SUBSCRIPTION}
     * and {@link #FEATURE_TELEPHONY_RADIO_ACCESS} have been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_MBMS = "android.hardware.telephony.mbms";
@@ -2971,6 +2984,8 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device
     * supports attaching to IMS implementations using the ImsService API in telephony.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY_DATA} has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_IMS = "android.hardware.telephony.ims";
@@ -3006,6 +3021,62 @@ public abstract class PackageManager {
    public static final String FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION =
            "android.hardware.telephony.ims.singlereg";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telecom Service APIs.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELECOM = "android.software.telecom";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telephony APIs for calling service.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY_RADIO_ACCESS},
     * {@link #FEATURE_TELEPHONY_SUBSCRIPTION}, and {@link #FEATURE_TELECOM} have been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_CALLING = "android.hardware.telephony.calling";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telephony APIs for data service.
     *
     * <p>This feature should only be defined if both {@link #FEATURE_TELEPHONY_SUBSCRIPTION}
     * and {@link #FEATURE_TELEPHONY_RADIO_ACCESS} have been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_DATA = "android.hardware.telephony.data";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telephony APIs for SMS and MMS.
     *
     * <p>This feature should only be defined if both {@link #FEATURE_TELEPHONY_SUBSCRIPTION}
     * and {@link #FEATURE_TELEPHONY_RADIO_ACCESS} have been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_MESSAGING = "android.hardware.telephony.messaging";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telephony APIs for the radio access.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY} has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_RADIO_ACCESS = "android.hardware.telephony.radio";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}:
     * The device supports Telephony APIs for the subscription.
     *
     * <p>This feature should only be defined if {@link #FEATURE_TELEPHONY} has been defined.
     */
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_TELEPHONY_SUBSCRIPTION =
            "android.hardware.telephony.subscription";

    /**
     * Feature for {@link #getSystemAvailableFeatures} and
     * {@link #hasSystemFeature}: The device is capable of communicating with
@@ -3047,7 +3118,9 @@ public abstract class PackageManager {
    /**
     * Feature for {@link #getSystemAvailableFeatures} and
     * {@link #hasSystemFeature}: The Connection Service API is enabled on the device.
     * @deprecated use {@link #FEATURE_TELECOM} instead.
     */
    @Deprecated
    @SdkConstant(SdkConstantType.FEATURE)
    public static final String FEATURE_CONNECTION_SERVICE = "android.software.connectionservice";

+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresFeature;
import android.annotation.RequiresPermission;
import android.annotation.SuppressAutoDoc;
import android.annotation.SuppressLint;
@@ -31,6 +32,7 @@ import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -70,6 +72,7 @@ import java.util.concurrent.Executor;
 */
@SuppressAutoDoc
@SystemService(Context.TELECOM_SERVICE)
@RequiresFeature(PackageManager.FEATURE_TELECOM)
public class TelecomManager {

    /**
+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresFeature;
import android.annotation.RequiresPermission;
import android.annotation.SuppressAutoDoc;
import android.annotation.SuppressLint;
@@ -28,6 +29,7 @@ import android.annotation.SystemService;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.NetworkCapabilities;
import android.net.ipsec.ike.SaProposal;
import android.os.Build;
@@ -55,6 +57,7 @@ import java.util.concurrent.TimeUnit;
 * Provides access to telephony configuration values that are carrier-specific.
 */
@SystemService(Context.CARRIER_CONFIG_SERVICE)
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
public class CarrierConfigManager {
    private final static String TAG = "CarrierConfigManager";

+3 −0
Original line number Diff line number Diff line
@@ -17,11 +17,13 @@
package android.telephony.ims;

import android.annotation.NonNull;
import android.annotation.RequiresFeature;
import android.annotation.SdkConstant;
import android.annotation.SuppressLint;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
import android.content.pm.PackageManager;
import android.telephony.BinderCacheManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
@@ -33,6 +35,7 @@ import com.android.internal.telephony.ITelephony;
 * Provides access to information about Telephony IMS services on the device.
 */
@SystemService(Context.TELEPHONY_IMS_SERVICE)
@RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS)
public class ImsManager {

    /**
Loading