(57)【要約】  テレビジョン及びマルチメディア・アプリケーションを制御するためにモバイル・デバイス・キーパッド上に直感的なユーザ・インターフェースを提供する方法及び装置は、ビデオ・アプリケーション・ソフトウェアとモバイル・デバイス・キーパッドとの間の標準的なインターフェースとしてキーパッド・プロトコルを使用する。キーパッド・プロトコルは、アプリケーションがフィールド化された後に開発される可能性があるキーパッドを含む、いろいろなキーパッドと互換性があるビデオ・アプリケーションの開発を容易にするために、インターフェース及びＡＰＩの共通の組を提供し得る。ビデオ・アプリケーションは、ディスプレイ・キーパッド上に直感的な機能記述グラフィックを提示するグラフィックを提供することを含む、ビデオ機能をサポートするキーパッド構成をキーパッド・プロトコルに知らせ得る。ある実施形態では、モバイル・デバイスは、特定のキーに割当てられる割当て式マルチメディア・プレーヤ機能を示す直感的なグラフィックをキーパッド上に提示しながら、モバイル・デバイス内でエリア無線データリンク送受信機を使用して外部マルチメディア・プレーヤを制御するように構成され得る。
2011524586.tif 000002
【特許請求の範囲】
【請求項１】
モバイル・デバイス上で動作するビデオ・アプリケーション用のユーザ・インターフェースを提供する方法であって、
キーパッド・プロトコルにおいて前記ビデオ・アプリケーションからキーパッド構成命令を受信すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定すること、及び、
前記ビデオ・アプリケーションに前記キー値を通信することを備える方法。
【請求項２】
キーパッド翻訳テーブル内に前記キーパッド構成命令を格納することをさらに備え、前記キー押下イベントに関連する前記キー値は、前記キーパッド翻訳テーブルを使用して決定される請求項１に記載の方法。
【請求項３】
前記ビデオ・アプリケーションから、利用可能なキーパッドについての要求を、前記キーパッド・プロトコルにおいて受信すること、及び、
前記ビデオ・アプリケーションから受信された前記要求に応答して、前記モバイル・デバイス上で利用可能なキーパッドのタイプを前記ビデオ・アプリケーションに知らせることをさらに備える請求項２に記載の方法。
【請求項４】
前記キーパッド選択は、アプリケーション・プログラム・インターフェース（ＡＰＩ）の形態で前記ビデオ・アプリケーションから受信される請求項３に記載の方法。
【請求項５】
特定のキーに割当てられたビデオ・アプリケーション機能に関連する前記ビデオ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成することをさらに備える請求項３に記載の方法。
【請求項６】
前記受信されたグラフィックはグラフィック・ファイルである請求項５に記載の方法。
【請求項７】
前記受信されたグラフィックは、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタである請求項５に記載の方法。
【請求項８】
モバイル・デバイスからマルチメディア・プレーヤを制御する方法であって、
前記モバイル・デバイス上で動作するマルチメディア・コントローラ・アプリケーションからキーパッド構成命令を、キーパッド・プロトコルにおいて受信すること、
キーパッド翻訳テーブルに前記キーパッド構成命令を格納することであって、前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される、格納すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定すること、
前記マルチメディア・コントローラ・アプリケーションに前記キー値を通信すること、
前記キー値に基づいて前記マルチメディア・プレーヤに送出されるようにコマンドを構成すること、及び、
前記マルチメディア・プレーヤに前記コマンドを送信することと、
を備える方法。
【請求項９】
特定のキーに割当てられたマルチメディア・プレーヤ機能に関連する（related to）前記マルチメディア・コントローラ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成することをさらに備える請求項８に記載の方法。
【請求項１０】
前記受信されたグラフィックはグラフィック・ファイルである請求項９に記載の方法。
【請求項１１】
前記受信されたグラフィックは、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタである請求項９に記載の方法。
【請求項１２】
前記コマンドは、前記モバイル・デバイス内で赤外線データリンク送信機を使用して前記マルチメディア・プレーヤに送信される請求項９に記載の方法。
【請求項１３】
前記コマンドは、前記モバイル・デバイス内で近・中距離無線データネットワーク送受信機を使用して前記マルチメディア・プレーヤに送信される請求項９に記載の方法。
【請求項１４】
プロセッサと、
前記プロセッサに結合したキーパッドと、
前記プロセッサに結合したメモリと、を備えるモバイル・デバイスであって、
前記プロセッサは、
キーパッド・プロトコルにおいてビデオ・アプリケーションからキーパッド構成命令を受信すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定すること、及び、
前記ビデオ・アプリケーションに前記キー値を通信することと、
を備えるステップを実施するソフトウェア命令によって構成されるモバイル・デバイス。
【請求項１５】
前記プロセッサは、キーパッド翻訳テーブルに前記キーパッド構成命令を格納することであって、前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される、格納することをさらに備えるステップを実施するソフトウェア命令によって構成される請求項１４に記載のモバイル・デバイス。
【請求項１６】
前記プロセッサは、
前記ビデオ・アプリケーションから、利用可能なキーパッドについての要求を、前記キーパッド・プロトコルにおいて受信すること、及び、
前記ビデオ・アプリケーションから受信された前記要求に応答して、前記キーパッドのタイプを前記ビデオ・アプリケーションに知らせることと、
をさらに備えるステップを実施するソフトウェア命令によって構成される請求項１５に記載のモバイル・デバイス。
【請求項１７】
前記キーパッド選択は、アプリケーション・プログラム・インターフェース（ＡＰＩ）の形態で前記ビデオ・アプリケーションから受信される請求項１６に記載のモバイル・デバイス。
【請求項１８】
前記プロセッサは、
特定のキーに割当てられたビデオ・アプリケーション機能に関連する前記ビデオ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成することと、
をさらに備えるステップを実施するソフトウェア命令によって構成される請求項１６に記載のモバイル・デバイス。
【請求項１９】
前記プロセッサは、前記グラフィックをグラフィック・ファイルとして受信することを備えるステップを実施するソフトウェア命令によって構成される請求項１８に記載のモバイル・デバイス。
【請求項２０】
前記プロセッサは、前記グラフィックを、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタとして受信することを備えるステップを実施するソフトウェア命令によって構成される請求項１８に記載のモバイル・デバイス。
【請求項２１】
プロセッサと、
前記プロセッサに結合したキーパッドと、
前記プロセッサに結合したローカルエリア無線データリンク送受信機と、
前記プロセッサに結合したメモリと、を備えるモバイル・デバイスであって、
前記プロセッサは、
前記モバイル・デバイス上で動作するマルチメディア・コントローラ・アプリケーションからキーパッド構成命令を、キーパッド・プロトコルにおいて受信すること、
キーパッド翻訳テーブルに前記キーパッド構成命令を格納すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定することであって、前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される決定すること、
前記マルチメディア・コントローラ・アプリケーションに前記キー値を通信すること、
前記キー値に基づいて前記マルチメディア・プレーヤに送出されるようにコマンドを構成すること、及び、
前記ローカルエリア無線データリンク送受信機を使用して前記マルチメディア・プレーヤに前記コマンドを送信することと、
を備えるステップを実施するソフトウェア命令によって構成されるモバイル・デバイス。
【請求項２２】
前記プロセッサは、
特定のキーに割当てられたマルチメディア・プレーヤ機能に関連する前記マルチメディア・コントローラ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成することをさらに備えるステップを実施するソフトウェア命令によって構成される請求項２１に記載のモバイル・デバイス。
【請求項２３】
前記プロセッサは、前記グラフィックをグラフィック・ファイルとして受信することを備えるステップを実施するソフトウェア命令によって構成される請求項２２に記載のモバイル・デバイス。
【請求項２４】
前記プロセッサは、前記グラフィックを、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタとして受信することを備えるステップを実施するソフトウェア命令によって構成される請求項２２に記載のモバイル・デバイス。
【請求項２５】
ローカルエリア無線データリンク送受信機は、赤外線データリンク送受信機である請求項２１に記載のモバイル・デバイス。
【請求項２６】
ローカルエリア無線データリンク送受信機は、近・中距離無線データネットワーク送受信機である請求項２１に記載のモバイル・デバイス。
【請求項２７】
キーパッド・プロトコルにおいてビデオ・アプリケーションからキーパッド構成命令を受信すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定すること、及び、
前記アプリケーションに前記キー値を通信することを備えるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を格納する触知可能記憶媒体。
【請求項２８】
キーパッド翻訳テーブル内に前記キーパッド構成命令を格納することを備えるさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、前記キー押下イベントに関連する前記キー値は、前記キーパッド翻訳テーブルを使用して決定される請求項２７に記載の触知可能記憶媒体。
【請求項２９】
前記ビデオ・アプリケーションから、利用可能なキーパッドについての要求を、前記キーパッド・プロトコルにおいて受信すること、及び、
前記アプリケーションから受信された前記要求に応答して、前記モバイル・デバイスに接続されたアクティブ化されたキーパッドを前記ビデオ・アプリケーションに知らせることを備えるさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項２８に記載の触知可能記憶媒体。
【請求項３０】
前記キーパッド選択が、アプリケーション・プログラム・インターフェース（ＡＰＩ）の形態で前記ビデオ・アプリケーションから受信されるようなさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項２７に記載の触知可能記憶媒体。
【請求項３１】
特定のキーに割当てられたビデオ・アプリケーション機能に関連する前記ビデオ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するように前記選択されたキーパッドを構成することを備えるさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項２７に記載の触知可能記憶媒体。
【請求項３２】
前記受信されたグラフィックがグラフィック・ファイルであるようなさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３１に記載の触知可能記憶媒体。
【請求項３３】
前記受信されたグラフィックが、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタであるようなさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３１に記載の触知可能記憶媒体。
【請求項３４】
前記モバイル・デバイス上で動作するマルチメディア・コントローラ・アプリケーションからキーパッド構成命令を、キーパッド・プロトコルにおいて受信すること、
キーパッド翻訳テーブルに前記キーパッド構成命令を格納すること、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信すること、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定することであって、前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される決定すること
前記マルチメディア・コントローラ・アプリケーションに前記キー値を通信すること、
前記キー値に基づいて前記マルチメディア・プレーヤに送出されるようにコマンドを構成すること、及び、
ローカルエリア無線データリンク送受信機を使用して前記マルチメディア・プレーヤに前記コマンドを送信することと、
を備えるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を格納する触知可能記憶媒体。
【請求項３５】
特定のキーに割当てられたマルチメディア・プレーヤ機能に関連する前記マルチメディア・コントローラ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信すること、及び、
前記受信されたグラフィック・ファイルを表示するようにキーパッドを構成することをさらに備えるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３４に記載の触知可能記憶媒体。
【請求項３６】
前記グラフィックをグラフィック・ファイルとして受信することを備えるさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３５に記載の触知可能記憶媒体。
【請求項３７】
前記グラフィックを前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタとして受信することを備えるさらなるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３５に記載の触知可能記憶媒体。
【請求項３８】
赤外線データリンク送受信機を使用して前記マルチメディア・プレーヤに前記コマンドを送信することをさらに備えるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３４に記載の触知可能記憶媒体。
【請求項３９】
近・中距離無線データネットワーク送受信機を使用して前記マルチメディア・プレーヤに前記コマンドを送信することをさらに備えるステップを、モバイル・デバイスのプロセッサに実施させるように構成されたプロセッサ実行可能ソフトウェア命令を有する請求項３４に記載の触知可能記憶媒体。
【請求項４０】
キーパッド・プロトコルにおいてビデオ・アプリケーションからキーパッド構成命令を受信するための手段と、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信するための手段と、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定するための手段と、
前記ビデオ・アプリケーションに前記キー値を通信するための手段とを備えるモバイル・デバイス。
【請求項４１】
キーパッド翻訳テーブルに前記キーパッド構成命令を格納するための手段をさらに備え、
前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される請求項４０に記載のモバイル・デバイス。
【請求項４２】
前記ビデオ・アプリケーションから、利用可能なキーパッドについての要求を、前記キーパッド・プロトコルにおいて受信するための手段と、
前記ビデオ・アプリケーションから受信された前記要求に応答して、前記モバイル・デバイス上で利用可能なキーパッドのタイプを前記ビデオ・アプリケーションに知らせるための手段と、
をさらに備える請求項４０に記載のモバイル・デバイス。
【請求項４３】
利用可能なキーパッドについての前記要求は、アプリケーション・プログラム・インターフェース（ＡＰＩ）の形態で前記ビデオ・アプリケーションから受信される請求項４２に記載のモバイル・デバイス。
【請求項４４】
特定のキーに割当てられたビデオ・アプリケーション機能に関連する前記ビデオ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信するための手段と、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成するための手段と、
をさらに備える請求項４２に記載のモバイル・デバイス。
【請求項４５】
前記キーパッド・プロトコルにおいてグラフィックを受信するための前記手段は、グラフィック・ファイルを前記キーパッド・プロトコルにおいて受信するための手段を備える請求項４４に記載のモバイル・デバイス。
【請求項４６】
グラフィックを前記キーパッド・プロトコルにおいて受信するための前記手段は、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタを、前記キーパッド・プロトコルにおいて受信するための手段を備える請求項４１に記載のモバイル・デバイス。
【請求項４７】
前記モバイル・デバイス上で動作するマルチメディア・コントローラ・アプリケーションからキーパッド構成命令を、キーパッド・プロトコルにおいて受信するための手段と、
キーパッド翻訳テーブルに前記キーパッド構成命令を格納するための手段であって、前記キー押下イベントに関連する前記キー値は前記キーパッド翻訳テーブルを使用して決定される、格納するための手段と、
前記キーパッド・プロトコルにおいてキー押下イベント信号を受信するための手段と、
前記キーパッド・プロトコルにおいて前記受信されたキーパッド構成命令を使用して前記キー押下イベントに関連するキー値を決定するための手段と、
前記マルチメディア・コントローラ・アプリケーションに前記キー値を通信するための手段と、
前記キー値に基づいて前記マルチメディア・プレーヤに送出されるようにコマンドを構成するための手段と、
前記マルチメディア・プレーヤに前記コマンドを送信するための手段と、
を備えるモバイル・デバイス。
【請求項４８】
特定のキーに割当てられたマルチメディア・プレーヤ機能に関連する前記ビデオ・アプリケーションからグラフィックを、前記キーパッド・プロトコルにおいて受信するための手段と、
前記受信されたグラフィック・ファイルを表示するように前記キーパッドを構成するための手段と、
をさらに備える請求項４７に記載のモバイル・デバイス。
【請求項４９】
グラフィックを前記キーパッド・プロトコルにおいて受信するための前記手段は、グラフィック・ファイルを前記キーパッド・プロトコルにおいて受信するための手段を備える請求項４８に記載のモバイル・デバイス。
【請求項５０】
グラフィックを前記キーパッド・プロトコルにおいて受信するための手段は、前記モバイル・デバイスのメモリに格納されたグラフィック・ファイルに対するポインタを、前記キーパッド・プロトコルにおいて受信するための手段を備える請求項４８に記載のモバイル・デバイス。
【請求項５１】
前記マルチメディア・プレーヤに前記コマンドを送信するための前記手段は、赤外線データリンク送信機を備える請求項４７に記載のモバイル・デバイス。
【請求項５２】
前記マルチメディア・プレーヤに前記コマンドを送信するための前記手段は、近・中距離無線データネットワーク送受信機を備える請求項４８に記載のモバイル・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、モバイル・コンピュータ・システムに関し、より詳細には、携帯電話などのモバイル・デバイス上で使用するための共通のキーパッド・インターフェース・ソフトウェア層に関する。
【０００２】
優先権の主張
本出願は、その全体の内容が参照により組み込まれる、「Ｄｙｎａｍｉｃａｌｌｙ  Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｋｅｙｐａｄ」という名称の２００７年７月１６日に出願された米国特許仮出願番号第６０／９５０，１１２号に対して優先権の利益を主張する。
【背景技術】
【０００３】
携帯電話などのモバイル電子デバイス（モバイル・デバイス）の使用は、その可搬性、接続性、及び益々増加するコンピューティング・パワーのために益々増加している。モバイル・デバイスが洗練されるにつれて、アプリケーション・ソフトウェアの種類及び洗練度が増しつつあり、モバイル・デバイスを多目的生産性ツールに変える。しかし、モバイル・デバイス及びそのアプリケーションの有用性は、ユーザ・インターフェースに使用可能なエリアが小さいことによって制限される。従来の携帯電話は、固定構成の単純なキーパッドを含んでいた。最近、小型ＱＷＥＲＴＹキーボード、タッチ・スクリーン・インターフェース、及び再構成可能なキーを特徴とするモバイル・デバイスが発売されている。より良いユーザ・インターフェースを提供し、より有用なアプリケーションをサポートするさらなるキーパッド革新が予想される。
【０００４】
従来、キーパッドは、キーの押下を、モバイル・デバイス及びそのアプリケーション・ソフトウェアによって解釈され得る電気信号に変換することによって機能する。図１は、キー押下イベントがアプリケーション・ソフトウェアにどのように通信されるかを示す典型的なモバイル・デバイスのハードウェア／ソフトウェア・アーキテクチャを示す。従来の固定キーパッド５上でのキーの押下は、回路を閉じるか、または、静電容量もしくは抵抗を変化させ、それにより、ハードウェア・ドライバ４によって処理され得る電気信号が生じる。ハードウェア・ドライバ４は、特定のモバイル・デバイスに応じて、回路、ソフトウェア、またはハードウェアとソフトウェアの混合物であってよい。ハードウェア・ドライバ４は、キーパッド５から受信される電気信号を、モバイル・デバイス上で実行されるソフトウェア・アプリケーションによって解釈され得る形式に変換する。この信号は、ソフトウェア・アプリケーションによってアクセス可能であるメモリテーブル内の割込み値または格納値の形態であってよい。メモリ内のこうした割込み値または格納値は、無線用バイナリランタイム環境（Binary Runtime Environment for Wireless）（ＢＲＥＷ（登録商標））、Ｗｉｎｄｏｗｓ（登録商標）モバイル、Ｌｉｎｕｘ（登録商標）などのランタイム環境ソフトウェア層３によって受信される。ランタイム環境ソフトウェア層３の目的は、アプリケーション・ソフトウェアとモバイル・デバイスとの間の共通のインターフェースを提供することである。そのため、キー押下イベント信号は、キー押下イベント・メッセージの形態で、アプリケーション層２上で渡される。アプリケーション・ソフトウェアは、キー押下イベントの意味を理解できなければならず、したがって、基礎になるハードウェア・ドライバ４及びキーパッド・ハードウェア５に対処するように書かれなければならない。キー押下イベントはまた、特定のキーに関連する値を表示するなどのために、ユーザ・インターフェース層１に伝達されてもよい。
【０００５】
図１に示すような、過去に知られているシステム／ハードウェア・アーキテクチャを使用して、アプリケーション開発者は、アプリケーションがロードされる可能性があるモバイル・デバイスの各タイプに固有のキーパッド・レイアウト及び関連機能に対して開発者のソフトウェアを適合させなければならなかった。そのため、従来のキーパッド用に構成されたアプリケーションは、タッチ・スクリーン・キーパッドを有するモバイル・デバイス上で機能しない可能性があり、また、タッチ・スクリーンを装備したモバイル・デバイス用に書かれたアプリケーションは、従来のモバイル・デバイス上で動作しないことになる。アプリケーション開発者は、いくつかの種類のデバイス上で使用され得る単一アプリケーションを書きたいと思う場合、種々のモバイル・デバイス上で使用される可能性がある異なる種類のキーパッド全てを、ソフトウェアにおいて予想し、対処しなければならなかった。そのため、アプリケーション・ソフトウェアは、各タイプのデバイス・キーボード・レイアウト及びキー押下イベント信号と一緒に使えることが求められるコード及び情報を含まなければならないことになる。この要件は、ソフトウェアの複雑さを増加させ、アプリケーション開発者が、種々のデバイス上で実行され得る入手可能なアプリケーションを提供することを困難にしている。同様に、アプリケーション開発者は、まだ開発されていないキーパッドを採用する将来のモバイル・デバイス上で動作可能なアプリケーションを書くことができない。その結果、アプリケーション開発は、必然的にハードウェア開発より遅れている。さらに、異なる種類のデバイス上で使用される異なるキーパッド・レイアウト及び機能は、開発者が、種々のモバイル・デバイスにわたって共通のルック・アンド・フィール（外観と雰囲気）を有するアプリケーションを作成することを困難にしている。
【発明の概要】
【０００６】
種々の実施形態のシステム及び方法は、アプリケーション・ソフトウェアのために標準的なキーパッド・インターフェースを提供するモバイル・デバイスのソフトウェア・アーキテクチャ内でキーパッド・プロトコルインターフェースを提供する。キーパッド・プロトコルは、モバイル・テレビジョン及びマルチメディア・アプリケーションが、アプリケーションによって認識可能な標準的な形式でキー押下イベントを受信しながら、キー・イベント定義を指定し、メディア・プレーヤ機能と一貫性がある種々のキーパッドと共に使用するグラフィックを提供することを可能にする。共通のキーパッド・インターフェースを提供することによって、キーパッド・プロトコルは、ユーザ・インターフェースに関するモバイル・テレビジョン及びマルチメディア・アプリケーション開発プロセスを簡略化し、単一アプリケーションが、種々の異なるキーパッド構成を採用する種々の異なるタイプのモバイル・デバイス上で動作することを可能にする。キーパッド・プロトコルはまた、予測テキスト、翻訳、及びスペルチェック・ソフトウェアなどのキー・ストローク解釈アプリケーションに対するインターフェースとして役立つ可能性がある。テレビジョン及びマルチメディア・プレーヤに通常関連するキー機能シンボルを示すキーディスプレイを設けることによって、ユーザは、こうしたアプリケーションのためのより直感的なインターフェースを提供される。ある実施形態では、マルチメディア・プレーヤ・コントローラ・ソフトウェアは、モバイル・デバイスが、外部マルチメディア・プレーヤのための直感的なユーザ・インターフェースを提供しながら、ローカルエリア・データリンク送受信機を使用して外部マルチメディア・プレーヤを制御することを可能にする。
【０００７】
本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本発明の例示的な実施形態を示し、また、先に与えた一般的な説明及び以下で与える詳細な説明と共に、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【０００８】
【図１】標準的な従来技術の携帯電話のハードウェア／ソフトウェア・アーキテクチャを示す図。
【図２】種々の実施形態によって有効になる携帯電話システムのシステム・コンポーネントを示す図。
【図３】ある実施形態によるハードウェア／ソフトウェア・アーキテクチャ図の一部分を示す図。
【図４】種々の実施形態に関し使用可能な典型的な携帯電話のコンポーネントを示すブロック図。
【図５】ある実施形態のハードウェア／ソフトウェア・アーキテクチャを示す図。
【図６】別の実施形態のハードウェア／ソフトウェア・アーキテクチャを示す図。
【図７】ある実施形態による、通信フローを示すソフトウェア・アーキテクチャ図の一部分を示す図。
【図８】ある実施形態によって有効になる機能の一部分のプロセス・フローを示す図。
【図９】図８に示すプロセス・ステップに関連するメッセージのメッセージ・フローを示す図。
【図１０】ある実施形態の機能の一部分のプロセス・フローを示す図。
【図１１】ある実施形態で使用するのに適したデータ構造を示す図。
【図１２】ある実施形態によるキー翻訳テーブル用のデータ構造を示す図。
【図１３】ある実施形態の機能の一部分のプロセス・フローを示す図。
【図１４】ある実施形態によるキー押下イベント割込みのデータ構造を示す図。
【図１５】ある実施形態の機能の一部分のプロセス・フローを示す図。
【図１６】図１５に示すプロセス・ステップに関連するメッセージのメッセージ・フローを示す図。
【図１７】ある実施形態と組み合わせて、予測テキスト・アプリケーションを採用するある実施形態のプロセス・フローを示す図。
【図１８】図１７に示すプロセス・ステップに関連するメッセージのメッセージ・フローを示す図。
【図１９】ディスプレイ・キーを採用するキーパッドの上面図。
【図２０】ディスプレイ・キーを採用するキーパッドの断面図。
【図２１】タッチ・スクリーン・ユーザ・インターフェースを含む携帯電話の図。
【図２２】タッチ・スクリーン・ユーザ・インターフェースを含む携帯電話の図。
【図２３】キーの上に配置されたディスプレイを含む携帯電話の図。
【図２４】異なるキー値シンボルを提示するキーパッド・ディスプレイを採用するある実施形態の図。
【図２５】異なるキー値シンボルを提示するキーパッド・ディスプレイを採用するある実施形態の図。
【図２６】異なるキーパッド・シンボルを提示するタッチ・スクリーン携帯電話の図。
【図２７】異なるキーパッド・シンボルを提示するタッチ・スクリーン携帯電話の図。
【図２８】異なるキーパッド・シンボルを提示するキーディスプレイを含む携帯電話の図。
【図２９】異なるキーパッド・シンボルを提示するキーディスプレイを含む携帯電話の図。
【図３０】テレビジョンまたはマルチメディア・プレーヤ・アプリケーションが動作する従来の携帯電話の図。
【図３１】テレビジョンまたはマルチメディア・プレーヤ・アプリケーションが動作するディスプレイ・キーを採用する携帯電話の図。
【図３２】テレビジョンまたはマルチメディア・プレーヤが動作するタッチ・スクリーン・ユーザ・インターフェースを採用する携帯電話の図。
【図３３】テレビジョンまたはマルチメディア・プレーヤ・アプリケーションが動作するキーディスプレイを採用する携帯電話の図。
【図３４】テレビジョンまたはマルチメディア・プレーヤ・アプリケーションが動作するタッチ・スクリーン・ディスプレイ・インターフェースを有する携帯電話の図。
【発明を実施するための形態】
【０００９】
種々の実施形態について、添付図面を参照して詳細に述べる。可能である場合はどこでも、同じまたは同様な部品を参照するために、同じ参照数字が図面全体を通して使用されることになる。特定の実施例及び実施態様に対して行われる参照は、例示のためであり、本発明または特許請求の範囲を制限するものではない。
【００１０】
本明細書で使用されるように、用語「モバイル・ハンドセット（mobile handset）」及び「モバイル・デバイス（mobile device）」は、交換可能に使用され、種々の携帯電話、携帯情報端末（ＰＤＡ）、パームトップ・コンピュータ、無線モデムを有するラップトップ・コンピュータ、無線電子メール受信機（たとえば、Ｂｌａｃｋｂｅｒｒｙ（登録商標）及びＴｒｅｏ（登録商標）デバイス）、携帯電話、及びマルチメディアインターネット有効化携帯電話（たとえばｉＰｈｏｎｅ（登録商標））、ならびに同様のパーソナル電子デバイスのうちの任意の１つを指す。モバイル・デバイスは、図４を参照して以下でより完全に述べるように、プログラマブル・プロセッサ及びメモリを含んでもよい。好ましい実施形態では、モバイル・デバイスは、携帯電話ネットワークを介して通信し得る携帯型手持ち式デバイス（たとえば携帯電話）である。
【００１１】
現代の携帯電話及び他のモバイル・デバイスは、ユーザ入力を受信するために種々の異なるキーパッドを利用する。より大きな柔軟性を提供する新しい種類のキーパッドが将来予想される。さらに、モバイル・デバイス１０は、図２に示すように、キーボード、キーパッド、及び外部メディア・プレーヤなどの、外部ユーザ・インターフェース及びデバイスに接続され得るまたはインターフェースされ得る。そのため、モバイル・デバイス１０は、本明細書に述べるようなキーパッド２０またはタッチ・スクリーン・キーパッドを含み、ＦｉｒｅＷｉｒｅ（登録商標）またはＵＳＢケーブルなどのケーブル５２などによって外部キーボード５０に接続されてもよい。モバイル・デバイス１０はまた、ケーブル５６によって、ドローイング・パッド５４などのタッチ感応式ディスプレイまたはユーザ・インターフェースに接続されてもよい。モバイル・デバイス１０はまた、種々の実施形態などに従って、ローカルエリア無線データリンク６２を使用してＤＶＤ／ＣＤプレーヤ５８またはテレビジョン５９などの外部メディア・プレーヤにインターフェースするように構成されてもよい。ケーブル接続の代わりに、または、それに加えて、キーボード６０などの外部ユーザ入力デバイスが、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線データリンクまたは赤外線データリンク（たとえば、赤外線データ協会（Infrared Data Association）（ＩｒＤＡ）仕様による）などのローカルエリア無線データリンク６２によってモバイル・デバイスに結合されてもよい。それほど多くの異なる種類のユーザ・インターフェースが消費者に利用可能である状態で、アプリケーション開発者は、新しいアプリケーション・ソフトウェアを書くときに難題に直面する。以前は、開発者は、アプリケーションに関連して使用される可能性がある各キーボードまたはキーパッドに関連する構成及びシグナリングを知り、アプリケーションがそのキーパッドに関して動作することを可能にするために必要なコード及び値を含めなければならなかった。
【００１２】
外部キーパッドに加えて、一部の現代のモバイル・デバイスは、デバイスに一体化された２つ以上のキーパッドを含む。たとえば、一部の携帯電話の設計は、電話をかけるときに使用するための数字キーパッド及びキーボードを露出させるように、電話の一部分を摺動させるか、開くか、または回転させることによってアクティブ化され得る小型キーボードを含む。別の実施例として、一部の携帯電話は、固定キーパッド、ならびに、ユーザ選択及びアプリケーション・ソフトウェアに応じて、受動ディスプレイとして動作してもよいタッチ・スクリーン・ユーザ・インターフェースまたはタッチ感応性インターフェースを含んでもよい。そのため、外部キーボードまたはインターフェースが取り付けられていないモバイル・デバイス１０でさえ、アプリケーション・ソフトウェアにインターフェースする複数のキーパッドを含む可能性がある。
【００１３】
さらに、モバイル・デバイスは、今や、従来の携帯電話及びＰＤＡのアプリケーションと非常に異なるアプリケーションをプログラムされ、デバイスをモバイル娯楽資源にする。たとえば、一部のモバイル・デバイスは、携帯サービス・プロバイダによって送信されるモバイル・テレビジョンプログラムを受信し表示し得る。同様に、一部のモバイル・デバイスは、記録されたムービー、フィルムクリップ、及び同様なマルチメディア素材を含むビデオファイルを提示し得る。モバイル・デバイス用のモバイル・テレビジョン及びマルチメディア・アプリケーションの成長が予想される。参照を容易にするために、こうしたモバイル・テレビジョン及びマルチメディア・アプリケーションは、本明細書でまた特許請求の範囲で「ビデオ・アプリケーション（video application）」と呼ばれてもよい。こうしたアプリケーションは、通常の電話キーパッドと整合しないコマンド機能（たとえば、再生、停止、早送り、巻き戻し、及び音量コントロール）の簡単な組を含む。従来のキーパッドを有するモバイル・デバイス上でこうしたアプリケーションを使用することは、ユーザがキー機能割当てを記憶することを必要とする。したがって、グラフィカルに表示することによって、キー上の直感的な機能シンボルは、ユーザの娯楽経験を改善させ得る。
【００１４】
種々の実施形態は、種々のキーパッドと共に動作するアプリケーション・ソフトウェアの開発を簡略化し得る、システム・ソフトウェア内のキーパッド・プロトコル層を利用する。図３に示すように、キーパッド・プロトコル１００は、アプリケーション・ソフトウェア１８０と種々のキーパッド及びインターフェース５０、６０、１２２との間のインターフェース層として役立つ。実施形態では、キーパッド・プロトコルは、アプリケーション開発者が、予想し、標準的なソフトウェア命令で対処し得る標準的な形式で、キー・イベント通知をアプリケーション１８０に送出し得る。同様に、キーパッド・プロトコル１００は、アプリケーション・プログラム・インターフェース（application program interface）（ＡＰＩ）の標準的な組などの標準的な形式で、アプリケーション１８０からグラフィック及び構成コマンドを受信し得る。キーパッド・プロトコルのさらなる説明は、その全体の内容が参照により組み込まれる「Standardized Method and Systems for Providing Configurable Keypads」という名称の米国特許出願に提供されている。
【００１５】
キーパッド・プロトコルは、キーパッド内またはモバイル・デバイス自体の内のキーパッド・ドライバ１２６からキーパッド信号を受信し得る。同様に、キーパッド・プロトコル１００は、キーパッド構成コマンドをキーパッド・ドライバ１２６に送出し得る。新しいタイプのキーパッド及びユーザ・インターフェースの開発を簡略化するために、キーパッド・プロトコル１００は、キーパッド開発者が、対処されるべきハードウェア・インターフェースの標準的な組を有するために、キーパッド・プロトコル１００が認識することになる標準的なデータ構造及び割込みなどの、インターフェースの標準的な組を提供し得る。同様に、キーパッド・プロトコル１００は、キーパッド開発者が、開発者の製品が受信し処理できなければならないコマンド及び信号の標準的な組を有するように、キーパッド構成コマンドの標準的な組を提供し得る。したがって、キーパッド・プロトコル１００はまた、新しいユーザ・インターフェースデバイス及び技術の開発を容易にする。
【００１６】
ある実施形態では、キーパッド・プロトコル１００は、２つの基本コンポーネント、すなわち、キーパッド・プロトコル・ソフトウェア層１０２及びキーパッド・コントローラ層１０４を含んでもよい。キーパッド・プロトコル層１０２は、アプリケーション開発者が、アプリケーション・ソフトウェアを開発するときに利用し得るＡＰＩの標準的な組を含んでもよい。そのため、キーパッド・プロトコル層１０２は、高レベル・ソフトウェア用の標準的なソフトウェア・インターフェースとして役立ち得る。キーパッド・コントローラ層１０４は、キーパッド・ドライバ１１０と直接インターフェースするように調節されたソフトウェアを含んでもよい。そのため、キーパッド・コントローラ層１０４は、特定のキーパッド・ドライバ１１０から受信されたキー・イベント信号に基づいて押下された特定のキーを識別する能力を含んでもよい。キーパッド機能及びインターフェース信号の性質が、異なるタイプのキーパッドの間で劇的に変わる可能性があるため、キーパッド・コントローラ層１０４は、こうした複雑さに対処し、アプリケーション層１８０から複雑さを隠蔽するソフトウェア層を提供する。
【００１７】
一部のキーパッド・デバイス１２２は、キーパッド上で起こるキー押下イベントに追従する状態機械１２８を含んでもよい。キーパッド・コントローラ層１０４は、キーパッド・プロトコル１０２によって解釈され、アプリケーション１８０に伝えられなければならないキー・イベントを判定するために、周期的に状態機械１２８にアクセスし得る。
【００１８】
本明細書で述べる実施形態は、種々のモバイル・デバイスのうちの任意のモバイル・デバイス上に実装されてもよい。通常、こうしたモバイル・デバイスは、図４に示すコンポーネントを共通に有することになる。たとえば、モバイル・デバイス１０は、内部メモリ１２及びディスプレイ１３に結合されたプロセッサ１１を含んでもよい。さらに、モバイル・デバイス１０は、無線データリンクに接続される、電磁放射を送受信するアンテナ１４及び／またはプロセッサ１１に結合した携帯電話送受信機１５を有することになる。一部の実施態様では、送受信機１５ならびに携帯電話通信のために使用されるプロセッサ１１及びメモリ１２の所定部分は、無線データリンクを介したデータ・インターフェースを提供するため、集合的にエアインターフェースと呼ばれる。さらに、モバイル・デバイス１０は、無線キーパッド６０などの他のコンポーネントとの無線データリンクを確立するために、ＢｌｕｅＴｏｏｔｈ（登録商標）送受信機などの近・中距離無線データネットワーク送受信機１６を含んでもよい。モバイル・デバイス１０はまた、ＦｉｒｅＷｉｒｅコネクタ１７及び／またはＵＳＢコネクタ１８などの、データケーブルをプロセッサ１１に接続するコネクタプラグ、ならびに、キーボード５０、６０またはタッチ・スクリーン５４などの外部デバイスならびにＤＶＤ／ＣＤプレーヤ５８またはテレビジョン５９などの外部メディア・プレーヤとのローカルエリア無線データリンク６２を確立するためのプロセッサ１１に接続される赤外線データリンク（たとえば、ＩＲＤＡ）送受信機１９を含んでもよい。モバイル・デバイス１０はまた、通常、ユーザ入力を受信するために、キーパッド２０または小型キーボード及びメニュー選択ボタンまたはロッカー・スイッチ２１を含み、また、アプリケーション・プログラマブル・ボタン２２、２３、２４を含んでもよい。近・中距離無線データネットワーク送受信機１６及びＩＲＤＡ送受信機１９は、制限された通信範囲を有するため、参照を容易にするために、これらの通信送受信機は、本明細書で集合的にまたは別法として、ローカルエリア無線データリンク送受信機と呼ばれる。
【００１９】
図５は、ある実施形態を実装するハードウェア／ソフトウェア・アーキテクチャを示す。示すように、キーパッド・プロトコル１００は、種々のハードウェア・ドライバ１１０及びＢＲＥＷ（登録商標）層１７０などのランタイム環境ソフトウェアにリンクするシステム・ソフトウェアの一部として設けられる。従来の固定キーパッド２０、外部キーパッド５０、タッチ・スクリーン７０、ディスプレイ・キーキーパッド８０（以下でより詳細に述べられる）などのようなハードウェアユーザ・インターフェース１２０はそれぞれが、それ自体のそれぞれのハードウェア・ドライバ１１０を有してもよい。キー・イベント信号は、キーパッド１２０から関連するキーパッド・ハードウェア・ドライバ１１０に送出される。キーパッド・ドライバ１１０は、キー・イベント電気信号を、キーパッド・プロトコル１００によって理解され得る形式に翻訳する（translate）。先に説明したように、この形式は、ハードウェア・ドライバ開発者が、全てのキーパッド・デバイス１２０用のドライバを開発するときに使用され得る共通のインターフェース仕様を有するように標準化されてもよい。
【００２０】
キーパッド・プロトコル１００は、アプリケーション１８０によって解釈され得る、通知オブジェクトなどのキー押下イベント・メッセージを構成する。この構成されたキー押下イベント・メッセージ／通知オブジェクトは、ランタイム環境ソフトウェア層１７０を通してアプリケーション１８０に渡されてもよい。あるいは、キーパッド・プロトコル１００は、キー押下イベント・メッセージ／通知オブジェクトをアプリケーション１８０に直接通信してもよい。アプリケーション１８０はまた、キー押下イベントをユーザ・インターフェース層１９０に通信してもよい。あるいは、キーパッド・プロトコル１００は、ディスプレイ１３上での提示のために、キー値をユーザ・インターフェース層１９０に通信してもよい。
【００２１】
ディスプレイ・キー及びタッチ・スクリーンを含むキーパッドなどのより大きな能力のキーパッドを十分利用するために、アプリケーション１８０は、キーパッドを構成するためのキーパッド定義コマンド及びグラフィックを提供できる必要がある。こうした定義及びグラフィック情報は、直接にまたはランタイム環境層１７０経由でキーパッド・プロトコル１００に、アプリケーション１８０によって提供され得る。同様に、ユーザ・インターフェース・ソフトウェア１９０は、キーパッド定義及びグラフィック構成情報をキーパッド・プロトコル１００に提供してもよい。キーパッド・プロトコル１００は、その後、構成コマンドを関連ハードウェア・ドライバ１１０に提供することによって、選択されたキーパッド・デバイス２０、５０、７０、８０を構成するためにこうした定義及びグラフィック情報を使用する。グラフィックを表示し得るこれらのキーパッド・デバイスは、以下でより詳細に述べるように、そのハードウェア・ドライバ１１０からグラフィック・ファイル（または、グラフィック・ファイルに対するポインタ）を受信してもよい。
【００２２】
図５はまた、キーパッド・プロトコル１００の別の利点を示す。モバイル・デバイス１０は、任意の数の異なるキーパッド及び他のユーザ・インターフェースデバイスに接続されてもよい。アプリケーション１８０は、１つのキーパッドまたはユーザ・インターフェースデバイスを使用するだけであってもよい。アプリケーション層１８０とハードウェア・ドライバ１１０との間にキーパッド・プロトコル１００を含むことによって、アプリケーション開発者は、アプリケーション・ソフトウェアが、利用可能なキーパッド１２０を識別し、使用するための特定のキーパッドを選択する単純な方法を提供され得る。そのため、モバイル・デバイス１０はいくつかのキーパッド・インターフェースを含む可能性があるが、アプリケーション１８０は、キーパッド・インターフェース・コマンド及びＡＰＩの共通の組を使用して、単一キーパッドを扱う必要があるだけである。同様に、アプリケーション１８０は、利用可能ないくつかのキーパッドから最適なキーパッドを選択してもよい。キーパッド・プロトコル１００は、この選択及び選択されたキーパッドとの相互作用を簡略化する。
【００２３】
アプリケーション１８０と複数のキーパッド１２０との間のインターフェースを簡略化することに加えて、キーパッド・プロトコル１００はまた、予測テキスト、スペルチェック、及び言語翻訳アプリケーションなどのキー入力解釈に関するアプリケーション・ソフトウェアと相互作用してもよい。このオプションは、図６に示すハードウェア／ソフトウェア・アーキテクチャ図に示される。キーパッド・プロトコル１００が、各キー押下イベントに関連するキー値を決定するため、この情報は、キー入力アプリケーション１０６、１０７、１０８に送られ得る。図１７及び１８を参照して以下でより詳細に述べるように、予測テキスト・エンジン１０６などのキー入力アプリケーションがアクティブ化されると、キーパッド・プロトコル１００は、各キー値を予測テキスト・エンジン１０６に送出し、その後、予測テキスト・エンジン１０６から受信される情報をアプリケーション１８０に転送する。キーパッド・プロトコル１００内にキー入力アプリケーションインターフェースを含むことによって、全てのキー入力関連機能が、システム・ソフトウェアによって扱われ得る。こうして、キー入力アプリケーションによって生成された情報を、アプリケーション層１８０に渡すことができ、それにより、アプリケーション・ソフトウェアを簡略化する。
【００２４】
図６はまた、ランタイム環境層１７０が、モバイル・デバイスで使用するために利用可能な、知られているオペレーティング・システムの任意の１つまたは複数であってよいことを示す。たとえば、ＢＲＥＷ（登録商標）ランタイム環境に加えて、Ｗｉｎｄｏｗｓ（登録商標）モバイル及びＬｉｎｕｘ（登録商標）オペレーティング・システムが、キーパッド・プロトコル１００にインターフェースしてもよい。
【００２５】
種々の実施形態では、キーパッド・プロトコル１００は、図７に示すように、複数のキーパッド２０、５０、７０のうちの１つのキーパッドにインターフェースしてもよい複数のアプリケーション１８１、１８２、１８３用の共通のインターフェースとして役立ち得る。任意の所与の時間に、キーパッド・プロトコル１００は、アプリケーション・スリー１８３などの、処理の制御下のアプリケーションにインターフェースしてもよく、キーパッド・ワン２０などの特定のキーパッドがそのアプリケーションによって選択される。処理が、アプリケーション・ワン１８１などの別のアプリケーションにシフトする場合、同じキーパッド・プロトコル１００が、キーパッド・スリー７０などの、そのアプリケーションによって選択されたキーパッドに対するインターフェースとして役立つ。２つ以上のアプリケーション１８１、１８２、１８３が、キーパッド・ワン２０などの特定のキーパッドを選択し構成した場合、キーパッド・プロトコル１００は、アプリケーション１８１、１８２、１８３のそれぞれに関連するキーパッド構成及び定義に追従し得る。こうして、各アプリケーション１８１、１８２、１８３は、同じキーパッドを異なる方法で構成してもよく、一方、キーパッド・プロトコル１００は、アプリケーション間の処理シフトとして再構成される必要がない共通のインターフェースとして役立つ。
【００２６】
アプリケーション１８０は、初めて始動されると、特定のキーパッドを選択し、選択されたキーパッドを、アプリケーション機能と一貫性があるオペレーション用に構成するために、キーパッド・プロトコル１００と相互作用してもよい。このプロセスについての例示的なステップが図８に示される。キーパッド・プロトコル１００は、キーパッド１２０またはキーパッド・ドライバ１１０に問い合わせることによって、モバイル・デバイス１０に結合されるキーパッド１２０を周期的に判定してもよい（ステップ２００）。アクティブ化されるか、または、モバイル・デバイス１０に取り付けられるキーパッドは、その利用可能性を示す信号で応答してもよい。キーパッド・プロトコル１００は、こうした信号を受信し、利用可能な各キーパッドにＩＤ（たとえば、シーケンシャルＩＤ番号）を割当ててもよい（ステップ２００）。あるいは、キーパッド・プロトコル１００は、キーパッドＩＤを割当て、その割当てられたＩＤを各キーパッド・ドライバに知らせてもよい。キーパッド・プロトコル１００はまた、キーパッド能力に関する情報を要求し受信してもよい（ステップ２０４）。これは、それぞれのキーパッド・ドライバ１１０によって提供される標準的な情報信号の形態であってよい。あるいは、キーパッド１２０またはそのキーパッド・ドライバ１１０は、キーパッドのタイプの標準的な識別情報を提供し、キーパッド・プロトコル１００が、メモリ内に維持される能力テーブルからその能力を判定することを可能にしてもよい。さらに、キーパッド・プロトコル１００は、キーパッド・ドライバまたはキーパッド自体によって提供される可能性がある他のキーパッド情報を受信してもよい（ステップ２０６）。キーパッド・プロトコルはまた、ある構成情報をキーパッド１２０またはそのキーパッド・ドライバ１１０に提供してもよい（ステップ２０８）。この時点で、キーパッド・プロトコル１００は、利用可能なキーパッド及びその能力をアプリケーション１８０に知らせるのに必要な情報を有する。
【００２７】
アプリケーション１８０は、ロードされるときか、そうでなければ、利用可能なキーパッド１２０及びその能力を判定する必要があるとき、ＡＰＩを発行することなどによってキーパッド・プロトコル１００からこの情報を求めてもよい（ステップ２１０）。例示のために、この機能を実施する「Ｑｕｅｒｙ＿Ｋｅｙｐａｄ」という名称の例示的なＡＰＩが図に示される．このＡＰＩは、使用のために利用可能なキーパッドならびにその種々の能力（たとえば、構成可能なキーパッドまたはタッチ・スクリーン）をアプリケーション１８０に知らせるために、キーパッド・プロトコル１００に質問するだけであってよい。こうしたＱｕｅｒｙ＿Ｋｅｙｐａｄ  ＡＰＩを受信すると、キーパッド・プロトコル１００は、利用可能な（すなわち、アクティブ化され、かつ、接続された）キーパッド及びそれらの能力をアプリケーションに知らせてもよい（ステップ２１２）。あるいは、Ｑｕｅｒｙ＿Ｋｅｙｐａｄ  ＡＰＩの受信、ステップ２１０は、取り付けられるキーパッドを決定するプロセス、上述したステップ２００〜２０８をキーパッド・プロトコル１００が実行するように促してもよい。利用可能なキーパッドをアプリケーションに知らせる形式は、アプリケーション開発者のために共通のインターフェースを提供するために標準化されてもよい。情報の形式は、図１１を参照して以下で述べるデータ構造などの任意の適したデータ構造であってよい。
【００２８】
キーパッド可用性及び構成情報を受信すると、アプリケーションは、特定のキーパッドを選択し、構成情報をキーパッド・プロトコルに提供してもよい（ステップ２２０）。この選択及び構成ステップは、アプリケーション開発者のために共通のアプリケーショインターフェースを提供するＡＰＩの形態であってよい。例示のために、この機能を実施する「Ｋｅｙ＿Ｃｏｎｇｆｉｇ」及び「Ｋｅｙｐａｄ＿Ｃｏｎｆｉｇ」という名称の例示的なＡＰＩが図に示される。こうしたＡＰＩは、選択されたキーパッドのインデックス数を指定し、キー構成情報をキーごとに提供してもよい。こうした構成情報は、アプリケーションが特定のキー・イベントのために使用する識別子、特定のキーまたはキー・イベントに関連するストリング、及びキー機能をグラフィック方式で表示するためにグラフィックキーパッドによって使用されてもよい情報を含んでもよい。こうしたキーごとの構成情報の形式及びコンテンツは、図１２を参照して以下で説明される。
【００２９】
キーパッド・プロトコル１００は、アプリケーション１８０からキーパッド選択を受信し（ステップ２２２）、選択されたキーパッドに関連する任意のグラフィック・ファイルまたは画像を受信する（ステップ２２４）。キーパッド・プロトコル１００は、選択されたキーパッドに関連する翻訳テーブルを構成してもよい（ステップ２２６）。こうした翻訳テーブルは、各キー押下イベントに応答してアプリケーション１８０に提供する適切なコマンド・ストリングまたはアプリケーションキー識別子を決定するためにキーパッド・プロトコル１００によって使用され得る。キーパッド・プロトコル１００はまた、特定のキーに関連する任意のグラフィックを提供するために、関連するキーパッド・ドライバ１１０と通信してもよい（ステップ２２８）。アプリケーション１８０によって定義されるキー機能に関連する特定の画像を表示するために、キーパッド・ドライバ１１０が使用し得るこうしたグラフィックは、キーごとに提供されてもよい。さらに、キーパッド・プロトコル１００は、さらに、必要である場合、アプリケーションの機能に一致するキーパッドを構成してもよい（ステップ２３０）。キーパッド構成オペレーションが終了すると、キーパッド・プロトコルは、キーパッドがオペレーションの準備ができていることをアプリケーション１８０に知らせてもよい（回答２３２）。
【００３０】
図８に示すプロセス・ステップは、図９に示すように、モバイル・デバイス１０内の異なるハードウェア層及びソフトウェア層の間で伝えられるいくつかの電子メッセージで実装されてもよい。どのキーパッド１２０が利用可能であるかを判定するために、キーパッド・プロトコル１００は、どのキーパッド１２０が利用可能であるかに関する返答を要求するクエリを、アクティブなキーパッド・ドライバ１１０に発行してもよい（メッセージ２００）。このメッセージは、システム・ソフトウェアの主ループによってチェックされる、メモリにセットされたプロセスコール、割込み、またはフラグの形態であってよい。それに応答して、キーパッド・ドライバは、キーパッドが接続されかつアクティブであることを確認するために、その関連するキーパッドにピンを行って（ping）もよい（メッセージ２０１）。接続されている場合、キーパッド・ドライバ１１０は、キーパッドが接続されかつアクティブ化されていることを示す信号を返送してもよい（メッセージ２０２）。キーパッド・ドライバ１１０は、次に、キーパッドの識別子を含んでもよい、キーパッドがアクティブでありかつ接続されていることを示すメッセージをキーパッド・プロトコルに送出してもよい（メッセージ２０３）。キーパッド・ドライバ１１０はまた、その能力、構成、またはキーパッド開発者がモバイル・デバイスシステム・ソフトウェアに通信したいと思う可能性がある他の情報などの接続されたキーパッドに関する情報を提供してもよい（メッセージ２０４）。
【００３１】
アクティブ化されると、または、オペレーション中に、アプリケーション１８０は、Ｋｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩを発行することなどによって、利用可能でありかつアクティブ化されているキーパッドのリストを要求してもよい（メッセージ２１０ａ）。アプリケーションは、ランタイム環境と直接通信してもよく、ランタイム環境は、Ｋｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩをキーパッド・プロトコルに回送する（メッセージ２１０ｂ）。一部の実施態様では、アプリケーションは、ランタイム環境層１７０を巻き込むことなく、Ｋｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩをキーパッド・プロトコル１００に直接送信してもよい。Ｋｅｙｐａｄ＿Ｑｕｅｒｙを受信することに応答して、キーパッド・プロトコルは、利用可能なキーパッド及びその能力を送信する（メッセージ２１２ａ）。これは、ランタイム環境層１７０に送信されてもよく、ランタイム環境層１７０は、その情報をアプリケーション１８０に送信する（メッセージ２１２ｂ）。一部の実施態様では、キーパッド・プロトコル１００は、ランタイム環境層１７０をバイパスして、アプリケーション１８０に直接送信してもよい。図８を参照して先に説明したように、Ｋｅｙｐａｄ＿Ｑｕｅｒｙの受信は、接続されたキーパッドに問い合わせるようにキーパッド・プロトコル１００を促してもよい（メッセージ２００）。
【００３２】
キーパッド・プロトコル１００から受信された情報を使用して、アプリケーション１８０は、使用するために特定のキーパッドを選択してもよい（メッセージ２２２ａ）。他のメッセージの場合と同様に、アプリケーション１８０は、ランタイム環境層１７０にキーパッド選択を送出してもよく（メッセージ２２２ａ）、ランタイム環境層１７０は、その選択をキーパッド・プロトコル１００に回送する（メッセージ２２２ｂ）。一部の実施態様では、アプリケーション１８０は、ランタイム環境層１７０をバイパスして、キーパッド選択を直接キーパッド・プロトコル１００に送出してよい。アプリケーション１８０はまた、キーパッド構成情報及びグラフィック・ファイルをキーパッド・プロトコル１００に送出してもよい（メッセージ２２０、２２４）。他のメッセージの場合と同様に、この情報は、示すように、ランタイム環境層１７０を経由してまたは直接、キーパッド・プロトコル１００に送出されてもよい。アプリケーション１８０はまた、アプリケーション及び選択されたキーパッドと一貫性がある表示を提供するために、グラフィック・ファイルをディスプレイ層に提供してもよい（メッセージ２３４）。図２４〜３９に示す実施例を参照して以下でより完全に説明するように、アプリケーション１８０に関連する特定のディスプレイは、選択されたキーパッドに依存する可能性がある。
【００３３】
アプリケーション１８０によって提供されたキーパッド構成及びグラフィック・ファイルを使用して、キーパッド・プロトコル１００は、翻訳テーブルを構成し、プロセス２２６、キーパッドを構成してもよい（メッセージ２３０）。さらに、キーパッド・プロトコル１００は、いくつかのキーパッド・ディスプレイ・ファイルをディスプレイに提供してもよい（メッセージ２２８）。
【００３４】
図８及び９に示す処理はまた、新しいキーパッドがモバイル・デバイス１０に接続されるときはいつでも始動されてもよい。たとえば、実行されている、したがって、選択されたキーパッドを既に構成したアプリケーション１８０は、新しいキーパッドがモバイル・デバイスに接続されたことを、システム・ソフトウェアによって通知されてもよい。この通知は、システム・ソフトウェアによってアプリケーション１８０に通信される割込み、または、アプリケーションが時折チェックする可能性がある、メモリにセットされたシステム・フラグの形態であってよい。アプリケーション１８０は、新しいキーパッドが接続されたことを学ぶと、新しく接続されたキーパッドの能力に関する情報を受信するために、再び、Ｋｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩを呼出してもよい（ステップ２１０）。アプリケーションは、その後、図８を参照して先に述べたように、新しく接続されたキーパッドを選択し構成してもよい（ステップ２２０）。こうして、キーパッドは、アプリケーション１８０の動作中の任意の時点で、アクティブ化されるかまたはモバイル・デバイス１０に結合されてもよい。たとえば、アプリケーション１８０は、特定のキーパッドがアクティブ化されるかまたはモバイル・デバイスに接続される前に始動されてもよい。アクティブ化されると、アプリケーションは、目下のところ利用可能な最良のキーパッドを選択し構成する。その後、特定のアプリケーションにより適したキーパッドをユーザがアクティブ化するかまたは接続すると、アプリケーション１８０は、新しく接続されたキーパッドを選択し、そのキーパッドから受信されるユーザ入力を使用してオペレーションを継続し得る。こうして、キーパッド・プロトコル１００は、柔軟性がある方法で、キーパッドの接続及び構成を容易にする。
【００３５】
アプリケーションはまた、選択を行うときに有用である可能性がある特定のキーパッドに関するより多くの情報を取得するために、キーパッド・プロトコル１００にインターフェースしてもよい。たとえば、図１０は、アプリケーション１８０が特定のキーパッドの能力に関する情報をそれによって取得する可能性があるプロセスを示す。アプリケーション１８０は、ＡＰＩ２１０（たとえば、ＩＤｙｎＫｅｙＰａｄ＿ＧｅｔＣａｐｓ）などによってキーパッド・インデックスを識別し、その能力を要求することによって、特定のキーパッドの能力についての要求を発行してもよい。こうしたＡＰＩを受信することに応答して、キーパッド・プロトコル１００は、キーパッドＩＤに関連するキーパッド・ドライバ１１０から能力を要求してもよい（ステップ２００）。キーパッド・プロトコル１００は、その後、受信された能力情報をアプリケーションに提供してもよい（ステップ２２０）。示す実施例では、アプリケーションは、特定のキーパッド能力を求めており、選択されたキーパッドが、タッチ・スクリーン対応インターフェースであることを知らされる。
【００３６】
利用可能なキーパッド及びその能力に関する情報は、図１１に示すように、標準的なデータ形式でキーパッド・プロトコル１００によってアプリケーションに提供されてもよい。特定のキーパッドの識別及び能力は、インデックス３０２、キーパッド能力の要約３０４、キーパッドで利用可能なキーの識別３０６、及び表示能力を有する任意のキーの識別を含むデータ・レコードパケット３１０、３１２、３１４で送信されてもよい。別個のデータ・レコードパケットは、データ・レコード３１０、３１２、３１４などの利用可能な各キーパッドについて送信されてもよい。あるいは、キーパッド・プロトコル１００は、利用可能な各キーパッドについてのデータ・レコード３１０、３１２、３１４を含むキーパッド能力データ・テーブル３００を送信してもよく、各データ・レコードは、関連するキーパッドの識別及び能力を提供するデータ・フィールド３０２〜３０８を含む。示すデータ構造は、例として提供され、キーパッド・プロトコルによってアプリケーションに提供される可能性があるデータ形式または情報をいずれの点でも制限するものではない。
【００３７】
アプリケーション１８０に提供されるキーパッド情報は、標準化されたキーセット識別子の形態であってよく、また、特定のタイプのキーパッド及びその能力を通信するために、標準化されたキーパッド定義を使用してもよい。あるいは、キーパッド能力データ・テーブル３００は、利用可能である個々のキーならびにその個々の能力及び構成を挙げてもよい。キーパッド能力データ・テーブル３００に示す入力は、例示のために提供されるにすぎず、典型的な実施態様では、アプリケーション１８０によって認識され理解され得るバイナリコードの形態でデータを格納する可能性が高い。
【００３８】
アプリケーション１８０は、キー押下イベントを解釈し、それらのイベントを、アプリケーション１８０が処理し得る信号またはデータ構造に翻訳するときに使用するための種々のデータ及び構成パラメータをキーパッド・プロトコル１００に提供してもよい。キーパッド・プロトコル１００によって使用されるためのこうした情報を格納するデータ構造の実施例が図１２に示される。こうしたデータ構造３２０は、種々のキーパッド上の各キーに関連する任意の数のデータ・レコード３３４〜３４２からなってもよい。参照を容易にするために、第１のデータ・フィールド３２２は、キーパッド・プロトコル１００が個々のキーを識別するために使用し得るキーＩＤを含んでもよい。このキーＩＤは、ドライバとキーパッド・プロトコル１００が、同じＩＤを使用してキー押下イベントに関して通信するように、特定のキーパッド１２０に関連するキーパッド・ドライバ１１０と通信してもよい。第２のデータ・フィールド３２４は、キーパッド・プロトコル１００が、接続された種々のキーパッドの間でキー・イベントを区別するために使用し得るキーパッドＩＤを含んでもよい。キーパッドＩＤデータ・フィールド３２４は、接続されたキーパッドの単純なシリアル・リスティング（たとえば、０、１、２など）を含んでもよい。あるいは、キーパッドＩＤデータ・フィールド３２４は、キーパッド供給者または相手先ブランド製造（original equipment manufacturer）（ＯＥＭ）によって、キーパッドモデルまたは個々のキーパッドに割当てられたグローバルに一意のキーパッドＩＤを格納してもよい。たとえば、キーパッドＩＤは、ＯＥＭによってキーパッドに割当てられたＭＡＣ  ＩＤであり得る。それでも、キーパッドＩＤとキーＩＤの組合せは、各キー押下イベントを一意に識別するために使用され得る。データ構造３２０はまた、データストリング３２６及びアプリケーションキーＩＤ３２８などの、特定のキーパッドを使用してアプリケーションによって提供される情報を含んでもよい。こうした情報は、特定のキー押下イベントに応答してアプリケーション１８０が受信する必要がある特定のデータストリングまたはキーＩＤをキーパッド・プロトコル１００に知らせるために、アプリケーション１８０によって提供されてもよい。そのため、アプリケーション１８０は、プロトコルが、特定のキー押下イベントをアプリケーション１８０に適切に知らせ得るように、アプリケーション１８０が使用する任意の組のキーＩＤをその機能において定義し、それらの任意のキーＩＤをキーパッド・プロトコル１００に提供してもよい。こうして、キーパッド・プロトコル１００が、必要な翻訳を提供する状態で、アプリケーション・ソフトウェアは、キーパッド・レイアウト及び特定のキーがキーパッドごとに変わっても、標準的なプロセスによって機能するように書かれ得る。
【００３９】
グラフィック・ディスプレイ能力を含むキーパッドに対処するために、キーパッド翻訳データ構造３２０はまた、各キーに関連する位置（データ・フィールド３３０）及びグラフィック（データ・フィールド３３２）に関する構成情報を格納するデータ・フィールドを含んでもよい。キーパッドのタイプに応じて、アプリケーション１８０は、特定のキーを提示するためのロケーションを任意のインターフェース・ディスプレイ上で指定できてもよく、こうした情報はデータ・フィールド３３０に格納される。そのため、タッチ・スクリーン・ディスプレイでは、アプリケーション１８０は、特定のキーを配置するためにＸ−Ｙ座標を指定してもよい。同様に、アプリケーション１８０は、アプリケーションによって割当てられたキー機能を表示するために、キーパッドによって使用されるグラフィック・ファイルを提供してもよい。キーパッド翻訳データ構造３２０内にグラフィックを格納するのではなく、データ・フィールドは、特定のキーに関連するグラフィック・ファイルを格納するメモリロケーションに対するポインタ（すなわち、メモリアドレス）を含んでもよい。
【００４０】
キーパッド・プロトコル１００を使用してキーパッドを構成するために、アプリケーション１８０は、キーパッド翻訳データ構造３２０内に格納される情報の一部を、一連のデータ・レコードの形態で提供する必要があるだけである。こうしたデータ・レコードは、キーパッド・プロトコルが認識し得る標準的なキー識別子にリンクされてもよい。たとえば、構成されているキーパッドが標準的な１２キー数字キーパッドである場合、アプリケーション１８０は、キーをその数値によって識別してもよい。その識別子を使用して、アプリケーション１８０は、ロケーション及びグラフィック・ファイル・ポインタ値などの他の構成情報と共に、キー押下イベントをアプリケーションに知らせるためにキーパッド・プロトコル１００が使用し得るアプリケーション識別子及び／またはデータストリングを提供し得る。キーパッド・プロトコル１００は、こうしたデータ・レコードを受信し、それらを図１２に示すようなデータ・テーブルに格納し得る。
【００４１】
キーパッド翻訳及び構成データが、種々の異なるデータ構造でメモリに格納されてもよいことを当業者は理解するであろう。図１２に示すデータ構造は、例示のためだけであり、本開示または特許請求の範囲をいずれの点でも制限するものではない。
【００４２】
キー押下イベントの処理フローが図１３に示される。キーが押下されると、イベントが、キーパッド・ハードウェア１２０によって検出され、キーパッド・ハードウェア１２０は、キーパッド・ドライバ・ソフトウェア１１０に信号送信する。キーパッド・ドライバ１１０は、次に、キー押下イベントを、キーパッド・プロトコル１００のキーパッド・コントローラ１０４部分に知らせる。これは、キーパッド・コントローラ１０４に送出される信号などによって直接的に、または、システム・ソフトウェアが周期的に認識し、キー押下イベント情報がキーパッド・ドライバによって提供されることを要求することになるコールバックフラグまたは割込みをセットすることなどによって間接的に達成されてもよい。
【００４３】
キーが特定のキーパッド上で押下されると、キーパッド１２０及びそのキーパッド・ドライバ１１０は、割込みを提供すること、あるいは、システム・フラグをセットするために使用される特定のレジスタまたはメモリの部分にデータを格納することなどによって、種々の方法でイベントをキーパッド・プロトコルに知らせ得る。たとえば、図１４に示すように、キーが押下されたこと及び押下されたキーに関連する識別子を示すために、単純なデータ構造３５０がメモリに格納されてもよい。たとえば、こうしたデータ構造は、キー押下イベントがメモリに格納されているかどうかを判定するために、キーパッド・プロトコルが周期的にチェックできる１つまたは複数のフラグ３５２、３５４を含んでもよい。フラグ３５２などのフラグのうちの１つのフラグがセットされる（すなわち、メモリフィールド３５２に「１」が格納される）場合、これは、キー押下イベントが起こったこと、及び、対応するキーＩＤが、データ・フィールド３５６などの特定のメモリ・フィールドに格納されていることを示してもよい。複数のキーパッドの間でキー押下イベントを一意に識別するために、キーＩＤは、キーパッドＩＤまたはインデックス、データ・フィールド３５８に隣接して、データ・フィールド３５６に格納されてもよい。さらなるフラグが、キー押下イベントに関する他の情報を示すためにセットされてもよい。たとえば、フラグ（たとえばフラグ３５４）は、キー押下イベントが、ｓｈｉｆｔ、ｃｏｎｔｒｏｌ、またはａｌｔキー押下などの別のキーの同時押下をいつ含むか示すためにセットされてもよい。別の実施例として、フラグ（たとえばフラグ３５４）は、キー押下イベントがキーリリースによって先行されなかったことを示す（キーが、延長された期間の間、押さえつけられていることを示す）ためにセットされてもよい。任意の数のさらなるフラグ及びデータ・フィールドが、キーパッド・プロトコル１００によって解釈され得るキー押下イベントに関する情報を通信するために、レジスタまたはデータ構造に含まれてもよい。
【００４４】
キーパッド・プロトコル１００は、キー押下イベントを知らされると、キー押下イベントを、アプリケーションが解釈され得る情報に翻訳し得る。キー押下イベントを受信するときにキーパッド・プロトコル１００によって実装されてもよい方法ステップの実施例が図１５に示される。先に説明したように、キーが押下されると、イベントは、キーパッド・ハードウェアによって検知され、関連するキーパッド・ドライバに信号送信される（ステップ２４０）。キーパッド・ドライバは、キー押下イベントを、信号、割込み、格納データ、または他の形態の情報に翻訳し、キーパッド・プロトコルに提供する（ステップ２４２）。キーパッド・ドライバ１１０からキー押下イベント信号を受信すると、キーパッド・プロトコル１００は、メモリから、または、キーパッド・ドライバによって提供された信号からキーパッドＩＤ及びキーＩＤを取り出してもよい（ステップ２４４）。キーＩＤ及びキーパッドＩＤを使用して、キーパッド・プロトコル１００は、キー翻訳テーブル３２０内で対応するデータ・レコードを位置特定し得る（ステップ２４６）。対応するデータ・レコードに格納されたデータを使用して、キーパッド・プロトコル１００は、特定のキー押下イベントに相当する、アプリケーションＩＤ及び／またはアプリケーション１８０によって指定されるコマンド・ストリングを取り出し得る（ステップ２４８）。その情報を使用して、キーパッド・プロトコルは、アプリケーション１８０に通信するための通知オブジェクトを作成し得る（ステップ２５０）。最後に、キーパッド・プロトコルは、キー押下通知オブジェクトをアプリケーション１８０に送出する（ステップ２５２）。通知オブジェクトを送出するとき、キーパッド・プロトコル１００は、オブジェクトを、アプリケーション１８０に直接、または、オペレーティング・システムまたはランタイム環境１７０を経由して送出してもよい。
【００４５】
キー押下イベントを受信し処理するプロセスは、図１６に示すように、モバイル・デバイス１０内で異なるハードウェア層とソフトウェア層との間の一連のメッセージで達成されてもよい。キーが押下されると、キーパッドは、キー押下イベント信号をキーパッド・ドライバに送出することになる（メッセージ２４０）。次に、キーパッド・ドライバは、キーパッドＩＤ及びキーＩＤをキーパッド・プロトコルに送出する（メッセージ２４２）。先に説明したように、このメッセージは、キーパッド・プロトコルが、周期的にアクセスするか、あるいは、セットされたフラグを検出したときまたは割込みを受信したときアクセスしてもよいメモリロケーションにセーブされている情報の形態であってよい。この情報を使用して、キーパッド・プロトコルは、キー押下通知オブジェクトを生成し、処理ステップ２４６〜２５０、次に、メッセージ２５３でアプリケーション１８０に中継するために、キー値をランタイム環境に送信する（メッセージ２５２）。あるいは、キーパッド・プロトコルは、キー値をアプリケーション１８０に直接通信する。さらに、キーパッド・プロトコル１００は、ディスプレイがキー押下イベントを反映し得る（たとえば、ディスプレイ上に押下されたキーの値を提示する）ようにキー値またはグラフィックをディスプレイに送出してもよい（ステップ２５４）。
【００４６】
その後のキー押下イベントは、メッセージ２４０ａ〜２５４ａに示すように、同じ方法で扱われることになる。そのため、各キー押下イベントによって、キーパッド・プロトコル１００は、キーパッド・ドライバ１１０からメッセージを受信し、翻訳されたキー値情報をアプリケーション１８０及びディスプレイに提供する。
【００４７】
状況によっては、キー押下イベントは、後続のキー押下についてキー値を再定義するようにアプリケーション１８０に促してもよい。たとえば、アプリケーション１８０がＭＰ３プレーヤなどのメディア・プレーヤであり、第１のキー押下イベントがアプリケーションによってオーディオ再生の開始として解釈される（すなわち、第１のキー押下が、「再生（play）」機能を有した）場合、後続の押下が、メディア再生を一時停止すること、または、停止することとして解釈されることになるように、アプリケーションは、同じキーの機能を変更してもよい（すなわち、第２のキー押下が「停止（stop）」機能を有することになる）。図１６は、アプリケーション１８０が、キー再定義コマンド（すなわち、新しい構成情報）をキーパッド・プロトコル１００に送出してもよいことを例示することによってこの可能性を示す（メッセージ２５６）。このメッセージは、同様のキー再定義メッセージ２５７によって、ランタイム環境層１７０によってキーパッド・ドライバ１１０に中継されてもよい。キー再定義メッセージを受信すると、キーパッド・プロトコル１００は、変更されたキー構成情報を反映するために、キー翻訳テーブル３２０を再構成し得る。そして、メッセージ２４０ｂ及び２４２ｂでキーパッド・プロトコルに通信される後続のキー押下イベントは、改定されたキー翻訳テーブル３２０に従ってキーパッド・プロトコル１００によって解釈されることになる、処理ステップ２４６〜２５０ｂ。再定義されたキー値は、メッセージ２５２ｂ及び２５３ｂでアプリケーションに送信されることになる。同様に、再定義されたキー値は、ディスプレイに送出されてもよい（メッセージ２５４ｂ）。
【００４８】
上述したように、キーパッド・プロトコル１００は、アプリケーション開発を簡略化するために、予測テキスト入力などのキー入力アプリケーションと相互作用してもよい。たとえば、種々の異なる予測テキスト・アプリケーションが、モバイル・デバイス上での使用に利用可能である。予測テキスト・アプリケーションとインターフェースする役割をキーパッド・プロトコル１００に割当てることによって、アプリケーション・ソフトウェアの開発が簡略化され得る。アプリケーション開発者は、自分のアプリケーションを、種々の異なる予測テキスト・アプリケーションにインターフェースする必要がない。同様に、予測テキスト・アプリケーション開発者は、標準的なインターフェースまたはＡＰＩコマンドを使用してキーパッド・プロトコルにインターフェースする必要があるだけである。
【００４９】
図１７は、キーパッド・プロトコル１００が予測テキスト・アプリケーション１０６にインターフェースするときに実装され得る例示的なステップを示す。先に説明したように、キーが押下されると、キーパッド・ハードウェアは、イベントをキーパッド・ドライバに信号送信し（ステップ２４０）、キー押下イベント通知をキーパッド・プロトコル１００に送出するようにキーパッド・ドライバ１１０に促す（ステップ２４２）。次に、キーパッド・プロトコル１００は、キーパッドＩＤ及びキーＩＤを取り出し（ステップ２４４）、翻訳テーブル内の適切なデータ・レコードを位置特定するためにこの情報を使用する（ステップ２４６）。キーパッド・プロトコルは、その後、適切なキー値を予測テキスト・アプリケーションに送出する（ステップ２６０）。予測テキスト・アプリケーションは、タイプされるワードを予測するためにキー値を使用し、予測を、予測が受信されるキーパッド・プロトコル１００に送出する（ステップ２６２）。キーパッド・プロトコル１００は、その後、検討及び受容のためにユーザに提示され得るように、予測テキストをディスプレイに送出してもよい（ステップ２６４）。次のキー押下イベントによって、これらのステップ２４２〜２６４は、次のレター（letter）の間繰り返される。同様に、予測されたワードをユーザが受容しなかったと仮定すると、次のキー押下イベントは、同じステップ２４２〜２６４を繰り返させ、このプロセスは、予測されたワードをユーザが選択するまで継続する。たとえば、ステップ２４０〜２４６にて処理された次のキー押下イベントが、予測されたテキストをユーザが受容したことを示すスペースまたは他のキーが押下されたと判定する場合、キーパッド・プロトコルは、次に、マルチキー通知オブジェクトを作成し（ステップ２６６）、このオブジェクトをアプリケーションに送出してもよい（ステップ２６８）。そのため、図１７に示すステップにて、４つのキー押下イベントがキーパッド・プロトコル１００によって処理されている間に、１つのマルチキー通知オブジェクトだけが、アプリケーション１８０に送信される。こうして、アプリケーション１８０は、少数の割込みによって短時間でキーパッド・プロトコル１００からより多くの情報を受信し、したがって、アプリケーションが処理を能率的にすることを可能にする。
【００５０】
図１７に示す処理ステップは、図１８に示すように、モバイル・デバイス１０において、異なるハードウェア層とソフトウェア層の間で送信される種々のメッセージで実装されてもよい。上述したように、キーパッドによって検出される第１のキー押下イベントは、キー・イベント・メッセージ２４０ａでキーパッド・ドライバ１１０に通信されることになり、キーパッドＩＤ及びキーＩＤをキーパッド・プロトコル１００に知らせるようにキーパッド・ドライバ１１０に促す（メッセージ２４２ａ）。キーパッド・プロトコル１００は、処理ステップ２４６ｂにて、関連するキー値を決定し、メッセージ２６０ａでその情報をキー入力アプリケーション１０６に提供する。キー入力アプリケーション１０６は、タイプされるワードを予測するために、キー値を処理し、プロセス２６１ａ、その予測を提供する信号をキーパッド・プロトコル１００に送出する（メッセージ２６２ａ）。キーパッド・プロトコル１００は、予測値をディスプレイに送出する（メッセージ２６４ａ）。このプロセスは、メッセージ２４０ｂ〜２６４ｂを介して同様の方法で次のキー・イベントによって繰り返される。同様に、第３のキー押下イベントは、メッセージ２４０ｃ〜２６４ｃを介してプロセスを再び繰り返させる。示す実施例では、メッセージ２４０ｄ及び２４２ｄでキーパッド・プロトコル１００に通信される第４のキー押下イベントは、ディスプレイに通信されたメッセージ２６４ｃの結果として表示された、予測されたテキストをユーザが受容したことを意味すると、処理ステップ２４６ｄにてキーパッド・プロトコル１００によって解釈される。この時点で、キーパッド・プロトコル１００は、マルチキー通知オブジェクトを生成し、プロセス２６６、マルチキー通知オブジェクトは、マルチキーストリング値メッセージまたは通知オブジェクトでアプリケーション１８０に通信される（メッセージ２６８）。同様に、キーパッド・プロトコル１００は、受容されたテキストがユーザに対して表示され得るように、マルチキー・ストリング値メッセージをディスプレイに送出してもよい（メッセージ２７０）。
【００５１】
キーパッド・プロトコルの実施形態の利益は、将来のキーパッド技術が考慮されるときに特に明らかである。たとえば、開発されつつある（on the horizon）キーパッド技術が図１９及び２０に示されており、各キーには、キーに動的にラベル付けすることを可能にする小型ディスプレイが関連付けられている。こうしたディスプレイ・キーキーパッド４００は、フレームワーク４０４内に配置されかつ支持構造４０６によって支持された透明キー４０２を含んでもよい。各透明キー４０２の下のディスプレイ４０８は、キー４０２を通して視認可能なフリーフォーム（free-form）画像を提示するために、モバイル・デバイスプロセッサ１１によって制御され得る。ボタン構造４１０は、ディスプレイ４０８用の支持体ならびにディスプレイをプロセッサ１１に結合する電気接続を提供してもよい。
【００５２】
ディスプレイ・キーキーパッド４００は、個々のキー機能が、キー４０２自体上で提示される画像によってユーザに通信され得るため、モバイル・デバイスに多くの利点を提供し得る。そのため、ユーザは、特定のキーに割当てられた機能を判定するために、ディスプレイを一瞥する必要がない。代わりに、ワード、数、またはシンボルが、キーの機能が明確になるようにキー自体に表示され得る。こうしたキーパッドが容易に実装されることを可能にするために、アプリケーションは、各キー４０２に関連する機能を定義すると共に、キーディスプレイ４０８のそれぞれに提示されるグラフィックを提供しなければならない。このさらなる複雑さは、上述した実施形態を使用してキーパッド・プロトコル１００によって容易にされ得る。
【００５３】
別の形態のモバイル・デバイス・キーパッド／ユーザ・インターフェースは、図２１及び２２に示すようなタッチ・スクリーンである。こうしたモバイル・デバイス１０では、タッチ・スクリーン４１０は、完全に柔軟性があるキーパッド及びユーザ・インターフェースを提供する。キーは、タッチ・スクリーン４１０上のどこにでも設置され、その機能を定義するグラフィックを備えることができる。たとえば、小型キーボードは、「Ａ」、「２」などのような小さなグラフィックによって識別される対応する意味を有する小さな仮想ボタン４１２を提示することによってタッチ・スクリーン４１０上に提示され得る。タッチ・スクリーン・ディスプレイは、アプリケーションによって完全に構成可能であるユーザ・インターフェースを作成するために大きな柔軟性を提供する。キーパッド・プロトコル１００の利益がない場合、この柔軟性は、アプリケーション・ソフトウェアにさらなる複雑さを課すことになる。キーパッド・プロトコルの実施形態は、タッチ・スクリーン用のディスプレイ・キーパッド構成の開発を簡略化し得る。アプリケーション・ソフトウェア内で特定のタッチ・スクリーンを構成しなければならない代わりに、アプリケーション開発者は、種々のタッチ・スクリーン設計にインターフェースする複雑さをキーパッド・プロトコルに対して残したままで、標準的な形式及びＡＰＩを使用してキーパッド・プロトコル１００に記述的構成情報及びグラフィック・ファイルを提供し得る。
【００５４】
将来のモバイル・デバイス上で採用されてもよい第３の形態のキーパッドが図２３に示される。このキーパッド構成では、キー機能定義が小さなディスプレイ上で提示され得るように、小さなディスプレイ４２０がハードキー４２２の上に、並んで、または下に配置される。小さなディスプレイ４２０は、モバイル・デバイス主ディスプレイ１３と同様の液晶ディスプレイであってよい。こうしたキーパッド・ディスプレイの実施例は、その全体の内容が参照により組み込まれる米国特許番号第６，７０３，９６３号に開示される。小さなディスプレイ４２０は、ディスプレイがアプリケーション及びシステム・ソフトウェアによって制御され得るようにモバイル・デバイスプロセッサ１１に結合される。このキーパッド設計は、キー機能が動的に割当てられることを可能にし、キー機能がグラフィックまたは英数字の形態でユーザに通信されるため、柔軟性が高い。図２０及び２１を参照して上述した他のディスプレイ概念の場合と同様に、アプリケーション・ソフトウェア内で小さなキーパッド・ディスプレイ４２０を構成しなければならない代わりに、アプリケーション開発者は、そのキーパッドにインターフェースする複雑さをキーパッド・プロトコルに対して残したままで、標準的な形式でキーパッド・プロトコル１００に記述的構成情報及びグラフィック・ファイルを提供し得る。
【００５５】
種々の実施形態の利点は、図２４〜３９に示す一部の実施例によってさらに説明されてもよい。図２４を参照して、図１９及び図２０を参照して上述したディスプレイ・キーパッド４００を装備するモバイル・デバイス１０は、多くのユーザのために適切である可能性がある数字０〜９を表示するディスプレイ・キー４０２を有する携帯電話であり得る。しかし、数字が異なるアルファベットで提示されることをユーザが選択する場合、その選択は、キーパッド・プロトコルによって容易に実装することができ、選択された数字ディスプレイが図２５に示すようにキー４０２上に現れる。異なるスクリプトでの数字のこの提示は、モバイル・デバイス１０上で動作する電話アプリケーションを実質的に変更する必要無しで、キーパッド・プロトコル実施形態を使用して達成され得る。変更は、たとえば、単にキー翻訳テーブル３２０に異なる組のキーグラフィックを格納することによって達成され得る。こうしたモバイル・デバイスは、異なる形式で数字が提示される世界の一部でより有用である可能性がある。
【００５６】
図２６及び図２７を参照して、タッチ・スクリーン・ユーザ・インターフェース４１０を装備するモバイル・デバイスは、同様に、携帯電話アプリケーション用の数字を有する仮想キー４１２を表示し得る。アラビア数字に親しんでいるユーザは、図２６に示す文字を選択してもよい。しかし、異なる文字に親しんでいるユーザは、図２７に示すように、ディスプレイ用に代替の文字を選択してもよい。
【００５７】
同様に、図２８及び２９を参照して、キー４２２の上に配置されたキーパッド・ディスプレイ４２０を装備したモバイル・デバイスは、図２８に示すように、電話アプリケーションのためにキーの上にアラビア数字を提示するように、ユーザ選択によって構成され得る。異なる文字に親しんでいるユーザは、図２９に示すように、ディスプレイ用に代替の文字セットを選択してもよい。
【００５８】
キーパッド・プロトコルの種々の実施形態は、図２４〜図２９に示す選択が、電話アプリケーションに対する修正無しで、種々のタイプの携帯電話のユーザによって行われることを可能にした。そのため、単一の電話アプリケーション・ソフトウェアが、携帯電話キーパッドの複数の構成をサポートし、アプリケーション・ソフトウェアを複雑にすることなく、ユーザが、自分の好ましい文字セットを選択することを可能にし得る。キーパッド上に表示される文字をユーザが制御することを可能にすることに加えて、ユーザはまた、キーパッド・ディスプレイ上に提示される文字のフォントサイズを制御し得る。
【００５９】
種々の実施形態の柔軟性及び有用性は、アプリケーションの動作をユーザにとってより直感的にするために、モバイル・デバイスが、非アルファベットユーザ・インターフェースを利用し得るアプリケーションを動作させるときに特に明らかである。たとえば、図３０は、モバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーションを実行するモバイル・デバイス１０を示す。こうしたアプリケーションでは、キーパッドは、ボリュームを制御すること、メディアを再生すること、停止すること、または巻き戻すことなどのような、モバイル・テレビジョンまたはマルチメディア・プレーヤに関連するユーザコマンドを受信するように構成されてもよい。固定キー２０を有する典型的なモバイル・デバイスでは、モバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーションは、種々のキーに機能を割当てなければならない。キー割当てをユーザに知らせるために、キーを種々のアプリケーション機能に関連付けるディスプレイが提示される必要がある可能性がある。示す実施例では、キーメニューは、モバイル・デバイス・ディスプレイ１３において提示される。この例示が示すように、キー機能のディスプレイは、かなりの量のディスプレイ１３の面積を占め、したがって、ビデオ・ディスプレイの少なくとも一部分を妨害する。その結果、こうしたアプリケーションでは、ユーザは、キー機能割当てを記憶することを期待され、キー機能メニューが必要であるときに呼出し可能（recallable）である。
【００６０】
種々のキーパッド・プロトコル実施形態において各キーに関連するディスプレイを含むキーパッドを使用して、より直感的なモバイル・テレビジョンまたはマルチメディア・プレーヤユーザ・インターフェースが、図３１に示すように提供され得る。示すように、モバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーションは、キーパッド・プロトコル１００と組み合わされて、各機能キー４０２上に直感的グラフィックを提示し得る。キー機能をキーディスプレイ４０２上のグラフィックとして提供することによって、モバイル・デバイス・ディスプレイ１３は、目下アクセスされたメディアに関する情報を提供するために使用され得る。示す実施例では、モバイル・テレビジョンまたはマルチメディア画像は、ディスプレイ１３上に提示され、一方、キーに割当てられたキー機能（ボリューム、再生、巻き戻し、停止、早送り、最後のセグメントへのスキップ、レコード、及び次のセグメントへのスキップ）は、直感的グラフィックを使用して提示される。そのため、この実施形態では、アプリケーションは、割当てられたキーが画像を表示することを可能にする機能グラフィックをキーパッド・プロトコルに提供し、割当てられたキーは、妨害なくビデオ画像を示すようにディスプレイを解放しながら、より直感的でかつ有用なユーザ・インターフェースを可能にする。
【００６１】
種々の実施形態を使用して、タッチ・スクリーン４１０を含むモバイル・デバイス１０は、図３２に示すように、メディア・プレーヤ・アプリケーションについて同様のユーザ・インターフェースを提供し得る。示すように、メディア・プレーヤは、キーパッド・プロトコル１００と組み合わされて、モバイル・テレビジョンまたはマルチメディア・プレーヤ機能に関連する直感的仮想キー４１２を提示し得る。仮想キー４１２機能に関するグラフィックを提供するためにタッチ・スクリーンを使用することは、モバイル・デバイス・ディスプレイ１３を、割込み無しでビデオ画像を表示するために利用可能なままにする。
【００６２】
同様に、キー４２２の上に配置されたキーパッド・ディスプレイ４２０を装備するモバイル・デバイス１０は、図３３に示すように、メディア・プレーヤ・アプリケーションについて同様のユーザ・インターフェースを提供し得る。示すように、モバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーション・ソフトウェアは、キーパッド・プロトコル１００と組み合わされて、キーディスプレイ４２０において直感的仮想キーのシンボルを提示し得る。キー機能に関するグラフィックを提供するためにキーディスプレイを使用することは、モバイル・デバイス・ディスプレイ１３を、割込み無しでビデオ画像を表示するために利用可能なままにする。
【００６３】
同様に、タッチ・スクリーン・ディスプレイユーザ・インターフェース４３０を有するモバイル・デバイス１０は、図３４に示すように、直感的機能仮想キー４３２、４３３とモバイル・テレビジョンまたはマルチメディア・ビデオ用の大きなディスプレイの両方を提供し得る。示す実施例は、単一押下キー４３２とタッチスライド仮想キー４３３の両方を含む。例示的なタッチスライド仮想キー４３３は、仮想キー境界内で指をタッチさせ、左または右へ摺動させることによってボリュームを上げ下げし得る。
【００６４】
先に説明したように、各キー４０２、４２２または仮想キー４１２、４３２、４３３上でまたはそれによって表示されるグラフィック及びアプリケーションによって割当てられた各キー機能は、キーパッド・プロトコル１００によって管理される。単一のモバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーションは、アプリケーション・ソフトウェアを複雑にすることなく常に直感的なユーザ・インターフェースを提供する、従来のキーパッド２０、ディスプレイ・キーパッド４００、タッチ・スクリーン４１０、ディスプレイ４２０を有するキーパッド、及びタッチ・スクリーン・ディスプレイユーザ・インターフェース４３０、ならびに外部ユーザ・インターフェースを含むモバイル・デバイス及びキーパッドの複数の構成に関して機能し得る。示すように、単一のモバイル・テレビジョンまたはマルチメディア・プレーヤ・アプリケーションは、非常に似たキー機能グラフィックを含む非常に似たルック・アンド・フィールを提示しながら、種々の異なるデバイスに関して機能してもよい。
【００６５】
さらなる実施形態では、キーパッド・プロトコルによって有効にされるキーパッド構成の柔軟性は、モバイル・デバイスをテレビジョン及び／またはビデオプレーヤコントローラとして構成するアプリケーションをサポートするために、図４に示す赤外線ＩＲＤＡエミッタ／送受信機１９またはローカルエリア・ネットワーク送受信機１６などのモバイル・デバイス送信コンポーネントと組合され得る。こうしたアプリケーションは、外部メディア・プレーヤを制御するために、キー押下イベントを、適切なモバイル・デバイス送信機、すなわち、ＩＲＤＡ送受信機１９またはローカルエリア・ネットワーク送受信機１６によって放出される信号に翻訳するようにモバイル・デバイスプロセッサ１１を構成するソフトウェアで実装されてもよい。たとえば、モバイル・デバイスは、テレビジョン、ＤＶＤまたはＣＤプレーヤまたはビデオカセットレコーダ（ＶＣＲ）、ケーブルボックスコンバータ、衛星テレビジョン受信機、または他の同様なメディア受信機／プレーヤ用のリモートコントローラとして働くように構成されてもよい。モバイル・デバイスは、こうした外部メディア受信機／プレーヤと通信するために、必要な送信機（ＩＲＤＡまたはローカルエリア・ネットワーク）を既に含む可能性があるため、この実施形態は、よく知られている必要とされる制御シンボルを送信するソフトウェアを有するモバイル・デバイスを構成することを必要とするだけである。キーパッド・プロトコル実施形態を使用することによって、こうしたアプリケーションは、対応するプレーヤ機能をキーパッドに割当て、直感的グラフィックを使用してキー機能割当てをユーザに知らせ得る。そのため、この実施形態は、モバイル・デバイスのアクセス性−人々は、テレビジョンよりも自分の携帯電話を離れた所に置き間違える可能性が小さい−を、こうしたコントローラ上で使用される直感的ボタンと組み合わせる。図３０〜３４もまた、メディア・プレーヤ・キーの外観及び機能が、ビデオ画像がディスプレイ１３上に提示されることを除いてこれらの図に示すのと同様であるため、この実施形態を示す。
【００６６】
種々の実施形態は、述べた方法の１つまたは複数を実装するように構成されたソフトウェア命令を実行するプロセッサ１１によって実装されてもよい。こうしたソフトウェア命令は、デバイスのオペレーティング・システム・ソフトウェアとして、オペレーティング・システムによって実装される一連のＡＰＩとして、または実施形態の方法を実装するコンパイルされたソフトウェアとしてメモリ１２に格納されてもよい。さらに、ソフトウェア命令は、ランダムアクセス・メモリ１２，ＳＤメモリチップなどのモバイル・デバイス１０に差し込まれる（plug）メモリモジュール、ＵＳＢ接続可能外部メモリ（たとえば、「フラッシュドライブ（flash drive）」）などの外部メモリチップ、読取り専用メモリ（ＥＥＰＯＭなど）、ハードディスクメモリ、フロッピー（登録商標）ディスク、及び／またはコンパクトディスクを含む任意の形態の触知可能プロセッサ読取り可能メモリ上に格納されてもよい。
【００６７】
本明細書で開示される実施形態と共に述べられる種々の例示的なロジカルブロック、モジュール、回路、及びアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実装されてもよいことを当業者は理解するであろう。ハードウェア及びソフトウェアのこの交換可能性を明確に示すために、種々の例示的なコンポーネント、ブロック、モジュール、回路、及びステップが、それらの機能の点から一般に上述された。こうした機能が、ハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途及び全体システムに課される設計制約に依存する。当業者は、それぞれの特定の用途についていろいろな方法で、述べた機能を実装してもよいが、こうした実装の決定は、本発明の範囲からの逸脱をもたらすものとして解釈されるべきでない。
【００６８】
本明細書で開示される実施形態と共に述べられる方法またはアルゴリズムのステップは、ハードウェアで直接、プロセッサによって実行されるソフトウェアモジュールで、または、２つの組合せで具現化されてもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取外し可能ディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体のいずれかであってよいプロセッサ読取り可能メモリ内に存在してもよい。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読出し、記憶媒体に情報を書込むことができるようにプロセッサに結合される。代替法では、記憶媒体は、プロセッサと一体であってよい。プロセッサ及び記憶媒体は、ＡＳＩＣ内に存在してもよい。ＡＳＩＣは、ユーザ端末またはモバイル・デバイス内に存在してもよい。代替法では、プロセッサ及び記憶媒体は、ユーザ端末またはモバイル・デバイス内でディスクリートコンポーネントとして存在してもよい。あるいは、一部の態様では、方法及びアルゴリズムのステップ及び／または行為は、コンピュータプログラム製品に組み込まれてもよい、機械読取り可能媒体及び／またはコンピュータ読取り可能媒体上で、コード及び／または命令のうちの１つまたはその任意の組合せまたは組として存在してもよい。
【００６９】
種々の実施形態の先の説明は、当業者が本発明を作るかまたは使用することを可能にするために提供される。これらの実施形態に対する種々の変更が、当業者に容易に明らかになることになり、また、本明細書で規定される一般的な原理が、本発明の趣旨または範囲から逸脱することなく、他の実施形態に適用されてもよい。したがって、本発明は、本明細書で示す実施形態に限定されるものでなく、代わりに、特許請求の範囲は、本明細書で開示される原理及び新規な特徴と矛盾しない最も広い範囲に一致すべきである。
【図１】
2011524586.tif 000003
【図２】
2011524586.tif 000004
【図３】
2011524586.tif 000005
【図４】
2011524586.tif 000006
【図５】
2011524586.tif 000007
【図６】
2011524586.tif 000008
【図７】
2011524586.tif 000009
【図８】
2011524586.tif 000010
【図９】
2011524586.tif 000011
【図１０】
2011524586.tif 000012
【図１１】
2011524586.tif 000013
【図１２】
2011524586.tif 000014
【図１３】
2011524586.tif 000015
【図１４】
2011524586.tif 000016
【図１５】
2011524586.tif 000017
【図１６】
2011524586.tif 000018
【図１７】
2011524586.tif 000019
【図１８】
2011524586.tif 000020
【図１９】
2011524586.tif 000021
【図２０】
2011524586.tif 000022
【図２１】
2011524586.tif 000023
【図２２】
2011524586.tif 000024
【図２３】
2011524586.tif 000025
【図２４】
2011524586.tif 000026
【図２５】
2011524586.tif 000027
【図２６】
2011524586.tif 000028
【図２７】
2011524586.tif 000029
【図２８】
2011524586.tif 000030
【図２９】
2011524586.tif 000031
【図３０】
2011524586.tif 000032
【図３１】
2011524586.tif 000033
【図３２】
2011524586.tif 000034
【図３３】
2011524586.tif 000035
【図３４】
2011524586.tif 000036
【国際調査報告】
2011524586.tif 000037
2011524586.tif 000038
2011524586.tif 000039