0

i am trying to fetch owners contactnumber in android it runs fine in emulator but not working in handset.Here is code

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String imei = tm.getDeviceId();
    String phoneNumber = tm.getLine1Number();
Supreet
  • 2,451
  • 8
  • 25
  • 42

4 Answers4

3

It is not guaranteed that getLine1Number() will always return SIM card's number on all devices. Because the availability of number depends on its storage in the SIM card.

If the number is not stored/available in SIM card then the method will return empty string.

In order to get user's phone number, you should send an sms from user's device to your server or device (same as Viber or other app does). And for a good practice make sure it is done with user's acknowledgement.

waqaslam
  • 67,549
  • 16
  • 165
  • 178
1

Use:

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"/>

EDIT:

try using getSimSerialNumber()

getLine1Number()- this method returns the phone number string for line 1, i.e the MSISDN for a GSM phone. Return null if it is unavailable.

this method works only for few cell phone but not all phones.

So, if you need to perform operations according to the sim(other than calling), then you should use getSimSerialNumber(). It is always unique, valid and it always exists.

String sSimSerial = mTelephonyMgr.getSimSerialNumber();

Shrikant Ballal
  • 7,067
  • 7
  • 41
  • 61
1

getSimSerialNumber () is method you need to call to get SimSerialNumber.

Code update:

TelephonyManager tm=(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
String phoneNumber = tm.getLine1Number();
String simSerialNumber = tm.getSimSerialNumber();
Aman J
  • 1,825
  • 1
  • 16
  • 30
1

1) Check manifest file by adding ,

2) Use, android.hardware.telephony.gsm in your implemetation.

 It should work fine..
Naveen AH
  • 23
  • 5