2011-08-19 8 views
1

나는 TelephonyManager를 사용하여 안드로이드 장치에서 전화 번호를 얻으려고합니다.안드로이드 장치의 전화 번호를 얻으십시오

무엇이 READ_PHONE_STATE입니까? 나는 그것을 manifest 파일에 포함시켰다. 그러나 여전히 예외를 던지고있다.

매니페스트 파일,

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="abc.sample" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<uses-sdk android:minSdkVersion="7"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> 

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" android:permission="android.permission.READ_PHONE_STATE"> 
    <activity android:name=".TrakkitActivityMain" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".TermsOfServiceActivity" android:label="Terms Of Service"></activity> 
    <activity android:name=".CategoryMainActivity"></activity> 
    <activity android:name=".ExpensesMainActivity"></activity> 
    <activity android:name=".CategoryDefineActivity"></activity> 
    <activity android:name=".ExpensesDefineActivity"></activity> 
    <activity android:name=".CategoryPieChartActivity"></activity><receiver android:name=".receivers.AlarmReceiver"></receiver> 
    <activity android:name=".ChartDisplayViewActivity"></activity> 
    <activity android:name=".LandingPageActivity"></activity> 
    <activity android:name=".SpeedOMeterViewActivity"></activity> 
    <activity android:name=".FeedbackActivity"></activity> 
    <activity android:name=".CategoryDeleteActivity"></activity> 


</application> 

TelephonyManager telephonyManager = (TelephonyManager) context 
      .getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNo = telephonyManager.getLine1Number(); 

가 비어 PHONENO을 반환 = ""

답변

1

는 지금까지 내가 아는 한, 그것은 전화 번호를 얻을 수 없습니다. SDK는 메서드를 제공하지만 대부분의 경우 null을 반환합니다.

+0

Roflcoptr의 답변 아래 귀하의 의견에 말씀 하셨지만, 항상 신뢰할만한 것은 아닙니다. –

2

이 스 니펫이 작동해야한다고 생각합니다. 적어도 그것은 내 전화에서 않습니다.

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

    private String getMy10DigitPhoneNumber(){ 
     String s = getMyPhoneNumber(); 
     return s.substring(2); 
    } 
+1

그렇습니다. 어떻게 작동해야합니까?하지만 때때로 null 값 또는 SIM 카드에 원래 저장되어있는 전화 번호와 함께 반환되는'getLine1Number() '에 대한 많은 의견을 읽었 기 때문에 OP에서주의 깊게 테스트해야합니다. SIM 카드가 특정 전화 번호에만 머물지는 않지만 이동 통신사에 따라 달라집니다. –

관련 문제