method public int getSimCardState();
method public int getSupportedRadioAccessFamily();
method public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
+ method public android.telephony.UiccCardInfo[] getUiccCardsInfo();
method public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
method public android.os.Bundle getVisualVoicemailSettings();
method public int getVoiceActivationState();
field public static final android.os.Parcelable.Creator<android.telephony.UiccAccessRule> CREATOR;
}
+ public class UiccCardInfo implements android.os.Parcelable {
+ ctor public UiccCardInfo(boolean, int, java.lang.String, java.lang.String, int);
+ method public int describeContents();
+ method public int getCardId();
+ method public java.lang.String getEid();
+ method public java.lang.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, java.lang.String, int, int, boolean);
method public int describeContents();
--- /dev/null
+/*
+ * Copyright (C) 2018 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;
+
+parcelable UiccCardInfo;
--- /dev/null
+/*
+ * Copyright (C) 2018 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.annotation.SystemApi;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.Objects;
+
+/**
+ * The UiccCardInfo represents information about a currently inserted UICC or embedded eUICC.
+ * @hide
+ */
+@SystemApi
+public class UiccCardInfo implements Parcelable {
+
+ private final boolean mIsEuicc;
+ private final int mCardId;
+ private final String mEid;
+ private final String mIccId;
+ private final int mSlotIndex;
+
+ public static final Creator<UiccCardInfo> CREATOR = new Creator<UiccCardInfo>() {
+ @Override
+ public UiccCardInfo createFromParcel(Parcel in) {
+ return new UiccCardInfo(in);
+ }
+
+ @Override
+ public UiccCardInfo[] newArray(int size) {
+ return new UiccCardInfo[size];
+ }
+ };
+
+ private UiccCardInfo(Parcel in) {
+ mIsEuicc = in.readByte() != 0;
+ mCardId = in.readInt();
+ mEid = in.readString();
+ mIccId = in.readString();
+ mSlotIndex = in.readInt();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeByte((byte) (mIsEuicc ? 1 : 0));
+ dest.writeInt(mCardId);
+ dest.writeString(mEid);
+ dest.writeString(mIccId);
+ dest.writeInt(mSlotIndex);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public UiccCardInfo(boolean isEuicc, int cardId, String eid, String iccId, int slotIndex) {
+ this.mIsEuicc = isEuicc;
+ this.mCardId = cardId;
+ this.mEid = eid;
+ this.mIccId = iccId;
+ this.mSlotIndex = slotIndex;
+ }
+
+ /**
+ * Return whether the UiccCardInfo is an eUICC.
+ * @return true if the UICC is an eUICC.
+ */
+ public boolean isEuicc() {
+ return mIsEuicc;
+ }
+
+ /**
+ * Get the card ID of the UICC. See {@link TelephonyManager#getCardIdForDefaultEuicc()} for more
+ * details on card ID.
+ */
+ public int getCardId() {
+ return mCardId;
+ }
+
+ /**
+ * Get the embedded ID (EID) of the eUICC. If the UiccCardInfo is not an eUICC
+ * (see {@link #isEuicc()}), returns null.
+ */
+ public String getEid() {
+ if (!mIsEuicc) {
+ return null;
+ }
+ return mEid;
+ }
+
+ /**
+ * Get the ICCID of the UICC.
+ */
+ public String getIccId() {
+ return mIccId;
+ }
+
+ /**
+ * Gets the slot index for the slot that the UICC is currently inserted in.
+ */
+ public int getSlotIndex() {
+ return mSlotIndex;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null || getClass() != obj.getClass()) {
+ return false;
+ }
+
+ UiccCardInfo that = (UiccCardInfo) obj;
+ return ((mIsEuicc == that.mIsEuicc)
+ && (mCardId == that.mCardId)
+ && (Objects.equals(mEid, that.mEid))
+ && (Objects.equals(mIccId, that.mIccId))
+ && (mSlotIndex == that.mSlotIndex));
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mIsEuicc, mCardId, mEid, mIccId, mSlotIndex);
+ }
+
+ @Override
+ public String toString() {
+ return "UiccCardInfo (mIsEuicc="
+ + mIsEuicc
+ + ", mCardId="
+ + mCardId
+ + ", mEid="
+ + mEid
+ + ", mIccId="
+ + mIccId
+ + ", mSlotIndex="
+ + mSlotIndex
+ + ")";
+ }
+}