【问题标题】:Cannot get phone number无法获取电话号码
【发布时间】:2014-05-12 06:28:52
【问题描述】:

我想获取 SIM 卡的电话号码。

我的清单文件是..

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ambre.bazarmada"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.SEND_SMS" />
    ....
    </application>
</manifest>

我在活动中获取电话号码的代码是..

public static String getPhoneNumber(Context ctxt) {
        TelephonyManager phoneManager = (TelephonyManager) ctxt.getSystemService(Context.TELEPHONY_SERVICE);
        String phoneNumber = phoneManager.getLine1Number();
        return phoneNumber;
    }

手机是三星Galaxy S2,问题是getPhoneNumber函数返回null。那么我的代码有什么问题呢?

【问题讨论】:

  • 867 5309。别开玩笑了,请检查您是否拥有获取号码的正确权限。

标签: android


【解决方案1】:

试试这个..

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

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}

【讨论】:

    【解决方案2】:

    我认为 sim 序列号和 sim 号是唯一的。你可以试试这个来获取 sim 序列号和获取 sim 号,不要忘记在清单文件中添加权限。

    TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String getSimSerialNumber = telemamanger.getSimSerialNumber();
    String getSimNumber = telemamanger.getLine1Number();
    

    并将以下权限添加到您的 Androidmanifest.xml 文件中。

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

    如果有任何问题,请告诉我。

    【讨论】:

      【解决方案3】:

      请确保您有权限

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

      并使用以下代码

      TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
      String getSimSerialNumber = telemamanger.getSimSerialNumber();
      String getSimNumber = telemamanger.getLine1Number();
      

      关注https://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number%28%29了解更多信息和Get my phone number in android

      【讨论】:

        猜你喜欢
        • 2018-03-01
        • 1970-01-01
        • 2018-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多