首先,MSISDN与电话号码相同。我一直在研究是否有可能从Andoid电话中获取电话号码。
我的研究结果是肯定的。
可以使用TelephonyManager和getLine1Number()。但是,这是不可靠的。
我已经使用Motorola Atrix测试了上述内容,但该操作未检索到有效的电话号码。那么死在水中吧?
好吧,我能够使用TelephonyManager和getVoiceMailNumber()从电话中删除电话号码。
我永远不会猜到语音信箱号码将是我的实际电话号码(MSISDN)。
所以我的问题是,检查getLine1Number()或getVoiceMailNumber()是获取MSISDN的可靠方法吗?(即:如果getLine1Number返回0000000000000,则检查getVoiceMailNumber或类似内容。)
在从getVoiceMailNumber()获取MSISDN之前,该网站上没有人提及过,这绝对不是显而易见的,并且与文档几乎是矛盾的,但是事实是它适用于我的特定设备。(在其他设备上未试用)
如果使用getVoiceMailNumber(),它将不会100%可靠。很多时候这可能会提供电话号码,但是如果手机进行固件更新并且此号码更改为其他号码,该怎么办?说一个短代码?因此,不可靠。
如果可以从getLine1Number()中获取数字,那么为什么不提示用户输入数字呢?您可以通过向该号码发送带有短代码的SMS消息来进行验证,要求用户在继续进行操作之前先输入该代码。