(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス上で動作しているアプリケーションによってキーに割り当てられたファンクションを明らかにするための方法であって、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生することと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断することと、
前記割り当てられたキー値またはファンクションの表示を提示することと、
キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信することと、
前記キーパッドプロトコルにおいて、前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドに関する情報を前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信することと、ここにおいて、前記キーパッド構成命令は、前記キーパッドプロトコルから受信した前記情報を使用して、前記アプリケーションによって送信される、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信することと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断することと
を備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
方法。
【請求項２】
前記キーパッド構成命令をキーパッド変換テーブルに記憶することをさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項１に記載の方法。
【請求項３】
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶することと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと
をさらに備える、請求項１に記載の方法。
【請求項４】
前記アプリケーションにキーパッド機能を通知することをさらに備える、請求項３に記載の方法。
【請求項５】
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信することと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示することと
をさらに備える、請求項２に記載の方法。
【請求項６】
前記コンピューティングデバイスがモバイルデバイスである、請求項１に記載の方法。
【請求項７】
前記コンピューティングデバイスがセルラー電話である、請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサに結合されたディスプレイと、
前記プロセッサに結合され、キーを含む、タッチセンシティブキーパッドと、
前記プロセッサに結合されたメモリと
を備える、コンピューティングデバイスであって、
前記プロセッサが、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に表示するステップと、
キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドに関する情報を前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、ここにおいて、前記キーパッド構成命令は、前記キーパッドプロトコルから受信した前記情報を使用して、前記アプリケーションによって送信される、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
を実行するためのソフトウェア命令を用いて構成され、
前記キーパッドプロトコルが、前記ディスプレイ上の前記割り当てられたキー値またはファンクションの前記提示をフォーマッティングする、
コンピューティングデバイス。
【請求項９】
前記プロセッサが、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらに実行するためのソフトウェア命令を用いて構成され、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記プロセッサが、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、請求項８に記載のコンピューティングデバイス。
【請求項１１】
前記プロセッサが、前記アプリケーションにキーパッド機能を通知するステップをさらに実行するためのソフトウェア命令を用いて構成された、請求項１０に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に提示するとき、前記グラフィックを提示するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、請求項９に記載のコンピューティングデバイス。
【請求項１３】
前記コンピューティングデバイスがモバイルデバイスである、請求項８に記載のコンピューティングデバイス。
【請求項１４】
前記コンピューティングデバイスがセルラー電話である、請求項８に記載のコンピューティングデバイス。
【請求項１５】
キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するステップと、
キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドに関する情報を前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、ここにおいて、前記キーパッド構成命令は、前記キーパッドプロトコルから受信した前記情報を使用して、前記アプリケーションによって送信される、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶し、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
有形記憶媒体。
【請求項１６】
前記有形記憶媒体が、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項１５に記載の有形記憶媒体。
【請求項１７】
前記有形記憶媒体が、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項１５に記載の有形記憶媒体。
【請求項１８】
前記有形記憶媒体が、前記アプリケーションにキーパッド機能を通知するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項１７に記載の有形記憶媒体。
【請求項１９】
前記有形記憶媒体が、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項１６に記載の有形記憶媒体。
【請求項２０】
前記有形記憶媒体が、モバイルデバイスプロセッサによって読取り可能であり、前記記憶媒体が、前記モバイルデバイスプロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項１５に記載の有形記憶媒体。
【請求項２１】
前記有形記憶媒体が、セルラー電話プロセッサによって読取り可能であり、前記記憶媒体が、前記セルラー電話プロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項１５に記載の有形記憶媒体。
【請求項２２】
キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するための手段と、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するための手段と、
キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドに関する情報を前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するための手段と、ここにおいて、前記キーパッド構成命令は、前記キーパッドプロトコルから受信した前記情報を使用して、前記アプリケーションによって送信される、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するための手段と、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するための手段と
を備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの表示を提示するための前記手段によって、前記提示をフォーマッティングする、
コンピューティングデバイス。
【請求項２３】
前記キーパッド構成命令をキーパッド変換テーブルに記憶するための手段をさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、
請求項２２に記載のコンピューティングデバイス。
【請求項２４】
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するための手段と、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と
をさらに備える、請求項２２に記載のコンピューティングデバイス。
【請求項２５】
前記アプリケーションにキーパッド機能を通知するための手段
をさらに備える、請求項２４に記載のコンピューティングデバイス。
【請求項２６】
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するための手段と
をさらに備える、請求項２３に記載のコンピューティングデバイス。
【請求項２７】
前記コンピューティングデバイスがモバイルデバイスである、請求項２２に記載のコンピューティングデバイス。
【請求項２８】
前記コンピューティングデバイスがセルラー電話である、請求項２２に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、２００７年７月１６日に出願された、「Dynamically Configurable Keypad」と題する米国特許仮出願第６０／９５０，１１２号の優先権の利益を主張する。
【０００２】
本発明は、一般に、モバイルコンピュータシステムに関し、より詳細には、セルラー電話などのモバイルデバイス上の特定のキーに割り当てられたファンクションを明らかにするための方法およびシステムに関する。
【背景技術】
【０００３】
セルラー電話など、モバイル電子デバイス（モバイルデバイス）の使用は、それらの携帯性、接続性および高まり続ける計算能力により増加し続けている。モバイルデバイスが精巧化するにつれて、アプリケーションソフトウェアの多様性および精巧性が高まり、モバイルデバイスは多目的生産性ツールに変わりつつある。しかし、モバイルデバイスの有用性およびそれらの適用例は、ユーザインターフェースに利用可能な小さいエリアによって限定される。従来のセルラー電話は、固定された構成の簡単なキーパッドを含んでいた。固定キーパッドを有するモバイルデバイスにより多くの機能を与えるために、アプリケーションソフトウェアは、頻繁に、キー上のラベル（たとえば、１、２など）とは異なるキーにファンクションを割り当てる。しかしながら、この解決策では、ユーザは、各キーに割り当てられた機能についてよくわからないままになることがある。
【発明の概要】
【０００４】
様々な実施システムおよび方法は、キーの上または近くのユーザの指またはポインティングデバイスの位置に基づいて、コンピューティングデバイスのキーに割り当てられた値またはファンクションを明らかにする。コンピューティングデバイス上で実行されているアプリケーションソフトウェアは、キーに割り当てられた現在の意味あるいは値またはファンクションを判断する。キーの意味は表示エリアの一部分に提示される。キーの現在の意味は、システムソフトウェアの一部として動作しているキーパッドプロトコルによって管理できる。アプリケーションは、キーがタッチまたはニアタッチされたことに応答して、ディスプレイ上に提示されたキーの現在の意味を定義するキーファンクションまたは値の記述を制御する。
【０００５】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および下記の詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【０００６】
【図１】様々な実施形態で使用できる典型的なセルフォンの構成要素ブロック図。
【図２Ａ】タッチセンシティブキーパッドの一実施形態の側断面図。
【図２Ｂ】タッチセンシティブキーパッドの一実施形態の平面図。
【図３】タッチセンシティブキーパッドの別の実施形態の断面図。
【図４】標準的な従来技術のセルフォンのハードウェア／ソフトウェアアーキテクチャ図。
【図５】一実施形態のプロセスフロー図。
【図６】図５に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図７】一実施形態のハードウェア／ソフトウェアアーキテクチャ図。
【図８】一実施形態によって可能にされる機能の一部分のプロセスフロー図。
【図９】図８に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図１０】一実施形態の機能の一部分のプロセスフロー図。
【図１１】一実施形態において使用するのに好適なデータ構造を示す図。
【図１２】一実施形態によるキー変換テーブルのデータ構造を示す図。
【図１３】一実施形態の機能の一部分のプロセスフロー図。
【図１４】一実施形態によるキープレスイベント割込みのデータ構造を示す図。
【図１５】一実施形態の機能の一部分のプロセスフロー図。
【図１６】図１５に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図１７】キーパッドキーに割り当てられた代替フォントを明らかにするための実施形態を実装するモバイルデバイスを示す図。
【図１８】キーパッドキーに割り当てられた代替フォントを明らかにするための実施形態を実装するモバイルデバイスを示す図。
【図１９】メディアプレーヤアプリケーションが動作している状態の従来のセルフォンを示す図。
【図２０】ディアプレーヤアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図２１】メディアプレーヤアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図２２】ゲームアプリケーションが動作している状態の従来のセルフォンを示す図。
【図２３】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図２４】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図２５】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【発明を実施するための形態】
【０００７】
様々な実施形態について添付の図面を参照しながら詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
【０００８】
本明細書中の「例示的」という用語は、本明細書では「例、事例、または例示として役立つこと」を意味するために使用する。本明細書に「例示的」と記載されたいかなる実施形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【０００９】
本明細書で使用する「コンピューティングデバイス」という用語は、ディスプレイおよびキーボードまたはキーパッドを含むプログラマブルコンピュータデバイスを指す。実施形態の説明では、「モバイルデバイス」に言及するが、「モバイルデバイス」は、様々な実施形態を実装するコンピューティングデバイスの１つのタイプにすぎない。本明細書で使用する「モバイルハンドセット」および「モバイルデバイス」という用語は互換的に使用され、様々なセルラー電話、個人情報端末（ＰＤＡ）、パームトップコンピュータ、ワイヤレスモデムをもつラップトップコンピュータ、ワイヤレス電子メール受信機（たとえば、ＢｌａｃｋＢｅｒｒｙ（登録商標）およびＴｒｅｏ（登録商標）デバイス）、セルラー電話、およびマルチメディアインターネット対応セルラー電話（たとえば、ｉＰｈｏｎｅ（登録商標））、および同様のコンピューティングデバイスのうちのいずれか１つを指す。モバイルデバイスは、以下で図４を参照しながらより十分に説明するように、プログラマブルプロセッサおよびメモリを含むことができる。好ましい一実施形態では、モバイルデバイスは、セルラー電話ネットワークを介して通信することができるセルラーハンドヘルドデバイス（たとえば、セルフォン）である。ただし、以下の説明におけるモバイルデバイスへの言及は、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、コンピュータ端末、ゲーム機端末、およびワークステーションを含み得る、他の形態のコンピューティングデバイスを除外するものではない。
【００１０】
本明細書で使用する「キーパッド」という用語は、キーに関連付けられたファンクションが実施されなければならないことをモバイルデバイスに通信するためにユーザがボタンまたはキーをプレスする、様々なユーザインターフェースのいずれかを指す。以下の説明中に含まれるキーパッドの例は、従来型のセルラー電話の数字キーパッド、様々なモバイルデバイス上に実装される小型キーボード、モバイルデバイスに電子的に（たとえば、有線またはワイヤレスデータリンクを介して）結合できる外部キーパッドおよびキーボード、コンピュータキーボード、ならびにパーソナルコンピュータ、モバイルデバイスまたは他のコンピューティングデバイスに結合できる音楽キーボードを含む。説明を簡単にするために、図および説明は典型的なセルラー電話のキーパッドを示し、指す。ただし、これらの説明および図は、例にすぎず、本明細書の範囲または特許請求の範囲を特定のキーパッド構成に限定するものではない。
【００１１】
本明細書で使用する「タッチ」および「タッチセンシティブ」という用語は、キーの極接近ならびに実際の物理的接触を包含するものである。さらに（または代替的に）本明細書で説明する「タッチセンシティブ」キーパッドは、指、スタイラスまたは他の物体の極接近を感知することが可能である。したがって、以下の説明における「タッチ」および「タッチセンシティブ」の使用は、物理的接触を必要とすることに限定されるもの、または極接近センシティブキーパッドを除外するものと解釈すべきではない。本明細書で使用する「ニアタッチ」という用語は、ユーザが指を極接近センシティブキーの極接近に持ってくるときなどの極接近イベントを指す。
【００１２】
様々な実施形態では、モバイルデバイスが、キーに対するユーザの指またはスタイラスの極接近またはタッチを感知し、アプリケーションによって特定のキーに割り当てられたファンクションの説明をユーザに表示することが可能である。キーに割り当てられたファンクションをユーザがそのキーをプレスする必要なしに表示することによって、モバイルデバイスアプリケーションは、ユーザがファンクション割当てを記憶する必要なしに、およびキーファンクション割当てのメニューで表示を遮る必要なしに、多種多様なファンクションを固定キーパッド上のキーに割り当てることができる。様々な実施形態は、キー（たとえば、「１」、「２」、「３」など）上に印刷された値と一致しないコマンドを受け取るために固定キーパッドを使用するアプリケーションにおいて有用なことがある。さらに、本実施形態では、モバイルデバイスが、ユーザのネイティブ言語で所望のキーの位置を特定するための便利な機構をユーザに提供しながら、キー上に印刷されたアルファベットおよび数字フォーマットとは異なるアルファベットおよび数字フォーマットを実装することが可能である。本実施形態はまた、従来型のコンピュータキーボード上のファンクションキーなど、アプリケーション割当て可能キーを有するキーパッドを含むモバイルデバイスに対して有用なことがある。
【００１３】
本明細書で説明する実施形態は、様々なモバイルデバイスのうちのいずれかに実装できる。一般に、そのようなモバイルデバイスは、図１に示す構成要素を共通に有する。たとえば、モバイルデバイス１０は、内部メモリ１２とディスプレイ１３とに結合されたプロセッサ１１を含む。さらに、モバイルデバイス１０は、プロセッサ１１に結合されたワイヤレスデータリンクおよび／またはセルラー電話トランシーバ１５に接続される、電磁放射を送信および受信するためのアンテナ１４を有する。いくつかの実装形態では、セルラー電話通信のために使用されるトランシーバ１５ならびにプロセッサ１１およびメモリ１２の一部分を、ワイヤレスデータリンクを介してデータインターフェースを与えることから、集合的にエアインターフェースと呼ぶ。モバイルデバイス１０は、一般に、ユーザ入力を受け取るためのキーパッド２０または小型キーボードおよびメニュー選択ボタンまたはロッカースイッチ２１をも含み、アプリケーションプログラマブルボタン２２、２３、２４を含むことができる。
【００１４】
一実施形態では、モバイルデバイスは、指、スタイラスまたは他のポインティングデバイスのタッチまたは極接近を感知するように構成されたキーパッドを含む。キーに対する指、スタイラスまたは他のポインティングデバイスのタッチまたは極接近を感知するために様々なセンサを使用することができる。そのようなセンサは、たとえば、（たとえば、キャパシタンス、インダクタンスまたは電圧などの）電気特性センサと、（たとえば、キーの極接近にある指の温度を検出可能な）熱センサと、（たとえば、キーを覆っている指またはポインティングデバイスによって落とされた影を検出する）光センサと、（たとえば、指またはポインティングデバイスの軽いタッチを検出する）圧力センサとを含むことができる。タッチセンシティブキーパッドは、特定のキーがプレスされたことを示す信号とは異なる、そのキーがいつタッチされたかを示す信号をモバイルデバイスプロセッサ１１に供給するように構成される。キーに対する指またはスタイラスのタッチまたは極接近を感知することによって、モバイルデバイスは、特定のキーがプレスされる前にそのキーに現在割り当てられているファンクションを示す表示を与えるようにソフトウェアで構成できる。そのような表示は、ディスプレイ上の他の情報およびグラフィックスを遮らないモバイルデバイスディスプレイ１３の部分に提示できる。
【００１５】
タッチセンシティブキーパッドは、キーのタッチとプレスの両方を異なる種類のイベントとして感知する機能を有し、キータッチおよびキープレスイベントをプロセッサ１１にシグナリングすることができるユーザインターフェースである。タッチセンシティブキーパッドの例示的な実施形態を図２Ａおよび図２Ｂに示す。この例示的な実施形態では、指またはスタイラスがキーに対していつタッチしたかまたは極めて近接したかを感知するために、各キーに関連付けられたキャパシタ回路を使用する。他の電気、熱、光および圧力センサに関連する構成要素の構成は、別個に図解すれば同様のものになる筈である。
【００１６】
図２Ａを参照すると、そのようなキーパッド３０は、プレス感知回路アセンブリ３２によって支持され、プレス感知回路アセンブリ３２に機械的に結合された複数の個々のキー３１を含む。プレス感知回路アセンブリ３２は、キー３１の移動またはプレスを検出し、そのイベントをプロセッサによって解釈され得る電気信号に変換することができる様々なよく知られているキーパッド機構のいずれかとすることができる。たとえば、プレス感知回路アセンブリ３２は、閉回路を通って送信される電圧が、その電圧がキー３１がプレスされていることを示していると解釈可能な別の回路またはプロセッサによって受信できるように、キー３１のプレス時に閉じられるスイッチを含むことができる。代替的に、プレス感知アセンブリ回路３２は、キャパシタまたは抵抗材料に作用するキー移動によって引き起こされたキャパシタンスまたは抵抗の変化に基づいてキーのプレスを感知することができる。プレス感知回路アセンブリ３２は、キー３１を支持し、ユーザがキーが首尾よくプレスされたことを感知できるようにするために十分な移動距離をキーが移動することを可能にするための構造要素を含むことができる。
【００１７】
キャパシタまたはキャパシタンスセンサなど、タッチまたはニアタッチ感知回路３４も各キー３１に関連付けられる。キャパシタンスセンサ回路３４は、ユーザがキー３１にタッチまたはニアタッチし、それによってキー３１と下部支持３５との間のキャパシタアセンブリを備える静電材料にユーザの体が加わるときに生じるキャパシタンスの変化を検出することができる回路である。別の実施形態では、タッチ感知回路３４は、指がキー３１の極接近に持ってこられるかまたはキー３１にタッチしたときにユーザの体からキー３１に通過する電圧を感知することができる低電圧検出回路とすることができる。別の実施形態では、タッチ感知回路３４は、ユーザの指がキー３１にタッチするかまたはキー３１の極接近にくるときに生じる温度の変化を検出するのに十分センシティブな熱または温度感知回路とすることができる。さらなる実施形態では、タッチ感知回路３４は、ユーザの指がキー３１にタッチするかまたはキー３１の極接近にくるときなど、ユーザの指がキーを遮るときに生じるキー３１を通る光の変化を検出することができる光感知回路とすることができる。回路ブロックとして図示すると、電圧、熱、温度または光感知回路は、図２Ａに示すキャパシタンスセンサ３４と同じになるので、これらの代替実施形態は別個に図示しない。
【００１８】
タッチセンシティブキーパッド３０はまた、各キー３１とタッチ感知回路３４を互いに電気的に絶縁するために、（絶縁体材料から製造できる）側部支持構造３３と、キー間の電気絶縁体材料３６とを含むことができる。図２Ｂに示すように、上方から見ると、タッチセンシティブキーパッド３０は任意の従来型のキーパッドのように見えることがある。
【００１９】
図３に示す別の実施形態では、タッチ感知回路は、ユーザの指またはスタイラスがキー３１にタッチするかまたはキー３１の極接近にくるときに生じる、キー３１と下部支持３９との間のインダクタンスの変化を感知することができるインダクタンスセンサ３８を含む。たとえば、インダクタンスセンサ３８は、ユーザの指が近くにあるときにコイルを通るインダクタンスの変化を感知するように構成されたインダクタンス感知回路を追加するために結合されたコイルの形態とすることができる。インダクタンスベースのタッチセンシティブキーパッド３７も、モバイルハンドセットからキーパッドを電気的に分離し各キーを互いに分離するために、側部支持構造３３とインターンキー絶縁体材料３６とを含むことができる。
【００２０】
どんなキーパッドもそうであるように、キープレスセンサ回路３２およびタッチ感知回路３４、３８から受信された信号を外部回路に、そして最終的にはモバイルデバイスのプロセッサにルーティングするための回路を含めることができる。当技術分野において知られているキーパッド回路のいずれもこの目的のために実装でき、したがって図には含めていない。
【００２１】
好ましい一実施形態では、タッチセンシティブキーパッド３０は主要なキーパッドとしてモバイルデバイス１０に組み込まれる（すなわち、図１に示す従来型のキーパッド２０の代わりに使用される）。ただし、本実施形態および特許請求の範囲の範囲はそのようなタッチセンシティブキーパッド３０を含むモバイルデバイスに限定されない。本実施形態は、タッチセンシティブキーパッドまたはキーボードに結合され、本実施形態に一致する方法を達成するソフトウェアを用いて構成された任意のコンピューティングデバイスを包含する。たとえば、一実施形態では、プロセッサおよびディスプレイは、タッチセンシティブファンクションキーＦ１〜Ｆ１２などのタッチセンシティブキーを有するキーボードに結合されたパーソナルコンピュータの一部である。別の例として、モバイルデバイス１０は、データケーブルまたはワイヤレスデータリンクによって別個のタッチセンシティブキーパッドに結合できる。
【００２２】
旧来、キーパッドは、キー３１の押下を、モバイルデバイスおよびそのアプリケーションソフトウェアによって解釈され得る電気信号に変換することによって機能する。図４に、キープレスイベントがどのようにアプリケーションソフトウェアに通信されるかを示す、典型的なモバイルデバイスのハードウェア／ソフトウェアアーキテクチャを示す。タッチセンシティブキーパッド３０上のキーをプレスすると、回路が閉じられるかあるいはキャパシタンスまたは抵抗が変化し、それにより電気信号が生じ、その電気信号はハードウェアドライバ４によって処理することができる。ハードウェアドライバ４は、特定のモバイルデバイスに応じて、回路、ソフトウェア、またはハードウェアとソフトウェアの混合とすることができる。ハードウェアドライバ４は、キーパッド５から受信した電気信号を、モバイルデバイス上で動作するソフトウェアアプリケーション２が解釈できる形式に変換する。この信号は、アプリケーションソフトウェアによってアクセス可能なメモリテーブル中の割込みまたは記憶値の形態とすることができる。そのような割込み値またはメモリに記憶された値は、ＱＵＡＬＣＯＭＭ（登録商標）社、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｏｂｉｌｅ（登録商標）およびＬｉｎｕｘ（登録商標）によって作成されたＢｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ（ＢＲＥＷ（登録商標））プラットフォームなどのランタイム環境ソフトウェア層３によって受信できる。ランタイム環境ソフトウェア層３は、アプリケーションソフトウェアとモバイルデバイスとの間の共通インターフェースを与える。したがって、（破線矢印で示された）キープレスイベント信号はキープレスイベントメッセージの形態でアプリケーション２に渡される。アプリケーションソフトウェア２は、キープレスイベントの意味を理解することが可能でなければならず、したがって、基礎をなすハードウェアドライバ４およびキーパッドハードウェア３０に適応するように書かれる。また、キープレスイベントは、たとえば、特定のキーに関連付けられた値またはファンクションを表示することなどのためにユーザインターフェース層１に通信できる。
【００２３】
一実施形態では、キーをプレスすることなしにキーにタッチまたはニアタッチするユーザは、タッチセンシティブキーパッド３０によって感知され、（鎖線矢印で示された）キータッチイベントメッセージに変換され、そのキータッチイベントメッセージはハードウェアドライバ４に送信される。キータッチイベントメッセージはランタイム環境３を介してアプリケーション２に送信できる。キータッチイベントメッセージを受信すると、アプリケーション２は、後述のように、関連するキー（すなわち、タッチまたはニアタッチされているキー）に割り当てられた値またはファンクションを判断し、関連付けられた値またはファンクションをモバイルデバイスディスプレイ１３内に表示するようにユーザインターフェース１に指示する。
【００２４】
キータッチイベントまたはキープレスイベントに関する情報は、当業者によって諒解される様々なデータおよび信号構造で、キーパッド３０からドライバ４に、およびドライバからアプリケーション２に通信できる。様々なソフトウェア層間で渡される信号の一例については図６を参照しながら後述する。代替的に、キータッチイベントおよびキープレスイベント情報は、オペレーティングシステムおよび／またはアプリケーションによって頻繁に調べられるレジスタまたは状態機械中のメモリ１２に記憶できる。たとえば、キープレスイベントまたはキータッチイベントが発生したことを示すフラグ、および関連付けられたキー識別情報（キーＩＤ）が処理用に利用できるメモリ中にあることを示すフラグをメモリ中に設定することができる。一実施形態では、この通知は、２つのフラグと、キーＩＤシンボルと、知られているメモリロケーションまたはレジスタとを記憶することによって達成できる。第１のフラグは、処理すべき必要があるイベントが発生したことを示すことができる。第２のフラグは、そのイベントが、キータッチイベントであるか（たとえば、第２のフラグは「０」に設定される）、またはキープレスイベントであるか（たとえば、第２のフラグは「１」に設定される）を示すことができる。キーＩＤシンボルは、タッチ（またはニアタッチ）あるいはプレスされた特定のキーを識別する単純なデータコードとすることができる。したがって、極めて小さいメモリ容量においてキープレスイベントおよびキータッチイベントをオペレーティングシステムおよびアプリケーションに通信することができる。
【００２５】
別の例として、キーパッドハードウェア３０またはキーパッドドライバソフトウェア４は、ランタイム環境層３またはアプリケーション２にソフトウェア割込みを送信することによってキータッチイベントまたはキープレスイベントをシグナリングすることができる。そのような割込みのデータ構造の一例については図１４を参照しながら後述する。
【００２６】
キープレスまたはキータッチイベント時に実行できる例示的な処理ステップを図５に示す。ユーザがキー３１をプレスすると、ステップ７２において、タッチセンシティブキーパッド３０は、このイベントがいつ発生したかを感知し、キープレスイベント電気信号をキーパッドドライバに送信する。ステップ７３において、キーパッドドライバは、キーパッドからキープレスイベント信号を受け取り、プレスされたキーを認識し、後に適切なキープレス通知をオペレーティングシステムまたはランタイム環境に送信する。ステップ７５において、ランタイム環境層はアプリケーションにキープレス通知を転送する。キープレスイベント通知を受信すると、ステップ７７において、アプリケーションは、特定のキーに割り当てられたファンクションまたは値を判断する。アプリケーションはまた、テスト７９において、イベントがキープレスイベントであったかまたはキータッチイベントであったかを判断する。キープレスイベントであった場合、アプリケーションは、ステップ８３において特定のキーに割り当てられたファンクションを実行し、ステップ８３において実行されたファンクションに関連付けられた適切な画像またはシンボルをディスプレイに送信する。
【００２７】
ユーザがキー３１にニアタッチまたはタッチするがキー３１をプレスしないと、ステップ７１において、タッチセンシティブキーパッド３０は、このタッチイベントがいつ発生したかを感知し、キーパッドドライバにキータッチイベント電気信号を送信する。ステップ７３において、キーパッドドライバは、キーパッドからキータッチイベント信号を受け取り、プレスされたキーを認識し、後に適切なキータッチ通知をオペレーティングシステムまたはランタイム環境に送信する。ステップ７５において、ランタイム環境層はキータッチ通知をアプリケーションに転送する。キータッチイベント通知を受信すると、ステップ７７において、アプリケーションは、特定のキーに割り当てられたファンクションまたは値を判断する。アプリケーションはまた、テスト７９において、イベントがキープレスイベントであったかまたはキータッチイベントであったかを判断する。キータッチイベントであった場合、アプリケーションは、タッチまたはニアタッチされたキーに関連付けられた値またはファンクションをディスプレイに通信し（あるいは、表示すべきディスプレイ上に提示される画像を変更し）、それによってキーがプレスされた場合に入力される値または実行されるファンクションをユーザに通知する。
【００２８】
図５に示す方法ステップは、モバイルデバイス１０のハードウェア層とソフトウェア層との間で渡される一連のデータメッセージにおいて達成でき、その例を図６に示す。キーがニアタッチまたはタッチされたがプレスされていないと、タッチセンシティブキーパッドハードウェア３０は、このイベントを感知し、メッセージ７１において、タッチイベントとタッチされた特定のキーとをキーパッドドライバ層４に通知する電気信号をキーパッドドライバ層４に送信する。メッセージ７３ａにおいて、キーパッドドライバ４は、このイベントをランタイム環境層３が理解できる信号に変換する。このメッセージは、タッチまたはニアタッチされたキーのキーＩＤを供給することなどによって、イベント（すなわち、キータッチイベント）の特徴と、関係する特定のキーの両方をランタイム環境層３に通知する。次いで、ランタイム環境層３は、メッセージ７５ａにおいて、キータッチイベント情報をアプリケーション２に転送する。アプリケーションは、タッチまたはニアタッチされたキーに関連付けられたファンクションを判断するためにステップ７７〜７９の処理を実行し、メッセージ８５において、キーに関連付けられた値またはファンクションを提示するために信号をディスプレイ１３に送信するか、またはディスプレイ１３を再構成する。
【００２９】
キーがプレスされると、メッセージ７１において、タッチセンシティブキーパッドハードウェア３０は、このイベントを感知し、タッチイベントとタッチまたはニアタッチされた特定のキーとをキーパッドドライバ層４に通知する電気信号をキーパッドドライバ層４に送信する。メッセージ７３ａにおいて、キーパッドドライバ４は、このイベントをランタイム環境層３が理解できる信号に変換する。このメッセージは、プレスされたキーのキーＩＤを供給することなどによって、イベント（すなわち、キープレスイベント）の特徴と、関係する特定のキーの両方をランタイム環境層３に通知する。次いで、ランタイム環境層３は、メッセージ７５ａにおいて、キープレスイベント情報をアプリケーション２に転送する。アプリケーションは、タッチまたはニアタッチされたキーに関連付けられたファンクション（または値）を判断するためにステップ７７〜８１の処理を実行し、次いでそのファンクションを実行する（またはその値を入力する）。ファンクションが実行される（または値が入力される）と、メッセージ８３において、アプリケーションは、実行結果を提示する（または入力値を表示する）ために信号をディスプレイ１３に送信するか、またはディスプレイ１３を再構成する。
【００３０】
図５および図６を参照した上記の説明では、キータッチイベントおよびキープレスイベントは、ドライバ層４からランタイム環境３を通してアプリケーション２に通信されるものとして記述した。しかしながら、いくつかの実装形態では、ドライバ層４はアプリケーション２と直接通信することができる。さらに別の方法として、ドライバ層４は、キーイベントが発生したことを環境ランタイム環境層３に通信し、次いで、アプリケーション２がアクセス可能であるレジスタにキーイベント情報を記憶することなどによってキーイベントに関する情報をアプリケーション２に直接通信することができる。
【００３１】
レジスタにフラグおよびキーＩＤを記憶することによってキータッチまたはキープレスイベントが通信される実施形態では、図６に示すメッセージの代わりに、上述のメッセージの受信と同様の方法で連続的に実行できるメモリストア演算およびメモリアクセス演算を使用する。
【００３２】
これらの実施形態を実装するために、アプリケーションソフトウェアは、キータッチイベントを認識し、タッチまたはニアタッチされたキーに関連付けられた値またはファンクションを明らかにするためにモバイルデバイスディスプレイと相互作用するように構成できる。そのような構成は、キータッチイベント信号またはレジストリ値を認識し、割り当てられた値またはファンクションをディスプレイに提示する追加の処理ステップを追加することによって達成できる。ランタイム環境層ソフトウェアはまた、キープレスイベントとは異なる様式（たとえば、データフォーマットまたはフラグ値）でキータッチイベントを認識し、アプリケーションにこのイベントを適切に通知するように適合できる。さらに、タッチセンシティブキーパッドとともに使用されるハードウェアドライバは、これらの２種類のキーイベントを区別し、キータッチイベントおよびキープレスイベント情報をランタイム環境またはアプリケーションに適切に通信するように構成できる。
【００３３】
キータッチイベントとキープレスイベントを区別し、キータッチイベントとキープレスイベントに作用するためにアプリケーションソフトウェアに必要とされる複雑さの追加は、モバイルデバイスのオペレーティングシステム内のキーパッドプロトコル層に関連する様々な実施形態を実装することによって回避できる。そのようなキーパッドプロトコルは、本明細書と同時に出願され、その内容全体が参照により本明細書に組み込まれる、「Standardized Method and Systems for Interfacing with Configurable Keypads」と題する米国特許出願第＿＿＿＿＿＿＿＿＿号に記載されている。キーパッドプロトコル層は、アプリケーションソフトウェアがオペレーティングシステムに対するキーパッドファンクションを定義し、標準の形式でキーイベント通知を受信することを可能にする、アプリケーションソフトウェアとキーパッドドライバとの間のインターフェースとして働く。そうすることによって、タッチまたはニアタッチされたキーの値またはファンクションを表示し、割り当てるプロセスを、キーパッドプロトコルによって実行することができ、アプリケーションソフトウェアからこの処理の必要がなくなる。モバイルデバイスがタッチセンシティブキーパッドを装備している場合、これは、アプリケーションによって割り当てられた関連する値またはファンクションを提示するためにモバイルデバイスディスプレイと通信することができるキーパッドプロトコル層に知らされる。このようにして、本明細書で説明するタッチセンシティブキーパッド機能を適応させる必要なしに、ソフトウェアアプリケーションを様々なモバイルデバイス用に書くことができる。図７〜図１６を参照する以下の説明において、システムソフトウェア内にそのようなキーパッドプロトコル層を含むモバイルデバイス１０上で実装される実施形態について説明した。
【００３４】
図７に示すように、キーパッドプロトコル１００は、アプリケーションソフトウェア１８０とキーパッド３０との間のインターフェースソフトウェア層として働く。図示のように、キーパッドプロトコル１００は、様々なハードウェアドライバ１１０と、ＢＲＥＷ（登録商標）層などのランタイム環境ソフトウェア１７０とにリンクするシステムソフトウェアの一部として与えられる。キーパッドプロトコル１００はまた、多種多様なキーパッドとインターフェースして、アプリケーションソフトウェアがいくつかの利用可能なキーパッドのうちの１つを選択し、設定できるようにすることができる。キーイベント信号は、キーパッド３０から関連するキーパッドハードウェアドライバ１１０に送信される。キーパッドドライバ１１０は、キーイベント電気信号を、キーパッドプロトコル１００が理解できる形式に変換する。
【００３５】
キーパッドプロトコル１００は、アプリケーション開発者が標準的ソフトウェア命令を予期し、そのソフトウェア命令に適応できる標準化された形式で、ドライバ層１１０からキープレスイベント信号を受信し、キープレスイベント通知をアプリケーション１８０に送信する。そうする際に、キーパッドプロトコル１００は、アプリケーション１８０が解釈できる、通知オブジェクトなどのキープレスイベントメッセージを構成する。この構成されたキープレスイベントメッセージ／通知オブジェクトは、ランタイム環境ソフトウェア層１７０を通してアプリケーション１８０に渡すことができる。代替的に、キーパッドプロトコル１００は、キープレスイベントメッセージ／通知オブジェクトをアプリケーション１８０に直接通信することができる。アプリケーション１８０はまた、表示ファンクションを提供するユーザインターフェース層１９０にキープレスイベントを通信することができる。代替的に、キーパッドプロトコル１００は、ディスプレイ１３上で提示するためのユーザインターフェース層１９０にキー値またはファンクションを直接通信することができる。
【００３６】
本発明の様々な実施形態に対する特定の利点の中でも、キーパッドプロトコル１００は、アプリケーション１８０からキーファンクション割当ておよび構成コマンドを受信することができ、それにより、キーパッドプロトコル１００は、所与の瞬間において特定のキーに割り当てられた値またはファンクションを判断することができる。様々なキーに割り当てられる値およびファンクションは、モバイルデバイス上で動作するアプリケーションによって、そのソフトウェアのファンクションに応じて定義される。いくつかの例では、特定のキーに割り当てられる値またはファンクションは、他のキーが以前にまたは同時にプレスされたかどうか（たとえば、「ｓｈｉｆｔ」または「ａｌｔ」キーのプレスの後にくるなど）に依存する。他の例では、特定のキーに割り当てられるファンクションは、アプリケーションによって実行されている現在の動作に依存する。たとえば、メディアプレーヤアプリケーションにおいて、メディア再生を停止および開始するために同じキーを使用することができ、メディアが再生されているときはいつもそのキーに「停止」の機能が割り当てられ、メディアファイルが選択されているがまだ再生されていないときはいつもそのキーに「開始」の機能が割り当てられる。したがって、特定のキーに割り当てられる値または機能はコンテキスト依存であり、アプリケーションの動作中に頻繁に変化することができる。動的機能キー割当てを可能にしながらアプリケーション開発を単純化することによって、アプリケーションは、特定のキープレスイベントおよびコンテキストの処理をキーパッドプロトコル１００に任せて、関係する機能または値に関連付けられたコマンドを使用して各キープレスイベントを報告するようにキーパッドプロトコルを構成することができる。たとえば、メディアプレーヤアプリケーションは、キーパッドプロトコルによって判断されたキープレスイベントのコンテキストに応じてキープレスイベントを「再生」ファンクションまたは「停止」ファンクションとして報告するようにキーパッドプロトコル１００を構成することができる。したがって、キーパッドプロトコル１００は、アプリケーション開発者にとって都合よいファンクション定義を使用してアプリケーションと通信することができる。そのような実装形態では、アプリケーションは、任意の所与の瞬間において特定のキーに割り当てられた値またはファンクションを判断することができず、その処理をキーパッドプロトコル１００に任せることがある。特定のキーに割り当てられたファンクションまたは値がキーパッドプロトコル１００に通知されるので、プロトコルは、キータッチイベントに応答してディスプレイにこの情報を通信することができる。キータッチイベントの処理をキーパッドプロトコル１００に割り振り、割り当てられた値または機能をディスプレイ上に明らかにすることによって、アプリケーションソフトウェアは、開発がより容易になり、キー割当てを明らかにするために他の処理に割り込むように構成する必要がなくなる。
【００３７】
キーパッドプロトコル１００はまた、特定のキーに割り当てられた値またはファンクションに関連付けられたグラフィックスをアプリケーションから受け取ることができる。そのようなグラフィックスは、キーパッドプロトコルによって生成される値／ファンクションリビールディスプレイにおいて使用できる。たとえば、アプリケーションが外国語の文字および数字をサポートする場合、割当て値をディスプレイに明らかにするときその外国語の文字および数字が使用できるように、そのようなグラフィックスのグラフィックスをアプリケーションによってキーパッドプロトコル１００に供給することができる。同様に、アプリケーションが、矢印が「再生」を示し、２本の縦棒が「停止」を示すなど、グラフィカルに示すことができるキーにファンクションを割り当てる場合、そのようなグラフィックスは、ファンクションについてテキスト形式で説明する代わりに、キーパッドプロトコル１００に供給し、ディスプレイに割当て機能を明らかにするために使用できる。モバイルデバイスがグラフィックユーザインターフェースを有するかまたはグラフィックユーザインターフェースに接続されている状況では、キーパッドプロトコル１００は、構成ユーザインターフェース表示グラフィックに対するそのようなグラフィックファイルを使用することができる。
【００３８】
上述のように、キーパッドプロトコル１００は、ハードウェアドライバ１１０からキータッチイベントを受け取り、ディスプレイ１９０と通信してタッチまたはニアタッチされたキーに関連付けられたファンクションを明らかにすることができる。代替的に、いくつかの実装形態では、キーパッドプロトコル１００は、アプリケーションがキータッチイベントを処理するように構成されている場合、ランタイム環境層１７０などを通してキータッチイベントをアプリケーション１８０に通信することもできる。たとえば、いくつかのアプリケーションは、タッチセンシティブキーパッドを有するモバイルデバイス用に書くことができ、したがって、図４を参照しながら上述したのと同様の方法でキータッチイベント通知を受信し、関連付けられた値またはファンクションをユーザインターフェースディスプレイ１９０に通信することが可能である。
【００３９】
キーパッドプロトコル１００は、アプリケーション開発者がアプリケーションソフトウェアを開発する際に利用できるＡＰＩの標準セットを含むことができる。したがって、キーパッドプロトコル層１００は、より高水準のソフトウェアのための標準的なソフトウェアインターフェースとして働くことができる。キーパッドプロトコル１００はまた、キーパッドドライバ１１０から受信されたキーイベント信号に基づいてタッチ（またはニアタッチ）あるいはプレスされた特定のキーを識別することを可能にするためにキーパッドドライバ１１０と直接インターフェースするように適合されたソフトウェアを含むことができる。キーパッドファンクションおよびインターフェース信号の性質は様々なタイプのキーパッド間で劇的に異なり得るので、キーパッドコントローラ層１０４は、そのような複雑さに適応し、アプリケーション層１８０から複雑さを隠すためのソフトウェア層を与える。
【００４０】
特定のキーに割り当てられたファンクションまたは値をキーパッドプロトコル１００に通知するために、アプリケーション１８０はキーパッド定義コマンドおよびグラフィックスを与えることができる必要がある。そのような定義およびグラフィック情報は、アプリケーション１８０によってキーパッドプロトコル１００に直接的に、またはランタイム環境層１７０を通して与えることができる。同様に、ユーザインターフェースソフトウェア１９０は、キーパッドプロトコル１００にキーパッド定義およびグラフィック構成情報を与えることができる。次いで、キーパッドプロトコル１００は、そのような定義およびグラフィックス情報を使用してキーパッド中の各キーに割り当てられた値またはファンクションを判断する。キーパッドプロトコル１００はまた、キーパッドハードウェアドライバ１１０にキーパッド構成コマンドを与えることができる。
【００４１】
アプリケーション１８０は、最初に開始されるとき、アプリケーションの機能に一致する動作用のキーパッドを構成するためにキーパッドプロトコル１００と相互作用することができる。このプロセスの例示的なステップを図８に示す。キーパッドプロトコル１００には、モバイルデバイスに組み込まれたキーパッドの機能および構成が通知され、また、モバイルデバイス１０に結合できる他のキーパッドの機能および構成が通知できる。
【００４２】
アプリケーション１８０が、ロードされるか、あるいは利用可能なキーパッドおよびその機能を判断する（たとえば、タッチセンシティブキーパッドであるかどうかを判断する）必要があるとき、ステップ２１０において、アプリケーションは、ＡＰＩを発行することなどによって、この情報をキーパッドプロトコル１００に要求する。アプリケーションは一般に多種多様なタイプのモバイルデバイス上で動作するように書かれているので、モバイルデバイスがただ１つのキーパッドを有する状況でも、アプリケーション１８０は、キーパッドの機能に関する情報を要求する必要があることがある。説明のために、このファンクションを実行するための「Ｑｕｅｒｙ＿Ｋｅｙｐａｄ」という名称の例示的なＡＰＩを各図に示す。このＡＰＩは、使用のために利用可能であるキーパッドならびにそれらの様々な機能（たとえば、構成可能なキーパッドまたはタッチスクリーン）をアプリケーション１８０に通知するように、単にキーパッドプロトコル１００に要求することができる。そのようなＱｕｅｒｙ＿Ｋｅｙｐａｄ  ＡＰＩを受信すると、ステップ２１２において、キーパッドプロトコル１００は、利用可能な（すなわち、アクティブにされ、接続された）キーパッドおよびそれらの機能をアプリケーションに通知する。アプリケーション開発者に共通のインターフェースを与えるために、利用可能な（１つまたは複数の）キーパッドをアプリケーションに通知するためのフォーマットを標準化することができる。情報のフォーマットは、図１１を参照しながら後述するデータ構造など、任意の適切なデータ構造とすることができる。
【００４３】
キーパッド利用可能性および構成情報を受信すると、ステップ２２０において、アプリケーションは構成情報をキーパッドプロトコルに供給する。この構成ステップは、アプリケーション開発者に共通のアプリケーションインターフェースを与えるためにＡＰＩの形態とすることができる。説明のために、このファンクションを実行するための「Ｋｅｙ＿Ｃｏｎｆｉｇ」および「Ｋｅｙｐａｄ＿Ｃｏｎｆｉｇ」という名称の例示的なＡＰＩを各図に示す。そのようなＡＰＩは、キーパッドのインデックス数を指定し、キーごとにキー構成情報を与えることができる。そのような構成情報は、アプリケーションが特定のキーイベントのために使用する識別子と、特定のキーまたはキーイベントに割り当てられたファンクションまたは値を記述する文字列と、キーファンクションをグラフィック的に表示するために使用できるグラフィックス情報とを含むことができる。そのようなキーごとのキー構成情報の例示的なフォーマットおよびコンテンツについては、図１２を参照しながら後述する。
【００４４】
キーパッドプロトコル１００は、ステップ２２２においてアプリケーション１８０からキーパッド構成情報を受信し、ステップ２２４において、選択されたキーパッドに関連付けられたグラフィックファイルまたは画像を受信する。ステップ２２６において、キーパッドプロトコル１００は、キーパッドに関連付けられた変換テーブルを構成する。そのような変換テーブルは、キーパッドプロトコル１００が、各キープレスイベントに応答してアプリケーション１８０に供給すべき適切なコマンド文字列またはアプリケーションキー識別子を判断するために使用できる。キーパッドプロトコル１００はまた、キータッチイベントに応答して割り当てられた値／ファンクションの表示を生成するために、変換テーブルに記憶された割り当てられた値またはファンクションを使用することができる。さらに、ステップ２３０において、キーパッドプロトコル１００は、アプリケーションの機能に適合させる必要がある場合、キーパッドをさらに構成することができる。キーパッド構成動作を完了すると、応答２３２において、キーパッドプロトコルは、キーパッドが動作準備完了であることをアプリケーション１８０に通知する。
【００４５】
図８に示したプロセスステップは、図９などに示すモバイルデバイス１０中の様々なハードウェアおよびソフトウェア層間で渡されるいくつかの電子メッセージにおいて実装できる。アクティブになると、または動作中に、メッセージ２１０ａにおいて、アプリケーション１８０は、Ｋｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩを発行することなどによって、モバイルデバイス上でアクティブにされた利用可能なキーパッドに関する情報を要求する。メッセージ２１０ａにおいて、アプリケーションはランタイム環境と直接通信し、メッセージ２１０ｂにおいて、ランタイム環境はＫｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩをキーパッドプロトコル１００に転送する。いくつかの実装形態では、アプリケーション１８０は、ランタイム環境層１７０に関与することなしにＫｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩをキーパッドプロトコル１００に直接送信することができる。Ｋｅｙｐａｄ＿Ｑｕｅｒｙを受信したことに応答して、メッセージ２１２ａにおいて、キーパッドプロトコル１００は利用可能な（１つまたは複数の）キーパッドおよびそれらの機能を送信する。メッセージ２１２ｂにおいて、これはランタイム環境層１７０に送信され、ランタイム環境層１７０はこの情報をアプリケーション１８０上に送信する。いくつかの実装形態では、キーパッドプロトコル１００は、ランタイム環境層１７０をバイパスしてアプリケーション１８０と直接通信することができる。図８を参照しながら上述したように、メッセージ２００において、Ｋｅｙｐａｄ＿Ｑｕｅｒｙの受信により、付属キーパッドについて問い合わせるようにキーパッドプロトコル１００に促すことができる。
【００４６】
キーパッドプロトコル１００から受信した情報を使用して、メッセージ２２０、２２４において、アプリケーション１８０は、キーパッドプロトコル１００にキーパッド構成情報を送信し、随意にグラフィックファイルを送信することができる。他のメッセージの場合と同様に、この情報は、ランタイム環境層１７０を通して送信するか、または図示のようにキーパッドプロトコル１００に直接送信できる。アプリケーション１８０はまた、メッセージ２３４において、様々なキーに割り当てられたアプリケーションおよびファンクションに一致する表示を提示するためにディスプレイ層にグラフィックファイルを供給する。
【００４７】
アプリケーション１８０によって供給されたキーパッド構成およびグラフィックファイルを使用して、キーパッドプロトコル１００は、プロセス２２６においてキー変換テーブルを構成し、メッセージ２３０においてキーパッドを構成する。さらに、メッセージ２２８において、キーパッドプロトコル１００はいくつかのキーパッド表示ファイルをディスプレイに供給する。たとえば、キーパッドが、構成可能なキー（たとえば、図１に示すキー２２〜２４）を含む場合、キーパッドプロトコル１００は、上記のそれらのキーを提示するためのラベルをディスプレイに通知することができる。代替的に、ディスプレイメッセージ２３４において、アプリケーション１８０は、構成可能なキー２２〜２４の上方に提示されるラベルを与えることができる。
【００４８】
図８および図９に示す処理は、新しいキーパッドがモバイルデバイス１０上でアクティブにされたときはいつも開始することもできる。たとえば、動作中であり、したがってすでに１つのキーパッドを構成しているアプリケーション１８０には、現在入手可能な一部の多機能セルフォン上に設けられた動作位置にユーザが小型キーボードをスライドまたは回転させることなどによって、新しいキーパッドがモバイルデバイス上でアクティブにされたことをシステムソフトウェアによって通知できる。上記のように、そのような第２のキーボードは、キーボードが配備された（すなわち、動作位置に移動された）ときにアクティブにできる（すなわち、ユーザ入力を受信することができるように構成できる）。第２のキーパッドがアクティブにされたというこの通知は、システムソフトウェア、またはアプリケーションが時々調べることができるメモリ中のシステムフラグセットによってアプリケーション１８０に通信される割込みの形態とすることができる。別のキーパッドがアクティブにされたことをアプリケーション１８０が知ったとき、ステップ２１０において、アプリケーションは、新たにアクティブにされたキーパッドの機能に関する情報を受信するためにＫｅｙｐａｄ＿Ｑｕｅｒｙ  ＡＰＩを再び呼び出すことができる。次いで、ステップ２２０において、アプリケーションは、図８を参照しながら上述した方法で新たにアクティブにされたキーパッドを選択し、構成する。したがって、キーパッドは、アプリケーション１８０の動作中の任意のポイントにおいてモバイルデバイス１０上でアクティブにできる。たとえば、特定のキーパッドがアクティブにされる前にアプリケーション１８０を開始することができる。アクティブになると、アプリケーションは、アプリケーションのファンクション用に利用可能でアクティブなキーパッドを構成する。次いで、ユーザが、特定のアプリケーションにより好適な第２のキーパッドをアクティブにすると、アプリケーション１８０は、新たにアクティブにされたキーパッドを選択し、そのキーパッドから受信したユーザ入力を使用して動作を継続することができる。このようにして、キーパッドプロトコル１００はフレキシブルな方法でキーパッドの構成を可能にし、アプリケーションに複雑さを加えることなしにキーファンクションリビール実施形態を実装することが可能になる。
【００４９】
アプリケーションはまた、選択を行う際に有用となり得る特定のキーパッドに関するより多くの情報を得るためにキーパッドプロトコル１００とインターフェースすることができる。電話アプリケーションに使用される電話キーパッド、テキストおよび電子メールアプリケーションに使用される小型キーボードなど、２つ以上のキーパッドまたはユーザインターフェースを含むモバイルデバイスでは、アプリケーション１８０は、アプリケーション機能に基づいてユーザ入力を受信するためにそれらのキーパッドのうちの１つを選択する必要があることがある。たとえば、メッセージングまたは電子メールアプリケーションなど、かなりのテキスト入力に関与するアプリケーションは、キーパッドがモバイルデバイス上で利用可能でありアクティブである場合、小型キーボードによって最も良くサポートでき、メディアプレーヤまたはゲームは、ほんのいくつかのキーしかアプリケーションによって使用されないので電話キーパッドによって最も良くサポートできる（たとえば、図１９〜図２５参照）。
【００５０】
アプリケーション１８０が特定のキーパッドの機能に関する情報を得ることができる例示的なプロセスを図１０に示す。アプリケーション１８０は、ＡＰＩ２１０（たとえば、ＩＤｙｎＫｅｙＰａｄ＿ＧｅｔＣａｐｓ）などを用いてキーパッドインデックスを識別し、その機能を要求することによって特定のキーパッドの機能に対する要求を発行することができる。たとえば、モバイルデバイスが２つのキーパッドを有する場合、図１１に示すように一方はインデックス「０」で識別し、他方はインデックス「１」によって識別できる。そのようなＡＰＩを受信したことに応答して、ステップ２００において、キーパッドプロトコル１００がまだその情報をメモリ中に（たとえば、図１１に示したものと同様のデータテーブル中に）有しない場合、キーパッドプロトコル１００は、キーパッドＩＤに関連付けられた機能をキーパッドドライバ１１０に要求する。次いで、ステップ２２０において、キーパッドプロトコル１００は受信した機能情報をアプリケーションに供給する。図示の例では、アプリケーションは特定のキーパッドの機能を要求しており、選択されたキーパッドが固定キーパッドである旨がアプリケーションに通知される。
【００５１】
利用可能なキーパッド機能に関する情報は、図１１などに示す標準化されたデータ形式のキーパッドプロトコル１００によってアプリケーションに提供できる。特定のキーパッドの識別情報および機能は、キーパッドを識別するインデックス３０２またはコードと、キーパッド機能３０４の概要と、キーパッド３０６において利用可能なキーの識別情報とを含むデータレコードパケット３１０、３１２中で送信できる。データレコード３１０、３１２など、利用可能な各キーパッドのために別々のデータレコードパケットを送信することができる。代替的に、キーパッドプロトコル１００は、各データレコードが、関連付けられたキーパッドの識別情報および機能を与えるデータフィールド３０２〜３０６を含んでいる、利用可能な各キーパッドのデータレコード３１０、３１２を含むキーパッド機能データテーブル３００を送信することができる。図１１に示すデータ構造は、一例として与えるものであり、いかなる形であれ、キーパッドプロトコルによってアプリケーションに与えることができるデータ形式または情報を限定するものではない。
【００５２】
アプリケーション１８０に供給されるキーパッド情報は、特定のタイプのキーパッドおよびその機能を通信するために、標準化されたキーセット識別子の形態とし、標準化されたキーパッド定義を使用することができる。代替的に、キーパッド機能データテーブル３００は、利用可能な個々のキーと、それらの個々の機能および構成とを記載することができる。キーパッド機能テーブル３００に示すエントリは、説明のために与えるにすぎず、典型的な実装形態では、アプリケーション１８０によって認識され、理解され得るバイナリコードの形態でデータを記憶する可能性がより高い。
【００５３】
アプリケーション１８０は、キータッチイベントおよびキープレスイベントを解釈することにおいて使用するために、およびアプリケーション１８０が処理できる信号またはデータ構造にそれらのイベントを変換することにおいて使用するために、様々なデータおよび構成パラメータをキーパッドプロトコル１００に提供することができる。キーパッドプロトコル１００が使用するそのような情報を記憶するためのデータ構造の一例を図１２に示す。そのようなデータ構造３２０は、利用可能なキーパッド上で各キーに関連付けられた任意の数のデータレコード３３４〜３４２から構成できる。参照しやすいように、第１のデータフィールド３２２は、キーパッドプロトコル１００が、タッチ、ニアタッチまたはプレスされている個々のキーを識別するために使用できるキーＩＤを含むことができる。このキーＩＤは、ドライバおよびキーパッドプロトコル１００が、同じキーＩＤを使用してキープレスイベントに関して通信するように、特定のキーパッド１２０に関連付けられたキーパッドドライバ１１０に通信できる。第２のデータフィールド３２４は、様々なアクティブにされたキーパッドの間でキーイベントを区別するためにキーパッドプロトコル１００が使用できるキーパッドＩＤを含むことができる。キーパッドＩＤデータフィールド３２４は、付属キーパッドの単純なシリアルリスト（たとえば、０、１、２など）を含むことができる。代替的に、キーパッドＩＤデータフィールド３２４は、キーパッド供給者または相手先商標製造会社（ＯＥＭ）によってキーパッドモデルまたは個々のキーパッドに割り当てられたグローバル一意のキーパッドＩＤを記憶することができる。たとえば、キーパッドＩＤは、ＯＥＭによってキーパッドに割り当てられたＭＡＣ  ＩＤとすることができる。とにかく、各キータッチおよびキープレスイベントを一意に識別するためにキーパッドＩＤとキーＩＤの組合せを使用することができる。データ構造３２０はまた、アプリケーションキーＩＤ３２６、および割り当てられたファンクションの説明を含むテキスト文字列など、特定のキーパッドを使用してアプリケーションによって供給される情報を含むことができる。そのような情報は、特定のキープレスイベントに応答してアプリケーション１８０が受信する必要がある特定のキーＩＤをキーパッドプロトコル１００に通知するために、アプリケーション１８０によって供給できる。したがって、アプリケーション１８０は、アプリケーション１８０がそのファンクションにおいて使用するキーＩＤの任意のセットを定義し、プロトコルが特定のキープレスイベントをアプリケーション１８０に適切に通知することができるように、それらの任意のキーＩＤをキーパッドプロトコル１００に供給することができる。このようにして、キーパッドレイアウトおよび特定のキーがキーパッドごとに異なっても、キーパッドプロトコル１００が必要な変換を行うことで、アプリケーションソフトウェアを標準的なプロセスを用いて機能するように書くことができる。キーパッドプロトコル１００は、機能説明文字列３２８を使用して、キータッチイベントに応答してテキストキーファンクションリビールディスプレイを生成することがで���る。
【００５４】
キーパッド変換データ構造３２０はまた、キーに割り当てられたファンクションに関連付けられたグラフィックス（データフィールド３３２）を含むことができる。アプリケーションによって割り当てられたキー機能をグラフィカルに示すために、アプリケーション１８０は、キータッチイベントに応答して表示すべきグラフィックファイルを供給することができる。キータッチイベントに応答してグラフィックキーファンクションリビールディスプレイを生成するために、キーパッドプロトコル１００は、グラフィックファイル３３２を使用することができる。グラフィックスをキーパッド変換データ構造３２０内に記憶するよりはむしろ、データフィールドは、特定のキーに関連付けられたグラフィックファイルを記憶したメモリロケーションへのポインタ（すなわち、メモリアドレス）を含んでよい。そのようなグラフィックスは、矢印（左、右、上、下またはカーブ）、円、数学演算記号など、特定のキーファンクションを通信する単純なシンボルの形態とすることができる。
【００５５】
キーパッドプロトコル１００を使用してキーパッドを構成するために、アプリケーション１８０は、一連のデータレコードの形態でキーパッド変換データ構造３２０に記憶すべき情報の一部を供給するだけでよい。そのようなデータレコードは、キーパッドプロトコルが認識することができる標準的なキー識別子にリンクさせることができる。たとえば、構成されているキーパッドが標準的な１２個のキー数字キーパッドである場合、アプリケーション１８０はその標準的な数値によってキーを識別することができる。その識別子を使用して、アプリケーション１８０は、ファンクション説明文字列および／またはファンクショングラフィックまたはファイルポインタとともに、キープレスイベントをアプリケーションに通知するためにキーパッドプロトコル１００が使用することができるアプリケーション識別子キーＩＤを供給することができる。キーパッドプロトコル１００は、そのようなデータレコードを受信し、図１２などに示すデータテーブルに記憶することができる。
【００５６】
キーパッド変換および構成データは、多種多様なデータ構造でメモリに記憶できることを当業者なら諒解されよう。図１２に示すデータ構造は、例示の目的のためにすぎず、いかなる形でも開示または特許請求の範囲の範囲を限定するものではない。
【００５７】
キータッチイベントおよびキープレスイベントの処理フローを図１３に示す。キーがタッチ、ニアタッチまたはプレスされると、そのイベントがキーパッドハードウェア１２０によって検出され、キーパッドハードウェア１２０はキーパッドドライバソフトウェア１１０にシグナリングする。次いで、キーパッドドライバ１１０は、キーパッドプロトコル１００のキーパッドコントローラ１０４部分にキータッチまたはキープレスイベントを通知する。これは、キーパッドコントローラ１０４に送信される信号などによって直接的に達成するか、あるいは、システムソフトウェアが周期的に認識し、キータッチまたはキープレスイベント情報がキーパッドドライバによって供給されるように要求するコールバックフラグまたは割込みを設定することなどによって間接的に達成できる。
【００５８】
キーがキーパッド１２０上でタッチ、ニアタッチまたはプレスされると、キー回路およびそのキーパッドドライバ１１０は、様々な方法で、たとえば、割込みを行うか、またはシステムフラグを設定するために使用される特定のレジスタまたはメモリの部分にデータを記憶することなどによってキーパッドプロトコル１００にイベントを通知することができる。たとえば、図１４に示すように、プレスされたキーのキーＩＤとともに、キーがタッチ、ニアタッチまたはプレスされたことを示すための単純なデータ構造３５０をメモリに記憶することができる。たとえば、そのようなデータ構造は、キープレスタッチまたはキープレスイベントが発生したかどうかを判断するためにキーパッドプロトコルが周期的に調べることができる２つ以上のフラグ３５２、３５４を含むことができる。第１のフラグ３５２は、設定される（すなわち、メモリフィールド３５２に「１」が記憶される）と、キータッチまたはプレスイベントが発生し、対応するキーＩＤがデータフィールド３５６などの特定のメモリフィールドに記憶されたことを示すことができる。第２のフラグ３５４は、その設定によって、イベントがキータッチイベントであるか（たとえば、メモリフィールド３５４に「０」が記憶されることによって示される）、またはキープレスイベントであるか（たとえば、メモリフィールド３５４に「０」が記憶されることによって示される）を示すことができる。複数のキーパッド間でキープレスイベントを一意に識別するために、キーパッドＩＤまたはインデックスデータフィールド３５８とともにキーＩＤをキーＩＤデータフィールド３５６に記憶することができる。キープレスイベントに関係する他の情報を示すために追加のフラグを設定することができる。たとえば、キープレスイベントが、小型キーボード上に提示される「ｓｈｉｆｔ」、「ｃｏｎｔｒｏｌ」または「ａｌｔ」キーなどの別のキーの同時タッチ、ニアタッチ、またはプレスを含むときを示すように、フラグ（たとえば、フラグ３５４）を設定することができる。別の例として、キープレスイベントがキーリリースによって先行されなかった（キーが、延長された継続時間の間、下に保持されていることを示す）ことを示すように別のフラグを設定することができる。キーパッドプロトコル１００によって解釈され得るキータッチまたはキープレスイベントに関する情報を通信するために、任意の数の追加のフラグおよびデータフィールドを、割込み、レジスタまたはデータ構造中に含めることができる。
【００５９】
キーパッドプロトコル１００にキータッチイベントが通知されると、キーパッドプロトコル１００は、キータッチイベント情報を、ディスプレイのキーファンクションリビール部分中に提示できるファンクション説明に変換することができる。同様に、キーパッドプロトコル１００にキープレスイベントが通知されると、キーパッドプロトコル１００は、キープレスイベントを、アプリケーションが解釈できる情報に変換することができる。キータッチイベントおよびキープレスイベントを受信することにおいてキーパッドプロトコル１００によって実装できる方法ステップの一例を図１５に示す。上述のように、キーがプレスされると、ステップ２４０において、イベントがキーパッドハードウェアによって感知され、関連するキーパッドドライバにシグナリングされる。同様に、キーがプレスされると、ステップ２４１において、イベントがキーパッドハードウェアによって感知され、関連するキーパッドドライバにシグナリングされる。ステップ２４２において、キーパッドドライバは、キータッチまたはキープレスイベントを、（たとえば、図１４を参照しながら上述した）信号、割込み、記憶データまたは他の形式の情報に変換し、キーパッドプロトコルに供給する。キーパッドドライバ１１０からキータッチまたはキープレスイベント信号を受信すると、ステップ２４４において、キーパッドプロトコル１００は、メモリからまたはキーパッドドライバによって与えられた信号から、キーパッドＩＤおよびキーＩＤとともに、イベントをキータッチまたはキープレスイベントとして区別する１つまたは複数のフラグ値を取り出す。次いで、テスト２４５において、キーパッドプロトコル１００は、イベントをタッチイベントとして処理すべきかまたはプレスイベントとして処理すべきかを判断するためにフラグ値（たとえば、フラグ３５４）をテストする。
【００６０】
テスト２４５においてイベントがキープレスイベントであると判断された場合、ステップ２４６において、キーパッドプロトコル１００は、キーＩＤおよびキーパッドＩＤを使用してキー変換テーブル３２０内の対応するデータレコードの位置を特定する。対応するデータレコードに記憶されたデータを使用して、ステップ２４８において、キーパッドプロトコル１００は、特定のキープレスイベントに対応するアプリケーション１８０によって指定されたアプリケーションＩＤを取り出す。その情報を使用して、ステップ２５０において、キーパッドプロトコルはアプリケーション１８０に通信するための通知オブジェクトを作成する。最後に、ステップ２５２において、キーパッドプロトコルはキープレス通知オブジェクトをアプリケーション１８０に送信する。通知オブジェクトを送信する際に、キーパッドプロトコル１００は、アプリケーション１８０にオブジェクトを直接送信するか、またはオペレーティングシステムまたはランタイム環境１７０を通して送信することができる。
【００６１】
テスト２４５においてイベントがキータッチイベントであると判断された場合、キーパッドプロトコル１００は、ステップ２７２においてキーＩＤおよびキーパッドＩＤを使用してキー変換テーブル３２０内の対応するデータレコードの位置を特定し、ステップ２７４においてキーに関連付けられたファンクション説明テキストまたはグラフィック情報を取り出す。そのテキストまたはグラフィック情報を使用して、ステップ２７６において、キーパッドプロトコルは、ディスプレイ内のキーファンクションリビールウィンドウ内に提示するためにディスプレイをフォーマッティングするかまたはディスプレイオブジェクトを生成する。最後に、ステップ２７８において、キーパッドプロトコル１００は、キーファンクションリビールテキスト／グラフィックまたはディスプレイオブジェクトをディスプレイに送信する。キーファンクションリビールテキスト／グラフィックまたはディスプレイオブジェクトをディスプレイに送信する際に、キーパッドプロトコル１００は、情報をディスプレイに直接送信するか、またはディスプレイ上の画像の生成を構成し、管理するディスプレイ層に情報を供給することができる。
【００６２】
キープレスイベントを受信し、処理するプロセスは、図１６に示すようにモバイルデバイス１０中の様々なハードウェアおよびソフトウェア層の間の一連のメッセージで達成できる。
【００６３】
キーがタッチまたはニアタッチされると、メッセージ２４１において、キーパッドはキーパッドドライバにキータッチイベント信号を送信する。今度は、メッセージ２４２ａにおいて、キーパッドドライバは、キーパッドＩＤおよびキーＩＤとともにキータッチイベントフラグをキーパッドプロトコルに送信する。上述のように、このメッセージは、キーパッドプロトコルが周期的にアクセスするかあるいは設定フラグの検出時または割込みの受信時にアクセスするメモリロケーションに保存される情報の形態とすることができる。この情報を使用して、キーパッドプロトコルは、処理ステップ２４４および２７２〜２７６においてキータッチ通知オブジェクトを生成し、次いでメッセージ２７６においてキーファンクションリビールテキストまたはグラフィックをディスプレイに送信する。
【００６４】
キーがプレスされると、メッセージ２４０ａにおいて、キーパッドはキーパッドドライバにキープレスイベント信号を送信する。今度は、メッセージ２４２ｂにおいて、キーパッドドライバは、キーパッドＩＤおよびキーＩＤをキーパッドプロトコルに送信する。上述のように、このメッセージは、キーパッドプロトコルが周期的にアクセスするかあるいは設定フラグの検出時または割込みの受信時にアクセスするメモリロケーションに保存される情報の形態とすることができる。この情報を使用して、キーパッドプロトコルは、処理ステップ２４４および２４６〜２５０においてキープレス通知オブジェクトを生成し、次いでメッセージ２５２ａにおいてランタイム環境にキー値を送信し、メッセージ２５３ａにおいてアプリケーション１８０に中継する。代替的に、キーパッドプロトコルはキー値をアプリケーション１８０に直接通信することができる。さらに、キーパッドプロトコル１００は、メッセージ２５４ａにおいて、ディスプレイがキープレスイベントを反映し得る（たとえば、プレスされたキーの値をディスプレイ上に提示する）ようにキー値またはグラフィックをディスプレイに送信することができる。
【００６５】
図１６中のメッセージ２４０ｂ〜２５４ｂに示すように後続のキープレスイベントは同様に処理される。このようにして、各キープレスイベントに関して、キーパッドプロトコル１００は、キーパッドドライバ１１０からメッセージを受信し、変換されたキー値情報をアプリケーション１８０およびディスプレイに供給する。
【００６６】
いくつかの状況では、キープレスイベントは、後続のキープレスのキー値またはファンクションを再定義するようにアプリケーション１８０に促すことができる。たとえば、アプリケーション１８０がＭＰ３プレーヤなどのメディアプレーヤであり、第１のキープレスイベントがアプリケーションによってオーディオ再生の開始として解釈された（すなわち、第１のキープレスが「再生」ファンクションを有した）場合、アプリケーションは、後続のプレスがメディア再生の一時停止または停止として解釈される（すなわち、第２のキープレスが「停止」ファンクションを有する）ように同じキーの機能を変更することができる。図１６は、この潜在力を、メッセージ２５６においてアプリケーション１８０がキー再定義コマンド（すなわち、新しい構成情報）をキーパッドプロトコル１００に送信できることを示すことによって反映している。このメッセージは、同様のキー再定義メッセージ２５７を用いてランタイム環境層１７０によってキーパッドプロトコル１００に中継される。キー再定義メッセージを受信すると、プロセス２５８において、キーパッドプロトコル１００は、変更されたキー構成情報を反映するようにキー変換テーブル３２０を再構成する。次いで、メッセージ２４１および２４２ａにおいてキーパッドプロトコルに通信される後続のキータッチイベントは、処理ステップ２４６〜２５０ｂにおいて、修正されたキー変換テーブル３２０に従ってキーパッドプロトコル１００によって解釈され、それにより、メッセージ２７６において、再定義されたファンクションがキーファンクションリビールディスプレイ中に提示される。同様に、メッセージ２４０ｂおよび２４２ｂにおいてキーパッドプロトコルに通信される後続のキープレスイベントは、処理ステップ２４６〜２５０ｂにおいて、修正されたキー変換テーブル３２０に従ってキーパッドプロトコル１００によって解釈される。再定義されたキー値またはファンクションは、メッセージ２５２ｂおよび２５３ｂにおいてアプリケーションに送信される。また、再定義されたキー値は、メッセージ２５４ｂにおいてディスプレイに送信される。
【００６７】
図１７〜２５に示すいくつかの例を通して、様々な本実施形態の利点をさらに説明することができる。図１７を参照すると、モバイルデバイス１０は、多くのユーザにとって適切であろう数字０〜９を表示しているディスプレイキー４０２をもつセルフォンとすることができる。そのようなキーパッドは、一般に、（たとえば、ＳＭＳメッセージを入力するために）テキストに入力する際に有用となるように、選択されたキーに関連付けられた３つまたは４つの文字を含む。キー（たとえば、図１７に示す「２」キー）にタッチまたはニアタッチすることによって、ディスプレイ１３のキーファンクションリビールウィンドウ４０中でキーの値をユーザに迅速に通知することができる。しかしながら、ユーザが非西洋の数字および文字を使用する言語を話し、読む場合、それらのユーザは、数字および文字が、異なるアルファベットで提示されたキーに関連付けられるように選択することができる。そのような変更は、様々な実施形態を使用して容易に実装でき、各キーの（１つまたは複数の）割当て値は、図１８に示すように、キーのタッチまたはニアタッチとともに、選択されたアルファベットおよび／または数字でキーファンクションリビールウィンドウ４０中に明らかにされる。キーパッドプロトコル１００を用いない実施形態では、異なるアルファベットおよび／または数字はアプリケーションソフトウェア内に実装される。しかしながら、キーのタッチまたはニアタッチに応答して異なるスクリプト中のキー値を提示することは、モバイルデバイス１０上で動作するアプリケーションソフトウェア（たとえば、電話アプリケーション）を実質的に変更する必要なしに、キーパッドプロトコル実施形態を使用して達成できる。この変更は、単に、たとえば、キーグラフィックスの異なるセットをキー変換テーブル３２０に記憶することによって達成できる。そのようなモバイルデバイスは、数字が異なる形式で提示される世界のいくつかの部分においてより有用となり得る。
【００６８】
上記の実施形態では、キーがタッチまたはニアタッチされたままである限り、ディスプレイ上にキーファンクションリビールディスプレイを維持することができる。代替的に、ユーザがプリセット継続時間の前にキーにタッチするのを止めるか、あるいはプリセット継続時間を越えてキーにタッチまたはニアタッチし続ける場合でも、キータッチまたはニアタッチに続くプリセット継続時間の間、キーファンクションリビールディスプレイを維持することができる。この代替実装形態を達成するために、キータッチイベントは、キーファンクションリビールディスプレイがどのくらいの時間残っているかを判断するタイマを始動することもできる。
【００６９】
様々な実施形態の柔軟性および有用性は、モバイルデバイスが、アプリケーションの動作をユーザにとってより直観的にするために非アルファベットユーザインターフェースを利用することができるアプリケーションを動作させているときに特に明らかである。たとえば、図１９に、様々な実施形態の利益をもたないメディアプレーヤアプリケーションを実行しているモバイルデバイス１０を示す。メディアプレーヤアプリケーションでは、キーパッドは、ボリューム制御、メディアの再生、停止または巻き戻しなど、メディアプレーヤファンクションに関連付けられたユーザコマンドを受信するように構成できる。固定キー２０をもつモバイルデバイスでは、メディアプレーヤアプリケーションはファンクションを様々なキーに割り当てなければならない。キー割当てをユーザに通知するために、キーを様々なアプリケーションファンクションに関連付ける表示を提示することができる。図示の例では、キーメニューがモバイルデバイスディスプレイ１３中に提示されている。この図が示すように、キーファンクションの表示がディスプレイ１３領域のかなりの量を占め、したがって同時に表示できるメディアに関する情報量が減少する。したがって、そのようなアプリケーションでは、ユーザは、キーファンクション割当てを記憶し、必要なときにキーファンクションメニューを再び呼び出すことを期待される。
【００７０】
様々な実施形態を使用して、図２０および図２１に示すようにディスプレイ１３を遮るメニューを呼び出す必要なしに、様々なキーに割り当てられたファンクションをユーザに通知することができる。ユーザは、ディスプレイ１３のキーファンクションリビールウィンドウ４０中で現在割り当てられているファンクションを確認するために、タッチセンシティブキーパッド３０上のキーにタッチまたはニアタッチするだけでよい。図２０に示す例では、ユーザが「３」キーにタッチまたはニアタッチすると、ディスプレイ１３のキーファンクションリビールウィンドウ４０中に割り当てられたファンクション「早送り」を表示するようにモバイルデバイス１０に促す。同様に、図２１に示す例では、ユーザが「４」キーにタッチまたはニアタッチすると、ディスプレイ１３のキーファンクションリビールウィンドウ４０中に割り当てられたファンクション「一時停止」を表示するようにモバイルデバイス１０に促す。タッチセンシティブキーパッドおよび本実施方法を用いて、図２０および図２１に示すようにメディアプレーヤディスプレイを遮ることなしに、キーに割り当てられたファンクションをユーザに通知することができる。割り当てられたファンクションをテキスト（すなわち、「早送り」または「一時停止」）として明らかにする代わりに、二重矢印が早送りを表し、または２本の縦棒が「一時停止」を表すなど、ファンクションをグラフィカルに明らかにすることができる。
【００７１】
図２２〜図２５に、ゲームアプリケーションに関係する別の例を示す。図２２を参照すると、従来型の固定ラベルキーを有するモバイルデバイス１０上で動作するゲームアプリケーションは、ディスプレイ１３に示すように特定の従来型のキー２０に対するメニューマッピングキーファンクションを提供する必要がある。ファンクションメニューは、同時ゲームプレイを可能にするのにはディスプレイ１３のあまりにも多くを占有するので、ユーザはキーファンクションを記憶することを期待される。
【００７２】
様々な実施形態を使用して、図２３〜図２５に示すようにディスプレイ１３を遮るメニューを呼び出す必要なしに、様々なキーに割り当てられたゲームファンクションをユーザに通知することができる。割り当てられたキーファンクションのメニューを提示する必要なしに、図２３に示すようにゲームグラフィックスを提示するために全ディスプレイ１３を使用することができる。ディスプレイ１３のキーファンクションリビールウィンドウ４０中で現在割り当てられているファンクションを確認するために、ユーザが単にタッチセンシティブキーパッド３０上のキーにタッチまたはニアタッチすることによって、キーに割り当てられたゲームファンクションをユーザに通知することができる。図２４に示す例では、ユーザが「１」キーにタッチまたはニアタッチすることにより、ディスプレイ１３のキーファンクションリビールウィンドウ４０中に割り当てられたファンクション「左折」を表示するようにモバイルデバイス１０に促す。同様に、図２５に示す例では、ユーザが「５」キーにタッチまたはニアタッチすることにより、ディスプレイ１３のキーファンクションリビールウィンドウ４０中に割り当てられたファンクション「ギアシフト」を表示するようにモバイルデバイス１０に促す。
【００７３】
様々な実施形態は、記載の方法のうちの１つまたは複数を実装するように構成されたソフトウェア命令を実行するプロセッサ１１によって実装できる。そのようなソフトウェア命令は、デバイスのオペレーティングシステムソフトウェア、オペレーティングシステムによって実装される一連のＡＰＩとして、または一実施方法を実装するコンパイルされたソフトウェアとしてメモリ１２に記憶できる。さらに、ソフトウェア命令は、ランダムアクセスメモリ１２、ＳＤメモリチップなど、モバイルデバイス１０にプラグ接続されるメモリモジュール、ＵＳＢ接続可能な外部メモリ（たとえば、「フラッシュドライブ」）などの外部メモリチップ、読取り専用メモリ（ＥＥＰＲＯＭなど）、ハードディスクメモリ、フロッピー（登録商標）ディスク、および／またはコンパクトディスクを含む、任意の形態の有形プロセッサ可読メモリに記憶できる。
【００７４】
本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実装できることを当業者なら諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００７５】
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施するか、プロセッサによって実行されるソフトウェアモジュールで実施するか、またはその２つの組合せで実施することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意の他の形態の記憶媒体のいずれかとすることができるプロセッサ可読メモリ中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化することができる。プロセッサおよび記憶媒体はＡＳＩＣ中に常駐することができる。ＡＳＩＣはユーザ端末またはモバイルデバイス中に常駐することができる。代替として、プロセッサおよび記憶媒体は、ユーザ端末またはモバイルデバイス中に個別構成要素として常駐することができる。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび／またはアクションは、コンピュータプログラム製品に組み込むことができる、機械可読媒体および／またはコンピュータ可読媒体上のコードおよび／または命令の１つまたは任意の組合せ、あるいはそのセットとして常駐することができる。
【００７６】
様々な実施形態の上記の説明は、当業者が本発明を実施または使用できるようにするために提供したものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用できる。したがって、本発明は、本明細書で示した実施形態に限定されるものでなく、代わりに、特許請求の範囲は、本明細書で開示した原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下の記載は、実質的に出願当初の特許請求の範囲の記載に一致するものである。
［１］
コンピューティングデバイス上で動作しているアプリケーションによってキーに割り当てられたファンクションを明らかにするための方法であって、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生することと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断することと、
前記割り当てられたキー値またはファンクションの表示を提示することと
を備える方法。
［２］
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信することと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信することと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断することと
をさらに備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
［１］に記載の方法。
［３］
前記キーパッド構成命令をキーパッド変換テーブルに記憶することをさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、［２］に記載の方法。
［４］
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶することと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと
をさらに備える、［２］に記載の方法。
［５］
前記アプリケーションにキーパッド機能を通知することをさらに備える、［４］に記載の方法。
［６］
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信することと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと
を備える、［２］に記載の方法。
［７］
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信することと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示することと
をさらに備える、［３］に記載の方法。
［８］
前記コンピューティングデバイスがモバイルデバイスである、［１］に記載の方法。
［９］
前記コンピューティングデバイスがセルラー電話である、［１］に記載の方法。
［１０］
プロセッサと、
前記プロセッサに結合されたディスプレイと、
前記プロセッサに結合され、キーを含む、タッチセンシティブキーパッドと、
前記プロセッサに結合されたメモリと
を備える、コンピューティングデバイスであって、
前記プロセッサが、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に表示するステップと
を実行するためのソフトウェア命令を用いて構成された
コンピューティングデバイス。
［１１］
前記プロセッサが、
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
をさらに実行するためのソフトウェア命令を用いて構成され、
前記キーパッドプロトコルが、前記ディスプレイ上の前記割り当てられたキー値またはファンクションの前記提示をフォーマッティングする、
［１０］に記載のコンピューティングデバイス。
［１２］
前記プロセッサが、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらに実行するためのソフトウェア命令を用いて構成され、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、［１１］に記載のコンピューティングデバイス。
［１３］
前記プロセッサが、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、［１１］に記載のコンピューティングデバイス。
［１４］
前記プロセッサが、前記アプリケーションにキーパッド機能を通知するステップをさらに実行するためのソフトウェア命令を用いて構成された、［１３］に記載のコンピューティングデバイス。
［１５］
前記プロセッサが、
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、［１１］に記載のコンピューティングデバイス。
［１６］
前記プロセッサが、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に提示するとき、前記グラフィックを提示するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、［１２］に記載のコンピューティングデバイス。
［１７］
前記コンピューティングデバイスがモバイルデバイスである、［１０］に記載のコンピューティングデバイス。
［１８］
前記コンピューティングデバイスがセルラー電話である、［１０］に記載のコンピューティングデバイス。
［１９］
キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するステップと
をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した有形記憶媒体。
［２０］
前記有形記憶媒体が、
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
［１９］に記載の有形記憶媒体。
［２１］
前記有形記憶媒体が、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、［２０］に記載の有形記憶媒体。
［２２］
前記有形記憶媒体が、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、［２０］に記載の有形記憶媒体。
［２３］
前記有形記憶媒体が、前記アプリケーションにキーパッド機能を通知するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、［２２］に記載の有形記憶媒体。
［２４］
前記有形記憶媒体が、
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたソフトウェア命令を有する、［２０］に記載の有形記憶媒体。
［２５］
前記有形記憶媒体が、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、［２１］に記載の有形記憶媒体。
［２６］
前記有形記憶媒体が、モバイルデバイスプロセッサによって読取り可能であり、前記記憶媒体が、前記モバイルデバイスプロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、［２０］に記載の有形記憶媒体。
［２７］
前記有形記憶媒体が、セルラー電話プロセッサによって読取り可能であり、前記記憶媒体が、前記セルラー電話プロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、［２８］に記載の有形記憶媒体。
［２８］
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するための手段と、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するための手段と
を備えるコンピューティングデバイス。
［２９］
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するための手段と、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するための手段と、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するための手段と
をさらに備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの表示を提示するための前記手段によって、前記提示をフォーマッティングする、
［２８］に記載のコンピューティングデバイス。
［３０］
前記キーパッド構成命令をキーパッド変換テーブルに記憶するための手段をさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、
［２９］に記載のコンピューティングデバイス。
［３１］
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するための手段と、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と
をさらに備える、［２９］に記載のコンピューティングデバイス。
［３２］
前記アプリケーションにキーパッド機能を通知するための手段
をさらに備える、［３１］に記載のコンピューティングデバイス。
［３３］
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するための手段と、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と
をさらに備える、［２９］に記載のコンピューティングデバイス。
［３４］
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するための手段と
をさらに備える、［３０］に記載のコンピューティングデバイス。
［３５］
前記コンピューティングデバイスがモバイルデバイスである、［２８］に記載のコンピューティングデバイス。
［３６］
前記コンピューティングデバイスがセルラー電話である、［２８］に記載のコンピューティングデバイス。
【図１】
0005461542.tif 000002
【図２Ａ】
0005461542.tif 000003
【図２Ｂ】
0005461542.tif 000004
【図３】
0005461542.tif 000005
【図４】
0005461542.tif 000006
【図５】
0005461542.tif 000007
【図６】
0005461542.tif 000008
【図７】
0005461542.tif 000009
【図８】
0005461542.tif 000010
【図９】
0005461542.tif 000011
【図１０】
0005461542.tif 000012
【図１１】
0005461542.tif 000013
【図１２】
0005461542.tif 000014
【図１３】
0005461542.tif 000015
【図１４】
0005461542.tif 000016
【図１５】
0005461542.tif 000017
【図１６】
0005461542.tif 000018
【図１７】
0005461542.tif 000019
【図１８】
0005461542.tif 000020
【図１９】
0005461542.tif 000021
【図２０】
0005461542.tif 000022
【図２１】
0005461542.tif 000023
【図２２】
0005461542.tif 000024
【図２３】
0005461542.tif 000025
【図２４】
0005461542.tif 000026
【図２５】
0005461542.tif 000027