背景;我正在编写一个Android消息传递应用程序,需要知道当前用户的电话号码。然后,它用于使用该应用程序连接到其他用户。
我的应用程序依赖于从Android的设置中查找用户的号码 - >关于手机 - >电话身份 - >电话号码(这有时可能是空白的..但这是一个单独的问题)。
我假设上述电话号码包含用户的完整号码。即,我的英国Android手机显示我的号码:+ 447832xxxxxxxx,其中44是英国的国际拨号代码,7832是运营商。
假设所有Androids手机都包含国际拨号代码(以+?开头)是否安全?
如果任何Android用户可以快速查看他们的Android设置并确认电话号码是否显示为+国际代码+运营商+号码,即美国Android设备以+ 1xxxxxx开头,我将感激不尽。
答案 0 :(得分:2)
TelephonyManager.getLine1Number()不保证是正确的,甚至不适用于应用程序。我建议使用SECURE_ID来匹配某些用户输入的备份计划,可能是某个服务器上的文本消息验证电话号码。但即使SECURE_ID有时也不是唯一的标识符(所有DROID2手机都具有相同的ID),这意味着您应该依赖某种帐户系统。
答案 1 :(得分:1)
在我的手机(Nexus One,Android 2.2,O2 UK)中,我没有设置 - >关于手机 - >电话身份。在设置 - >状态 - >我的电话号码是“未知”。不确定这会对你有所帮助,抱歉。
答案 2 :(得分:1)
在我的机动车机器人2.2上我有:设置 - >关于电话 - >状态 - >我的电话号码。仅供参考,它没有前缀+国际代码