2014-05-12 74 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