0

I want to get the SIM's phone number .

My Manifest file is..

<?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>

and my code in acivity to get Phone number is as ..

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

The phone is Samsung Galaxy S2 , the problem is that the function getPhoneNumber returns null. So what is wrong in my code?

Infinite Recursion
  • 6,511
  • 28
  • 39
  • 51
pheromix
  • 18,213
  • 29
  • 88
  • 158
  • 867 5309. All kidding aside, check if you have the right permissions for grabbing the number. – apxcode May 12 '14 at 06:33
  • [check here](http://stackoverflow.com/questions/18894080/get-my-phone-number-in-android) – Mani May 12 '14 at 06:35

3 Answers3

1

try this..

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

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}
Mani
  • 231
  • 1
  • 14
0

I think sim serial Number and sim number is unique. You can try this for get sim serial number and get sim number and Don't forget to add permission in manifest file.

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

And add below permission into your Androidmanifest.xml file.

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

Let me know if there is any issue.

Bhanu Sharma
  • 5,135
  • 2
  • 24
  • 49
0

Please assure you have permission

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

and use the following code

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

follow https://developer.android.com/reference/android/telephony/TelephonyManager.html#getLine1Number%28%29 for more and Get my phone number in android

Community
  • 1
  • 1
Jitesh Upadhyay
  • 5,244
  • 2
  • 25
  • 43