0

我已经编写了一个简单的 android 应用程序来获取电话号码......这个应用程序在 Android 模拟器中运行......但它不能在 Android 手机中运行(在三星 Galaxy s3 和三星 ace 中)。

这是源代码。

PhoneNumberActivity.java

public class PhoneNumberActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_phone_number);


        final TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        telephonyManager.getLine1Number();

        final Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {

                TextView  textView = (TextView) findViewById(R.id.phoneNumber);
                textView.setText("Phone Number is :- "+telephonyManager.getLine1Number());
                button.setVisibility(Button.INVISIBLE);
                textView.setVisibility(TextView.VISIBLE);
            }
        });
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.pervazive.phonenumber"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.phonenumber.PhoneNumberActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 </manifest>

请让我知道有什么问题。

4

1 回答 1

2

根据文档.getLine1Number()“返回第 1 行的电话号码字符串,例如,GSM电话的MSISDN。如果不可用,则返回 null。”

显然.getLine1Number()是从 SIM 卡中读取此信息,因此如果运营商设置了 MSISDN 字段,它将返回其值,如果他们没有设置此字段,则返回 null。

在您的情况下,您的 SIM 卡可能没有由运营商填充此字段。

欲了解更多信息,您可以访问此

我从这里得到这个。

于 2013-04-23T12:16:17.727 回答