我尝试了getLine1number(),对于某些设备,它获取了数字。但对于某些人来说,它返回空字符串(“”)。 据我测试,当在设备的设置>状态>我的电话号码不是空的,我收到号码,否则我无法获得电话号码。
除上述方法外,还有其他方法可以获取电话号码吗?
答案 0 :(得分:2)
据我所知,他们无法找到 .getLine1Number()方法以外的电话号码。
为您提供一些尝试的选项: -
A)如果号码返回null表示您的电话号码未在您的手机中注册。为此您可以使用SIM卡序列号。这是唯一号码。
TelephonyManager telemamanger = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String getSimSerialNumber = telemamanger.getSimSerialNumber();
B)您使用的方法是SDK中唯一可以执行此操作的部分, 并且仅适用于存储在SIM卡上的号码的设备, 只有一些运营商才这样做。对于所有其他运营商, 你必须要求用户手动输入电话号码, 因为该号码根本不存储在设备的任何地方,您可以从中检索它。
希望它会对你有所帮助。