Cómo obtener el número de teléfono del dispositivo mediante programación

Estoy tratando de obtener teléfono no usando 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 el teléfono no en blanco. Incluso traté de obtener teléfono no de wats aplicación, pero su returing "WatsApp" en lugar de teléfono no. ¿Hay alguna otra manera de resolver este problema?

Utilice el siguiente código:

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

En AndroidManifest.xml, dé 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 el operador de red / portadora de teléfono celular.

También, intente comprobar en Teléfono -> Configuración -> Acerca de -> Identidad del teléfono , Si usted es capaz de 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!

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