Dialer

 ソフトバンクモバイルを使っていて一番不便に感じていたのが、プラス記号で始まる国番号付きの電話番号にダイヤルできないこと。W-CDMA や MMS など国際標準的なシステムを採用しながら、基本的なダイヤル方法が標準的なものとは違っていた。おそらくマイライン*1というシステムからくる制約なのだろう。
 ともかく、このために、日本国内でダイヤルするための 090XXXXXXXX や 01044XXXXXXXX というの形式の電話番号と、海外でダイヤルするための +8190XXXXXXXX や +44XXXXXXXX という形式の電話番号、つまり同一の電話番号について二つの形式で電話帳に登録しなければならなかった。(機種によっては、最初のゼロを +81 に変換してからダイヤルする機能、つまり逆向きの機能を持つものもあるようだ。)
 そこで、2年前に作ったのが Dialer
 PHONENUMBER タイプの TextField を二つ並べて、上の TextField で電話帳を検索し、「+ 国番号」に該当する部分が「+81」ならゼロに変換し、そうでないなら「010 国番号」に変換して下の TextField に格納する、というもの。下の TextField に入った電話番号を使って、ソフトバンクモバイルが受け付ける形式でダイヤルすることができる。ダイヤルするには、MIDlet.platformRequest() メソッドを使う。当時日本で発売されていたノキアの S60 機種はダイヤル時にこのような処理を内部で自動的に行ってくれたのだが、自分の電話機にはそれがなかった。
 MIDP でこれを実現するには、 TextField から電話帳を検索する機能と、MIDlet からダイヤルする機能の二つが必要である。もちろん、自分が使っていた機種はこれらの要件を満たしている。Windows Mobile 機に採用されている MIDP 実装の多くはこれらの機能を持っていないようだが、著名な方がもっと便利な Windows Mobile ネイティブなアプリケーションを公開されているので、拙作の出る幕ではない。

*1:市内通話、市外通話、国際通話に利用する電話会社を、利用者がそれぞれ個別に、自由に選べなければならない。