kna*_*ode 30 android phone-number
我想获得Android设备的电话号码.我用这个代码:
TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber= tm.getLine1Number();
Run Code Online (Sandbox Code Playgroud)
在我的手机上(HTC Wildfire),我无法获得电话号码 - 我得到的只是空字符串.如果我在emulatur上运行代码,通常会显示电话号码.
如果我转到设置=>关于电话=>电话身份 - >电话号码,电话号码是"未知".
问题出在哪儿?我的SIM卡有问题吗?
Chr*_*bin 35
我们的项目遇到了同样的问题.结论是它取决于SIM卡.
我们发生了什么:
其他论坛也有报道.
最后,我们决定向用户询问电话号码.实际上有点多涉及:if( "SIM card present" && "cannot read the cell number") "ask user"; .否则,我们将首先窃听不是SIM卡的用户.
Nar*_*Gar 11
而不是电话号码使用SIM卡序列号,该序列号始终存在且始终是有效值.
telephonyManager.getSimSerialNumber();
Run Code Online (Sandbox Code Playgroud)
SIM序列号至少在运营商中是唯一的.所以加上
telephonyManager.getNetworkOperator();
Run Code Online (Sandbox Code Playgroud)
您将拥有一个国家/地区内订阅者的唯一标识符.
这结合了
telephonyManager.getNetworkCountryIso();
Run Code Online (Sandbox Code Playgroud)
您将拥有订户的全局唯一标识符.
希望这会有所帮助.
干杯.
小智 5
SIM卡存储电话号码,您可以编辑它.不能说对于Android,但在WM上,您可以轻松编辑存储在SIM卡上的电话号码.当然,这并不意味着您可以动态更改电话号码.实际上,你可以自由地在那里写任何你喜欢的号码,程序会相信,这是你的真实数字:)