检索电话号码的最佳方法?

我需要能够获得SIM的电话号码,目前我一直在使用:

telephonyManager = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); tmPhone = telephonyManager.getLine1Number(); 

但是这种方法并不总是返回结果/正确的结果。

无论如何在没有要求用户手动输入的情况下100%获得正确的电话号码?

用这个。

 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // get IMEI String imei = tm.getDeviceId(); String phone = tm.getLine1Number(); 

但它并不总是可靠的,例如非电话设备。 您还需要添加权限“android.permission.READ_PHONE_STATE”。