我使用此代码获取数字,但它给了我null
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();
答案 0 :(得分:0)
可能并不总是返回手机号码。
让我解释一下这实际上是如何工作的:当您为新号码购买新的SIM卡时,提供商已经(虽然并非总是)在SIM卡中放置了一个手机号码(SIM卡确实有一点内存)。现在$("#myFilter").bind('blur', function (event) {
window.alert("blur");
});
API尝试读取该数字。如果它可用,则返回数字。
现在,您可以获得没有与之关联的手机号码的SIM卡。示例 - 用于移植的新SIM(您在新SIM卡中使用以前的号码)。这些SIM卡上没有存储任何数字,因此TelephonyManager
返回null。
现在,即使TelephonyManager
返回一个数字,也不应该信任它是正确的。因为许多设备提供了编辑该号码的选项。
答案 1 :(得分:0)
要使用getLine1Number()
,您需要READ_PHONE_STATE
或READ_SMS
权限。你可能会错过这一点。
请记住,如果电话号码字符串不可用,则会返回null
。