2012-06-25 27 views
8

getLine1Number()の方法TelephonyManagerは、LG Optimus Net DualのようなデュアルSIM携帯電話で返されますか?デュアルSIM電話でgetLine1Number()は何を返しますか?

+0

私はまだそれをテストしなければならないだろうが、私はそれがプライマリSIM番号を返すだろうと思う。 – Raykud

+0

@Raykudあなたの返事を楽しみにしています。 –

+0

まあ、1つのSIMカードがスタンバイモードにあり、もう1つがプライマリではないと設定されているので、スタンバイモードではないSIM番号が返されます。 – Raykud

答えて

10

あなたは1つの番号だけを返します...多分!

最初に返される番号は、デバイスによって異なります。

しかし、同じように重要なことに、番号を取得するかどうか、この番号を電話番号にするかどうかは完全に予測できません。これはSIMと演算子に依存します。

私のアプリケーションの1つでは、ユーザーがこの番号を簡単に思い出すことができるので、私は一意のIDとして電話番号を使用しようとしました。アジア、オーストラリア、ヨーロッパの一部の事業者の場合、電話番号(line1number())は単にSIMに保存されません!他人と一緒に、あなたはゼロの文字列を得るかもしれません。または、ローカルで意味をなさない方法でフォーマットされた数字ですが、アプリのロジックを混乱させる可能性があります。

0

デフォルトのSDKでは、デュアルSIM携帯電話を処理するサポートはありません。この関数は1つの番号、最初のアクティブなSIMカードからの可能性が最も高い番号のみを返します。

ただし、メーカーがこれらの処理を行うためのSDKを提供する場合があります。

+0

デュアルSIMをサポートするメーカーのSDKを入手できますか? – Kishore

+1

@Kishoreメーカーに委ねられています。 – gonzobrains

+1

@gonzobrains私はそれが製造元にあることを知っていますが、誰かがそのような製造業者を知っているかどうか尋ねました。 – Kishore

2

AndroidはデュアルSIMデバイスをサポートしていません。次を参照してください:Detect the status of two SIM cards in a dual-SIM Android phone

他の人によると、デバイスメーカーのサポートを受ける可能性があります。

さらに、getLine1Number()は電話番号を返すことを保証しません。オペレーターがカードに保管している内容が返され、オペレーターによってはその番号を記入する必要はありません。だから、いくつかのSIMカードでは、これはちょうどnullを返します。

あなたが達成しようとしていることの詳細を提供すれば、より良い解決策を提供できるかもしれません。

関連する問題