Symbian でプログラムによって自分の電話番号を取得する
質問
Symbian でデバイスの電話番号を取得するにはどうすればよいですか?
解決
GSM 仕様によると、 IMSI で利用可能である必要があります SIM カード。
実際の電話番号 MSISDN に保存されています HLR データベースは通信事業者のネットワーク内にあり、SIM カード上で利用可能にしたり、電話機に送信したりする必要はありません。
したがって、どのようなテクノロジ (Symbina、Java など) を使用しているとしても、デバイスや SIM から自分の電話番号を一貫して取得できるとは期待できません。オペレータがそれを SIM に保存している場合、または電話機がユーザーに手動で入力する機能を提供している場合は幸運かもしれませんが、このようにする必要はありません。
他のヒント
パットが言ったように、SIM 上の「自分の番号」スロットにアクセスするための API はありますが、私の経験では、このスロットが埋まることはほとんどありません。
接続されているアプリケーションの電話番号を取得するための通常の戦略は、検証プロセスの一部として SMS を送信することです。どちらか:
プログラムでハンドセットからサーバーに SMS を送信します (優れた SMS ゲートウェイ相互接続プロバイダーが多数存在します)。SMS は、ハンドセット (より正確には SIM) の番号「から」サーバーに到着します。もちろん、サーバーが特定のセッション/ユーザーにリンクできるように、SMS には何らかのトークンが含まれている必要があります。これには、ユーザーが自分の電話番号を入力する必要がないという利点があります (数値を E.164 形式でフォーマットする方法を理解している人がほとんどいないことを考えると、これは微妙な困難を伴います)。1 つの欠点は、このプロセスでユーザーの費用がかかる可能性があることです (SMS 1 通分)。
ユーザーに自分の電話番号 (Web サイトまたはハンドセット) を入力してサーバーに接続し、その電話番号を渡します。次に、サーバーから送信された SMS が到着するまでハンドセットを待ちます。この SMS が実際に届いた場合は、入力された電話番号が正しく有効であることが確認されたことになります。明らかな欠点は、これはユーザーが番号を正しく入力するかどうかに依存していることです。繰り返しになりますが、世界中で電話番号を記述する方法が多数あることを考えると、番号を E.164 に正規化することは、思っているほど簡単ではありません。
残念ながら、特に SMS は接続されていないトランスポートであるため、これらの方法はいずれも完全に安全ではありません。GSM ネットワークの負荷、ゲートウェイ プロバイダーの負荷、月の満ち欠け、SMS が届くまでに 1 秒から 1 か月かかる場合があります (はい、後者の経験があります)。平均配信時間は多くの場合秒単位ですが、操作タイムアウトを調整する必要があり、場合によっては地理的および GSM ネットワーク ベースで調整する必要があります。[いや、配信レポートに頼らないでください - SMS 配信よりもさらに信頼性が低いです]
ご参考までに:実はこれを見つけたんです。
http://www3.symbian.com/faq.nsf/AllByDate/100335073FFD8FEF80256E3200571A49?OpenDocument
しかし実際には、電話番号は常に SIM に保存されているわけではありません。実行するかしないかはオペレーターが選択します。
あなたはできません。私の知る限り。
このディスカッションを確認してください:http://Discussion.forum.nokia.com/forum/showthread.php?t=65117
通常、Symbian デバイス (または BREW、またはその他のプラットフォーム) から MSISDN を取得することはできません。試してみました。