0

是的,我使用了正确的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

这是我的代码:

private String getDevicePhoneNumber() {
    TelephonyManager mTelephonyMgr;
    mTelephonyMgr = (TelephonyManager)
        getSystemService(Context.TELEPHONY_SERVICE);
    return mTelephonyMgr.getLine1Number();
}

电话正在向我返回 lambda:空字符串。

有谁知道如何做到这一点?我需要这个适用于 android Froyo ( 2.2) 及更高版本

4

1 回答 1

2

确实是个问题。没有一种解决方案会一直有效。它不是存储在所有 SIM 卡上,也不是始终可以从运营商网络访问。

在某些国家/地区甚至可能需要进行物理地址验证。

电话号码分配的分配发生在网络上 - 并且可以在不更改 SIM 卡或设备的情况下进行更改(例如,当从一个运营商移动到另一个运营商时,这是支持移植工作的方式......)。

你最好的办法是问用户,这听起来很奇怪..

于 2013-05-20T22:11:45.613 回答