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

Commit bd4a4dc8 authored by Jordan Liu's avatar Jordan Liu Committed by Gerrit Code Review
Browse files

Merge "Card ID APIs are public"

parents cf2e0699 d6c684ff
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -42881,6 +42881,7 @@ package android.telephony {
  public class SubscriptionInfo implements android.os.Parcelable {
    method public android.graphics.Bitmap createIconBitmap(android.content.Context);
    method public int describeContents();
    method public int getCardId();
    method public int getCarrierId();
    method public CharSequence getCarrierName();
    method public String getCountryIso();
@@ -42997,6 +42998,7 @@ package android.telephony {
    method public android.telephony.TelephonyManager createForSubscriptionId(int);
    method @RequiresPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) public java.util.List<android.telephony.CellInfo> getAllCellInfo();
    method public int getCallState();
    method public int getCardIdForDefaultEuicc();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig();
    method public int getCarrierIdFromSimMccMnc();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public android.telephony.CellLocation getCellLocation();
@@ -43044,6 +43046,7 @@ package android.telephony {
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getSubscriberId();
    method public String getTypeAllocationCode();
    method public String getTypeAllocationCode(int);
    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telephony.UiccCardInfo> getUiccCardsInfo();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVisualVoicemailPackageName();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailAlphaTag();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber();
@@ -43135,6 +43138,7 @@ package android.telephony {
    field public static final String EXTRA_STATE_RINGING;
    field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID";
    field public static final String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER";
    field public static final int INVALID_CARD_ID = -1; // 0xffffffff
    field public static final String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU";
    field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7
    field public static final int NETWORK_TYPE_CDMA = 4; // 0x4
@@ -43202,6 +43206,18 @@ package android.telephony {
    method public void onResults(java.util.List<android.telephony.CellInfo>);
  }
  public final class UiccCardInfo implements android.os.Parcelable {
    ctor public UiccCardInfo(boolean, int, String, String, int);
    method public int describeContents();
    method public int getCardId();
    method public String getEid();
    method public String getIccId();
    method public int getSlotIndex();
    method public boolean isEuicc();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.telephony.UiccCardInfo> CREATOR;
  }
  public abstract class VisualVoicemailService extends android.app.Service {
    ctor public VisualVoicemailService();
    method public android.os.IBinder onBind(android.content.Intent);
+0 −16
Original line number Diff line number Diff line
@@ -6226,7 +6226,6 @@ package android.telephony {
  public class SubscriptionInfo implements android.os.Parcelable {
    method @Nullable public java.util.List<android.telephony.UiccAccessRule> getAccessRules();
    method public int getCardId();
    method public int getProfileClass();
  }
@@ -6286,7 +6285,6 @@ package android.telephony {
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enableVideoCalling(boolean);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int);
    method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getCardIdForDefaultEuicc();
    method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent);
    method public java.util.List<java.lang.String> getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int);
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.CarrierRestrictionRules getCarrierRestrictionRules();
@@ -6310,7 +6308,6 @@ package android.telephony {
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getSimLocale();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSupportedRadioAccessFamily();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccCardInfo[] getUiccCardsInfo();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
    method @Nullable public android.os.Bundle getVisualVoicemailSettings();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoiceActivationState();
@@ -6358,7 +6355,6 @@ package android.telephony {
    field public static final String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
    field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
    field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
    field public static final int INVALID_CARD_ID = -1; // 0xffffffff
    field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L
    field public static final int NETWORK_MODE_CDMA_EVDO = 4; // 0x4
    field public static final int NETWORK_MODE_CDMA_NO_EVDO = 5; // 0x5
@@ -6433,18 +6429,6 @@ package android.telephony {
    field public static final android.os.Parcelable.Creator<android.telephony.UiccAccessRule> CREATOR;
  }
  public class UiccCardInfo implements android.os.Parcelable {
    ctor public UiccCardInfo(boolean, int, String, String, int);
    method public int describeContents();
    method public int getCardId();
    method public String getEid();
    method public String getIccId();
    method public int getSlotIndex();
    method public boolean isEuicc();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final android.os.Parcelable.Creator<android.telephony.UiccCardInfo> CREATOR;
  }
  public class UiccSlotInfo implements android.os.Parcelable {
    ctor public UiccSlotInfo(boolean, boolean, String, int, int, boolean);
    method public int describeContents();
+3 −3
Original line number Diff line number Diff line
@@ -577,10 +577,10 @@ public class SubscriptionInfo implements Parcelable {
    }

    /**
     * @return the cardId of the SIM card which contains the subscription.
     * @hide
     * Returns the card ID of the SIM card which contains the subscription (see
     * {@link UiccCardInfo#getCardId()}.
     * @return the cardId
     */
    @SystemApi
    public int getCardId() {
        return this.mCardId;
    }
+25 −20
Original line number Diff line number Diff line
@@ -227,10 +227,9 @@ public class TelephonyManager {
    public static final int SRVCC_STATE_HANDOVER_CANCELED  = 3;

    /**
     * An invalid card identifier.
     * @hide
     * An invalid UICC card identifier. See {@link #getCardIdForDefaultEuicc()} and
     * {@link UiccCardInfo#getCardId()}.
     */
    @SystemApi
    public static final int INVALID_CARD_ID = -1;

    /** @hide */
@@ -3118,14 +3117,8 @@ public class TelephonyManager {
     * unique to a device, and always refer to the same UICC or eUICC card unless the device goes
     * through a factory reset.
     *
     * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
     *
     * @return card ID of the default eUICC card.
     * @hide
     */
    @SystemApi
    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    public int getCardIdForDefaultEuicc() {
        try {
            ITelephony telephony = getITelephony();
@@ -3139,25 +3132,37 @@ public class TelephonyManager {
    }

    /**
     * Gets information about currently inserted UICCs and eUICCs. See {@link UiccCardInfo} for more
     * details on the kind of information available.
     *
     * @return UiccCardInfo an array of UiccCardInfo objects, representing information on the
     * currently inserted UICCs and eUICCs.
     * Gets information about currently inserted UICCs and enabled eUICCs.
     * <p>
     * Requires that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
     * <p>
     * If the caller has carrier priviliges on any active subscription, then they have permission to
     * get simple information like the card ID ({@link UiccCardInfo#getCardId()}), whether the card
     * is an eUICC ({@link UiccCardInfo#isEuicc()}), and the slot index where the card is inserted
     * ({@link UiccCardInfo#getSlotIndex()}).
     * <p>
     * To get private information such as the EID ({@link UiccCardInfo#getEid()}) or ICCID
     * ({@link UiccCardInfo#getIccId()}), the caller must have carrier priviliges on that specific
     * UICC or eUICC card.
     * <p>
     * See {@link UiccCardInfo} for more details on the kind of information available.
     *
     * @hide
     * @return a list of UiccCardInfo objects, representing information on the currently inserted
     * UICCs and eUICCs. Each UiccCardInfo in the list will have private information filtered out if
     * the caller does not have adequate permissions for that card.
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public UiccCardInfo[] getUiccCardsInfo() {
    public List<UiccCardInfo> getUiccCardsInfo() {
        try {
            ITelephony telephony = getITelephony();
            if (telephony == null) {
                return null;
                Log.e(TAG, "Error in getUiccCardsInfo: unable to connect to Telephony service.");
                return new ArrayList<UiccCardInfo>();
            }
            return telephony.getUiccCardsInfo();
            return telephony.getUiccCardsInfo(mContext.getOpPackageName());
        } catch (RemoteException e) {
            return null;
            Log.e(TAG, "Error in getUiccCardsInfo: " + e);
            return new ArrayList<UiccCardInfo>();
        }
    }

+17 −4
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package android.telephony;

import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

@@ -23,10 +22,8 @@ import java.util.Objects;

/**
 * The UiccCardInfo represents information about a currently inserted UICC or embedded eUICC.
 * @hide
 */
@SystemApi
public class UiccCardInfo implements Parcelable {
public final class UiccCardInfo implements Parcelable {

    private final boolean mIsEuicc;
    private final int mCardId;
@@ -95,6 +92,9 @@ public class UiccCardInfo implements Parcelable {
    /**
     * Get the embedded ID (EID) of the eUICC. If the UiccCardInfo is not an eUICC
     * (see {@link #isEuicc()}), returns null.
     * <p>
     * Note that this field may be omitted if the caller does not have the correct permissions
     * (see {@link TelephonyManager#getUiccCardsInfo()}).
     */
    public String getEid() {
        if (!mIsEuicc) {
@@ -105,6 +105,9 @@ public class UiccCardInfo implements Parcelable {

    /**
     * Get the ICCID of the UICC.
     * <p>
     * Note that this field may be omitted if the caller does not have the correct permissions
     * (see {@link TelephonyManager#getUiccCardsInfo()}).
     */
    public String getIccId() {
        return mIccId;
@@ -117,6 +120,16 @@ public class UiccCardInfo implements Parcelable {
        return mSlotIndex;
    }

    /**
     * Returns a copy of the UiccCardinfo with the clears the EID and ICCID set to null. These
     * values are generally private and require carrier privileges to view.
     *
     * @hide
     */
    public UiccCardInfo getUnprivileged() {
        return new UiccCardInfo(mIsEuicc, mCardId, null, null, mSlotIndex);
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
Loading