2012-02-28 23 views
1

私のアプリケーションを開発する際に電話番号が必要です。 TelephonyManagerが各デバイスに電話番号を提供していません

TelephonyManager tmgr =(TelephonyManager)getApplicationContext().getSystemService(getApplicationContext().TELEPHONY_SERVICE); 
Log.d("Tag", tmgr.getLine1Number()); 

しかし、私は何とか getLine1Number()が機能していない、異なるデバイスでアプリケーションをしようとしたとき:だから、下図のように、私は TelephonyManagerを使用しました。返品の意味は NULLです。

許可は大丈夫です。最後に、getLine1Number()の必要条件に依存していますか?可能なのはすべてのデバイスの電話番号を確認してください。

アドバイスありがとうございます。

答えて

3

これはsimカードの作成方法に依存するため、すべてのデバイスで電話番号を取得することはできません。これはSIMカードの制限です。

+0

まず、ガビさんに感謝します。この状態についてもっと詳しく教えていただけますか? –

+3

電話番号がすべてのSIMカードに物理的に格納されていないか、またはネットワークから電話機にブロードキャストされているため、この問題の保証された解決策はありません。これは、物理アドレス検証を必要とする国では特に当てはまります。電話番号の割り当てはネットワーク上で行われ、SIMカードやデバイスを変更することなく変更できます(例:これは移植のサポート方法です)。 私はそれが苦痛であることを知っていますが、最も良い解決策は、ユーザーに電話番号を一度入力して保存するように求めることです。 –

+0

これは質問の回答です。http://stackoverflow.com/questions/2480288/get-phone-number-in-android-sdk –

関連する問題