para obtener un número de teléfono programáticamente en Android

Estoy usando el código

TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); mPhoneNumber = tMgr.getLine1Number(); 

para que el teléfono no esté progtwigdo en Android. Pero esto está funcionando bien solo para una tarjeta sim. Si pruebo este código insertando otra tarjeta SIM, está dando null . Estoy tratando de encontrar la solución para esto. por favor, ayúdame. También READ_PHONE_STATE permiso READ_PHONE_STATE en Manifest .

Quiero identificar de manera única la tarjeta sim. Hay alguna otra manera de hacer esto. Por favor hagamelo saber.

Gracias por adelantado…

Creo que el número de serie de Sim es único. Puedes probar esto.

 TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String getSimSerialNumber = telemamanger.getSimSerialNumber(); 

Avísame si hay algún problema.

Este es un problema conocido. Muchas SIM en todo el mundo regresarían nulas. Deberías usar el número IMEI, pero incluso eso puede devolver nulo.

 TelephonyManager.getDeviceId() 

Busque TelephonyManager.getSubscriberId (), esto le dará la identificación única para cada tarjeta SIM.