3

Androidアプリから携帯電話の電話番号を取得して表示しようとしていますが、エミュレーターでは機能しますが、実際のデバイス(モバイル)では機能しません。

誰でも理由を教えてもらえますか?

ここにソースがあります

AndroidMenuActivity.java

public class AndroidMenusActivity extends Activity {
   TextView txt;
   String mphone;

   @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);

   txt = (TextView)findViewById(R.id.txtVw_phonenumber);

   TelephonyManager tmgr = 
             (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

   mphone = tmgr.getLine1Number();

   txt.setText(mphone);

   System.out.println("*******************************"   + mphone);
   }   
}

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.androidhive.androidmenus"
  android:versionCode="1"
  android:versionName="1.0">
  <uses-sdk android:minSdkVersion="8" />


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

  <application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".AndroidMenusActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 </application>
</manifest>
4

4 に答える 4

1
TelephonyManager tmgr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);

アプリケーションコンテキストを使用して確認できますか?

于 2013-04-29T06:48:18.503 に答える
0

電話番号の取得は、CDMA デバイスでのみ可能です。GSM デバイスでは、電話番号を取得できます。

TelephonyManager telephone=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
  String mPhoneNumber = telephone.getLine1Number();
于 2013-04-29T06:38:16.607 に答える
0

GSM電話では、実際にはこれを行うことはできません..しかし 、電話番号がsim_cardメモリに埋め込まれていないため、TelephonyManagerを介してネットワーク情報を見つけることができます..sim_cardシリアル番号を抽出し、そこからマッピングできますこれを達成するための他のリソースがある場合は、電話番号。

次のことができます..

public String getSimSerialNumber ()

API レベル 1 で追加

権限が必要です: READ_PHONE_STATE

また、SIM のプロバイダーのMCC および MNC コードを取得することもできます。

電話会社にリンクがある場合は、これを理解できます..非常に簡単に..

于 2013-04-29T06:56:49.687 に答える