获取Android设备的电话号码

时间:2011-08-19 07:05:59

标签: android

我正在尝试使用TelephonyManager从Android设备获取电话号码。

什么是READ_PHONE_STATE?我把它包含在清单文件中。但它仍然是例外。

清单文件,

<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 =“”

2 个答案:

答案 0 :(得分: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 :(得分:1)

据我所知,无法获取电话号码。 SDK提供了方法,但大多数情况下都会返回null。