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