4

このコードで自分の電話番号を取得しようとしています

TelephonyManager Mgr=(TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE);  
mPhoneNumber = tMgr.getLine1Number();

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

しかし、それは定期的に機能しません。

「Androidで電話番号を取得する」の正確な解決策は何ですか?

ありがとう

4

5 に答える 5

4

「Androidで電話番号を取得する」の正確な解決策は何ですか?

ユーザーにEditText、おそらく で構成された に 1 つ入力してもらいますandroid:inputType="phone"。Android SDK には、デバイスの電話番号の取得をサポートするものは何もありません。これは、デバイスが電話番号を認識していない可能性があるためです。それを必要とするのは通信事業者だけです。さらに、ユーザーがどの電話番号を使用したいかを示す必要があるシナリオがいくつかあります。

  • デュアル SIM 電話
  • このデバイスに移植された他の電話番号を持つ人、または着信転送を使用してこのデバイスに通話をルーティングする人
  • デバイスで使用することを好む SIP 番号またはその他の VOIP 電話番号を持つ人々
于 2012-05-16T14:43:46.480 に答える
1

サーバー上の電子メールアドレスにプログラムで電話から mms を送信し、送信者番号を読み取ります。

于 2013-06-22T21:14:56.687 に答える
1

TelephonyManager は適切な解決策ではありません,場合によっては番号が SIM に保存されないためです.私の提案により,最初にアプリケーションを開いたときにユーザーの電話番号を保存するために共有設定を使用する必要があります.その後は常にその番号が使用されます.アプリケーションで必要です。

于 2014-01-07T11:15:10.670 に答える
0
public String myNO()
{
    return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getLine1Number();
}

これを試して

于 2012-05-16T13:47:55.343 に答える
0

このコードを使用して、

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

private String getMy10DigitPhoneNumber(){
    String s = getMyPhoneNumber();
    return s.substring(2);
}
于 2012-05-16T13:48:54.153 に答える