para - manual de programacion android pdf
Cómo obtener el número de teléfono de un dispositivo mediante programación (1)
Esta pregunta ya tiene una respuesta aquí:
Estoy tratando de obtener el teléfono sin usar el siguiente método:
private String getMyPhoneNumber() {
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//String imsi = mTelephonyMgr.getSubscriberId();
String phnNo = mTelephonyMgr.getLine1Number();
if (phnNo == null) {
phnNo = getNoFromWatsApp();
}
return phnNo;
}
private String getNoFromWatsApp(){
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
String phoneNumber = "";
for (Account ac : accounts) {
String acname = ac.name;
String actype = ac.type;
// Take your time to look at all available accounts
if(actype.equals("com.whatsapp")) {
phoneNumber = ac.name;
}
}
return phoneNumber;
}
Pero cada vez que consigo un número de teléfono vacío. Incluso intenté obtener el número de teléfono de WhatsApp pero está devolviendo "WhatsApp" en lugar de número de teléfono. ¿Hay alguna otra manera de resolver este problema?
Use el siguiente código:
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
En AndroidManifest.xml, otorga el siguiente permiso:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Pero recuerde, este código no siempre funciona, ya que el número de teléfono celular depende de la tarjeta SIM y del operador de red / operador de telefonía celular.
Además, intente marcar en Teléfono -> Configuración -> Acerca de -> Identidad del teléfono . Si puede ver el Número allí, la probabilidad de obtener el número de teléfono del código anterior es mayor. Si no puede ver el número de teléfono en la configuración, ¡entonces no podrá obtener a través de este código!