我正在尝试使用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 =“”
答案 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。