2014-05-12 90 views
0

我想获取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> 

和我acivity代码获取电话号码是..

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

这款手机是三星Galaxy S2,该问题是功能getPhoneNumber返回null。那么我的代码有什么问题?

+0

867 5309.所有开玩笑不谈,检查是否有正确的抓取该号码的权限。 – FunctionR

+0

[请点击这里](http://stackoverflow.com/questions/18894080/get-my-phone-number-in-android) – Mani

+0

什么是“867 5309”? – pheromix

回答

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); 
} 
0

我觉得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"/> 

让我知道是否有任何问题。

0

请确保您有权限

<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