¿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

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.