¿Cómo puedo obtener el número ICCID del teléfono?
¿Cómo puedo obtener el número ICCID del teléfono?
Miré en la clase de TelephonyManager, pero no encontré allí una manera de conseguir el número de ICCID, allí es solamente un método que dice si la tarjeta de ICC está presente.
Creo que getSimSerialNumber()
obtendrá iccid.
ACTUALIZACIÓN para Android 5.1
Se agregó "Multiple SIM Card Support" para Android 5.1 (API 22). En lugar de utilizar getSimSerialNumber
, puede utilizar SubscriptionManager
.
SubscriptionManager sm = SubscriptionManager.from(mContext); // it returns a list with a SubscriptionInfo instance for each simcard // there is other methods to retrieve SubscriptionInfos (see [2]) List<SubscriptionInfo> sis = sm.getActiveSubscriptionInfoList(); // getting first SubscriptionInfo SubscriptionInfo si = sis.get(0); // getting iccId String iccId = si.getIccId();
@ Jakar, muchas gracias! Aquí está el mismo código en C # usando Xamarin / Mono.Android
Requiere el permiso establecido en AndroidManifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Simple C #
using System.Collections.Generic; using Android.Telephony; // ... protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Requires, android.permission.READ_PHONE_STATE SubscriptionManager sm = Android.Telephony.SubscriptionManager.From(Android.App.Application.Context); IList<SubscriptionInfo> sis = sm.ActiveSubscriptionInfoList; SubscriptionInfo si = sis[0]; string carrier = si.CarrierName; string iccId = si.IccId; string phoneNum = si.Number; System.Diagnostics.Debug.WriteLine("Carrier: " + carrier); System.Diagnostics.Debug.WriteLine("SIM Card IccId: " + iccId); System.Diagnostics.Debug.WriteLine("Phone Number: " + phoneNum); // Bonus, Get the IMEI Id (aka, DeviceId) TelephonyManager tm = (TelephonyManager)GetSystemService(Android.Content.Context.TelephonyService); string deviceId = tm.DeviceId; System.Diagnostics.Debug.WriteLine("Device Id: " + deviceId); }
Tanto SubscriptionManager como SubscriptionInfo se encuentran bajo el espacio de nombres de Android.Telephony
La verdad sea dicho que este ejemplo era necesario para activar mi teléfono sobre la marcha y no tener la herramienta de la tarjeta SIM a mano para sacarla. Y mis ojos no son lo que solían ser. Verlo en DroidTelephonySimInfo.cs en gist.github.com