0

この部分を自分のアプリケーションに追加するために、自分の携帯電話の携帯電話番号を取得したい。

私はこの質問について探しています、

コードはエミュレータでは正しいが、デバイスでは空が表示されます。

public String getMyPhoneNumber()
    {
        return ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                .getLine1Number();
    }

と :

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

しかし、空の値を返していますか。では、電話番号の詳細を取得するにはどうすればよいですか?

4

4 に答える 4

1

回答者: Android フォンの電話番号をプログラムで取得する

「電話番号はすべての SIM カードに物理的に保存されたり、ネットワークから電話にブロードキャストされたりするわけではないため、この問題に対する保証された解決策はありません。これは、物理的な住所の確認を必要とする一部の国で特に当てはまり、番号の割り当てのみが行われます。電話番号の割り当てはネットワーク上で行われ、SIM カードやデバイスを変更せずに変更できます (たとえば、これが移植のサポート方法です)。

面倒なことは承知していますが、おそらく最善の解決策は、ユーザーに電話番号を一度入力して保存するように依頼することです。」

于 2013-11-14T11:47:39.943 に答える
1

使用している方法は、これを行う SDK の唯一の部分であり、番号が SIM カードに保存されているデバイスでのみ機能します。これは、一部のキャリアのみが行います。他のすべての通信事業者の場合は、ユーザーに電話番号を手動で入力するように依頼する必要があります。これは、電話番号がデバイスのどこからでも取得できる場所に保存されていないためです。

于 2013-11-14T11:45:26.933 に答える
0

コードは問題ないはずですが、SIM カードを電話に挿入する必要があります。また、独裁者が指摘したように、番号がSIMカードに保存されていない場合、空の文字列が返されます.

編集: また、Pontus Backlund が提供するリンクを確認してください。良い情報がいくつかあります。

于 2013-11-14T11:52:44.533 に答える
-1

設定に移動 - >デバイスについて - >ステータス - >私の電話番号が不明な場合は私の電話番号携帯電話番号を取得できません..モバイルネットワークの一部が携帯電話番号を提供しないため..

私の携帯電話番号に番号がある場合、次のコードで携帯電話を取得できます

TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    phoneNumber = tManager.getLine1Number();
于 2013-11-14T11:45:59.873 に答える