pheromix
pheromix

Reputation: 19287

Cannot get phone number

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?

Upvotes: 0

Views: 412

Answers (3)

Jitesh Upadhyay
Jitesh Upadhyay

Reputation: 5260

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

Upvotes: 0

Bhanu Sharma
Bhanu Sharma

Reputation: 5145

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.

Upvotes: 0

Mani
Mani

Reputation: 231

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

Upvotes: 1

Related Questions