2014-06-16 4 views
0

내 Android 앱을 통해 앱이 실행되는 휴대 전화의 전화 번호를 검색하고 싶습니다. 그것을 위해 나는 아래의 방법을 사용합니다.액세스 Android 앱을 사용하는 전화 번호

public void findTeleNumber(){ 
     TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
     teleNumber = tm.getLine1Number(); 

     Toast.makeText(this, teleNumber , Toast.LENGTH_LONG).show(); 

    } 

그러나이 메서드는 전화 번호에 대해 null 값을 반환합니다. 전화 번호를 찾을 수있는 다른 방법이 있습니까? 코드 아래

+0

http://stackoverflow.com/a/23675998/3492139 –

답변

0

사용 :

의 AndroidManifest.xml에서
TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); 
String mPhoneNumber = tMgr.getLine1Number(); 

는, 다음과 같은 권한을 부여 :

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

을하지만이 코드는 항상 휴대 전화 번호 때문에, 작동하지 않는 기억이에 따라 달라집니다 SIM 카드 및 네트워크 사업자/휴대 전화 사업자. 또한

, 전화로 확인해보십시오 -> 정보 - -> 설정> 전화 정체성을을, 당신은이 코드가 높다 위의 전화 번호를 얻기의 가능성을 수를 볼 수있는 경우 . 설정에서 전화 번호를 볼 수 없다면이 코드를 통해 얻을 수 없습니다!

하기 권장 해결 방법 :

  1. 는 사용자의 수동 입력으로 사용자의 전화 번호를 가져옵니다.
  2. SMS를 통해 사용자의 휴대폰 번호로 코드를 보냅니다.
  3. 전화 번호를 확인하는 코드를 입력하도록 요청합니다.
  4. sharedpreference에 번호를 저장하십시오.

앱을 처음 실행하는 동안 위의 4 단계를 1 회 활동으로 수행하십시오. 나중에 전화 번호가 필요할 때마다 공유 환경 설정에서 사용할 수있는 값을 사용하십시오.