説明

固定キーパッド上のファンクション割当てを明らかにするための方法およびシステム

方法およびコンピューティングデバイスは、コンピューティングデバイス上で動作しているアプリケーションによってキーパッドまたはキーボード中の特定のキーに割り当てられた値またはファンクションを明らかにする機能を与える。キーのタッチまたはニアタッチは、タッチまたはニアタッチされたキーに現在割り当てられている値またはファンクションの提示または表示を促す。キーファンクション割当ては、表示中の他のグラフィックおよびテキストを妨げないように表示の一部分に提示できる。タッチまたはニアタッチされたキーに割り当てられたファンクションまたは値の表示を発生するためのプロセスは、アプリケーションからキー構成を受信するキーパッドプロトコルによって実行できる。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2007年7月16日に出願された、「Dynamically Configurable Keypad」と題する米国特許仮出願第60/950,112号の優先権の利益を主張する。
【0002】
本発明は、一般に、モバイルコンピュータシステムに関し、より詳細には、セルラー電話などのモバイルデバイス上の特定のキーに割り当てられたファンクションを明らかにするための方法およびシステムに関する。
【背景技術】
【0003】
セルラー電話など、モバイル電子デバイス(モバイルデバイス)の使用は、それらの携帯性、接続性および高まり続ける計算能力により増加し続けている。モバイルデバイスが精巧化するにつれて、アプリケーションソフトウェアの多様性および精巧性が高まり、モバイルデバイスは多目的生産性ツールに変わりつつある。しかし、モバイルデバイスの有用性およびそれらの適用例は、ユーザインターフェースに利用可能な小さいエリアによって限定される。従来のセルラー電話は、固定された構成の簡単なキーパッドを含んでいた。固定キーパッドを有するモバイルデバイスにより多くの機能を与えるために、アプリケーションソフトウェアは、頻繁に、キー上のラベル(たとえば、1、2など)とは異なるキーにファンクションを割り当てる。しかしながら、この解決策では、ユーザは、各キーに割り当てられた機能についてよくわからないままになることがある。
【発明の概要】
【0004】
様々な実施システムおよび方法は、キーの上または近くのユーザの指またはポインティングデバイスの位置に基づいて、コンピューティングデバイスのキーに割り当てられた値またはファンクションを明らかにする。コンピューティングデバイス上で実行されているアプリケーションソフトウェアは、キーに割り当てられた現在の意味あるいは値またはファンクションを判断する。キーの意味は表示エリアの一部分に提示される。キーの現在の意味は、システムソフトウェアの一部として動作しているキーパッドプロトコルによって管理できる。アプリケーションは、キーがタッチまたはニアタッチされたことに応答して、ディスプレイ上に提示されたキーの現在の意味を定義するキーファンクションまたは値の記述を制御する。
【0005】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および下記の詳細な説明とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【0006】
【図1】様々な実施形態で使用できる典型的なセルフォンの構成要素ブロック図。
【図2A】タッチセンシティブキーパッドの一実施形態の側断面図。
【図2B】タッチセンシティブキーパッドの一実施形態の平面図。
【図3】タッチセンシティブキーパッドの別の実施形態の断面図。
【図4】標準的な従来技術のセルフォンのハードウェア/ソフトウェアアーキテクチャ図。
【図5】一実施形態のプロセスフロー図。
【図6】図5に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図7】一実施形態のハードウェア/ソフトウェアアーキテクチャ図。
【図8】一実施形態によって可能にされる機能の一部分のプロセスフロー図。
【図9】図8に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図10】一実施形態の機能の一部分のプロセスフロー図。
【図11】一実施形態において使用するのに好適なデータ構造を示す図。
【図12】一実施形態によるキー変換テーブルのデータ構造を示す図。
【図13】一実施形態の機能の一部分のプロセスフロー図。
【図14】一実施形態によるキープレスイベント割込みのデータ構造を示す図。
【図15】一実施形態の機能の一部分のプロセスフロー図。
【図16】図15に示すプロセスステップに関連するメッセージのメッセージ流れ図。
【図17】キーパッドキーに割り当てられた代替フォントを明らかにするための実施形態を実装するモバイルデバイスを示す図。
【図18】キーパッドキーに割り当てられた代替フォントを明らかにするための実施形態を実装するモバイルデバイスを示す図。
【図19】メディアプレーヤアプリケーションが動作している状態の従来のセルフォンを示す図。
【図20】ディアプレーヤアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図21】メディアプレーヤアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図22】ゲームアプリケーションが動作している状態の従来のセルフォンを示す図。
【図23】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図24】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【図25】ゲームアプリケーションによってキーに割り当てられた機能を明らかにするための実施形態を採用したセルフォンを示す図。
【発明を実施するための形態】
【0007】
様々な実施形態について添付の図面を参照しながら詳細に説明する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
【0008】
本明細書中の「例示的」という用語は、本明細書では「例、事例、または例示として役立つこと」を意味するために使用する。本明細書に「例示的」と記載されたいかなる実施形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【0009】
本明細書で使用する「コンピューティングデバイス」という用語は、ディスプレイおよびキーボードまたはキーパッドを含むプログラマブルコンピュータデバイスを指す。実施形態の説明では、「モバイルデバイス」に言及するが、「モバイルデバイス」は、様々な実施形態を実装するコンピューティングデバイスの1つのタイプにすぎない。本明細書で使用する「モバイルハンドセット」および「モバイルデバイス」という用語は互換的に使用され、様々なセルラー電話、個人情報端末(PDA)、パームトップコンピュータ、ワイヤレスモデムをもつラップトップコンピュータ、ワイヤレス電子メール受信機(たとえば、BlackBerry(登録商標)およびTreo(登録商標)デバイス)、セルラー電話、およびマルチメディアインターネット対応セルラー電話(たとえば、iPhone(登録商標))、および同様のコンピューティングデバイスのうちのいずれか1つを指す。モバイルデバイスは、以下で図4を参照しながらより十分に説明するように、プログラマブルプロセッサおよびメモリを含むことができる。好ましい一実施形態では、モバイルデバイスは、セルラー電話ネットワークを介して通信することができるセルラーハンドヘルドデバイス(たとえば、セルフォン)である。ただし、以下の説明におけるモバイルデバイスへの言及は、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、コンピュータ端末、ゲーム機端末、およびワークステーションを含み得る、他の形態のコンピューティングデバイスを除外するものではない。
【0010】
本明細書で使用する「キーパッド」という用語は、キーに関連付けられたファンクションが実施されなければならないことをモバイルデバイスに通信するためにユーザがボタンまたはキーをプレスする、様々なユーザインターフェースのいずれかを指す。以下の説明中に含まれるキーパッドの例は、従来型のセルラー電話の数字キーパッド、様々なモバイルデバイス上に実装される小型キーボード、モバイルデバイスに電子的に(たとえば、有線またはワイヤレスデータリンクを介して)結合できる外部キーパッドおよびキーボード、コンピュータキーボード、ならびにパーソナルコンピュータ、モバイルデバイスまたは他のコンピューティングデバイスに結合できる音楽キーボードを含む。説明を簡単にするために、図および説明は典型的なセルラー電話のキーパッドを示し、指す。ただし、これらの説明および図は、例にすぎず、本明細書の範囲または特許請求の範囲を特定のキーパッド構成に限定するものではない。
【0011】
本明細書で使用する「タッチ」および「タッチセンシティブ」という用語は、キーの極接近ならびに実際の物理的接触を包含するものである。さらに(または代替的に)本明細書で説明する「タッチセンシティブ」キーパッドは、指、スタイラスまたは他の物体の極接近を感知することが可能である。したがって、以下の説明における「タッチ」および「タッチセンシティブ」の使用は、物理的接触を必要とすることに限定されるもの、または極接近センシティブキーパッドを除外するものと解釈すべきではない。本明細書で使用する「ニアタッチ」という用語は、ユーザが指を極接近センシティブキーの極接近に持ってくるときなどの極接近イベントを指す。
【0012】
様々な実施形態では、モバイルデバイスが、キーに対するユーザの指またはスタイラスの極接近またはタッチを感知し、アプリケーションによって特定のキーに割り当てられたファンクションの説明をユーザに表示することが可能である。キーに割り当てられたファンクションをユーザがそのキーをプレスする必要なしに表示することによって、モバイルデバイスアプリケーションは、ユーザがファンクション割当てを記憶する必要なしに、およびキーファンクション割当てのメニューで表示を遮る必要なしに、多種多様なファンクションを固定キーパッド上のキーに割り当てることができる。様々な実施形態は、キー(たとえば、「1」、「2」、「3」など)上に印刷された値と一致しないコマンドを受け取るために固定キーパッドを使用するアプリケーションにおいて有用なことがある。さらに、本実施形態では、モバイルデバイスが、ユーザのネイティブ言語で所望のキーの位置を特定するための便利な機構をユーザに提供しながら、キー上に印刷されたアルファベットおよび数字フォーマットとは異なるアルファベットおよび数字フォーマットを実装することが可能である。本実施形態はまた、従来型のコンピュータキーボード上のファンクションキーなど、アプリケーション割当て可能キーを有するキーパッドを含むモバイルデバイスに対して有用なことがある。
【0013】
本明細書で説明する実施形態は、様々なモバイルデバイスのうちのいずれかに実装できる。一般に、そのようなモバイルデバイスは、図1に示す構成要素を共通に有する。たとえば、モバイルデバイス10は、内部メモリ12とディスプレイ13とに結合されたプロセッサ11を含む。さらに、モバイルデバイス10は、プロセッサ11に結合されたワイヤレスデータリンクおよび/またはセルラー電話トランシーバ15に接続される、電磁放射を送信および受信するためのアンテナ14を有する。いくつかの実装形態では、セルラー電話通信のために使用されるトランシーバ15ならびにプロセッサ11およびメモリ12の一部分を、ワイヤレスデータリンクを介してデータインターフェースを与えることから、集合的にエアインターフェースと呼ぶ。モバイルデバイス10は、一般に、ユーザ入力を受け取るためのキーパッド20または小型キーボードおよびメニュー選択ボタンまたはロッカースイッチ21をも含み、アプリケーションプログラマブルボタン22、23、24を含むことができる。
【0014】
一実施形態では、モバイルデバイスは、指、スタイラスまたは他のポインティングデバイスのタッチまたは極接近を感知するように構成されたキーパッドを含む。キーに対する指、スタイラスまたは他のポインティングデバイスのタッチまたは極接近を感知するために様々なセンサを使用することができる。そのようなセンサは、たとえば、(たとえば、キャパシタンス、インダクタンスまたは電圧などの)電気特性センサと、(たとえば、キーの極接近にある指の温度を検出可能な)熱センサと、(たとえば、キーを覆っている指またはポインティングデバイスによって落とされた影を検出する)光センサと、(たとえば、指またはポインティングデバイスの軽いタッチを検出する)圧力センサとを含むことができる。タッチセンシティブキーパッドは、特定のキーがプレスされたことを示す信号とは異なる、そのキーがいつタッチされたかを示す信号をモバイルデバイスプロセッサ11に供給するように構成される。キーに対する指またはスタイラスのタッチまたは極接近を感知することによって、モバイルデバイスは、特定のキーがプレスされる前にそのキーに現在割り当てられているファンクションを示す表示を与えるようにソフトウェアで構成できる。そのような表示は、ディスプレイ上の他の情報およびグラフィックスを遮らないモバイルデバイスディスプレイ13の部分に提示できる。
【0015】
タッチセンシティブキーパッドは、キーのタッチとプレスの両方を異なる種類のイベントとして感知する機能を有し、キータッチおよびキープレスイベントをプロセッサ11にシグナリングすることができるユーザインターフェースである。タッチセンシティブキーパッドの例示的な実施形態を図2Aおよび図2Bに示す。この例示的な実施形態では、指またはスタイラスがキーに対していつタッチしたかまたは極めて近接したかを感知するために、各キーに関連付けられたキャパシタ回路を使用する。他の電気、熱、光および圧力センサに関連する構成要素の構成は、別個に図解すれば同様のものになる筈である。
【0016】
図2Aを参照すると、そのようなキーパッド30は、プレス感知回路アセンブリ32によって支持され、プレス感知回路アセンブリ32に機械的に結合された複数の個々のキー31を含む。プレス感知回路アセンブリ32は、キー31の移動またはプレスを検出し、そのイベントをプロセッサによって解釈され得る電気信号に変換することができる様々なよく知られているキーパッド機構のいずれかとすることができる。たとえば、プレス感知回路アセンブリ32は、閉回路を通って送信される電圧が、その電圧がキー31がプレスされていることを示していると解釈可能な別の回路またはプロセッサによって受信できるように、キー31のプレス時に閉じられるスイッチを含むことができる。代替的に、プレス感知アセンブリ回路32は、キャパシタまたは抵抗材料に作用するキー移動によって引き起こされたキャパシタンスまたは抵抗の変化に基づいてキーのプレスを感知することができる。プレス感知回路アセンブリ32は、キー31を支持し、ユーザがキーが首尾よくプレスされたことを感知できるようにするために十分な移動距離をキーが移動することを可能にするための構造要素を含むことができる。
【0017】
キャパシタまたはキャパシタンスセンサなど、タッチまたはニアタッチ感知回路34も各キー31に関連付けられる。キャパシタンスセンサ回路34は、ユーザがキー31にタッチまたはニアタッチし、それによってキー31と下部支持35との間のキャパシタアセンブリを備える静電材料にユーザの体が加わるときに生じるキャパシタンスの変化を検出することができる回路である。別の実施形態では、タッチ感知回路34は、指がキー31の極接近に持ってこられるかまたはキー31にタッチしたときにユーザの体からキー31に通過する電圧を感知することができる低電圧検出回路とすることができる。別の実施形態では、タッチ感知回路34は、ユーザの指がキー31にタッチするかまたはキー31の極接近にくるときに生じる温度の変化を検出するのに十分センシティブな熱または温度感知回路とすることができる。さらなる実施形態では、タッチ感知回路34は、ユーザの指がキー31にタッチするかまたはキー31の極接近にくるときなど、ユーザの指がキーを遮るときに生じるキー31を通る光の変化を検出することができる光感知回路とすることができる。回路ブロックとして図示すると、電圧、熱、温度または光感知回路は、図2Aに示すキャパシタンスセンサ34と同じになるので、これらの代替実施形態は別個に図示しない。
【0018】
タッチセンシティブキーパッド30はまた、各キー31とタッチ感知回路34を互いに電気的に絶縁するために、(絶縁体材料から製造できる)側部支持構造33と、キー間の電気絶縁体材料36とを含むことができる。図2Bに示すように、上方から見ると、タッチセンシティブキーパッド30は任意の従来型のキーパッドのように見えることがある。
【0019】
図3に示す別の実施形態では、タッチ感知回路は、ユーザの指またはスタイラスがキー31にタッチするかまたはキー31の極接近にくるときに生じる、キー31と下部支持39との間のインダクタンスの変化を感知することができるインダクタンスセンサ38を含む。たとえば、インダクタンスセンサ38は、ユーザの指が近くにあるときにコイルを通るインダクタンスの変化を感知するように構成されたインダクタンス感知回路を追加するために結合されたコイルの形態とすることができる。インダクタンスベースのタッチセンシティブキーパッド37も、モバイルハンドセットからキーパッドを電気的に分離し各キーを互いに分離するために、側部支持構造33とインターンキー絶縁体材料36とを含むことができる。
【0020】
どんなキーパッドもそうであるように、キープレスセンサ回路32およびタッチ感知回路34、38から受信された信号を外部回路に、そして最終的にはモバイルデバイスのプロセッサにルーティングするための回路を含めることができる。当技術分野において知られているキーパッド回路のいずれもこの目的のために実装でき、したがって図には含めていない。
【0021】
好ましい一実施形態では、タッチセンシティブキーパッド30は主要なキーパッドとしてモバイルデバイス10に組み込まれる(すなわち、図1に示す従来型のキーパッド20の代わりに使用される)。ただし、本実施形態および特許請求の範囲の範囲はそのようなタッチセンシティブキーパッド30を含むモバイルデバイスに限定されない。本実施形態は、タッチセンシティブキーパッドまたはキーボードに結合され、本実施形態に一致する方法を達成するソフトウェアを用いて構成された任意のコンピューティングデバイスを包含する。たとえば、一実施形態では、プロセッサおよびディスプレイは、タッチセンシティブファンクションキーF1〜F12などのタッチセンシティブキーを有するキーボードに結合されたパーソナルコンピュータの一部である。別の例として、モバイルデバイス10は、データケーブルまたはワイヤレスデータリンクによって別個のタッチセンシティブキーパッドに結合できる。
【0022】
旧来、キーパッドは、キー31の押下を、モバイルデバイスおよびそのアプリケーションソフトウェアによって解釈され得る電気信号に変換することによって機能する。図4に、キープレスイベントがどのようにアプリケーションソフトウェアに通信されるかを示す、典型的なモバイルデバイスのハードウェア/ソフトウェアアーキテクチャを示す。タッチセンシティブキーパッド30上のキーをプレスすると、回路が閉じられるかあるいはキャパシタンスまたは抵抗が変化し、それにより電気信号が生じ、その電気信号はハードウェアドライバ4によって処理することができる。ハードウェアドライバ4は、特定のモバイルデバイスに応じて、回路、ソフトウェア、またはハードウェアとソフトウェアの混合とすることができる。ハードウェアドライバ4は、キーパッド5から受信した電気信号を、モバイルデバイス上で動作するソフトウェアアプリケーション2が解釈できる形式に変換する。この信号は、アプリケーションソフトウェアによってアクセス可能なメモリテーブル中の割込みまたは記憶値の形態とすることができる。そのような割込み値またはメモリに記憶された値は、QUALCOMM(登録商標)社、Windows(登録商標) Mobile(登録商標)およびLinux(登録商標)によって作成されたBinary Runtime Environment for Wireless(BREW(登録商標))プラットフォームなどのランタイム環境ソフトウェア層3によって受信できる。ランタイム環境ソフトウェア層3は、アプリケーションソフトウェアとモバイルデバイスとの間の共通インターフェースを与える。したがって、(破線矢印で示された)キープレスイベント信号はキープレスイベントメッセージの形態でアプリケーション2に渡される。アプリケーションソフトウェア2は、キープレスイベントの意味を理解することが可能でなければならず、したがって、基礎をなすハードウェアドライバ4およびキーパッドハードウェア30に適応するように書かれる。また、キープレスイベントは、たとえば、特定のキーに関連付けられた値またはファンクションを表示することなどのためにユーザインターフェース層1に通信できる。
【0023】
一実施形態では、キーをプレスすることなしにキーにタッチまたはニアタッチするユーザは、タッチセンシティブキーパッド30によって感知され、(鎖線矢印で示された)キータッチイベントメッセージに変換され、そのキータッチイベントメッセージはハードウェアドライバ4に送信される。キータッチイベントメッセージはランタイム環境3を介してアプリケーション2に送信できる。キータッチイベントメッセージを受信すると、アプリケーション2は、後述のように、関連するキー(すなわち、タッチまたはニアタッチされているキー)に割り当てられた値またはファンクションを判断し、関連付けられた値またはファンクションをモバイルデバイスディスプレイ13内に表示するようにユーザインターフェース1に指示する。
【0024】
キータッチイベントまたはキープレスイベントに関する情報は、当業者によって諒解される様々なデータおよび信号構造で、キーパッド30からドライバ4に、およびドライバからアプリケーション2に通信できる。様々なソフトウェア層間で渡される信号の一例については図6を参照しながら後述する。代替的に、キータッチイベントおよびキープレスイベント情報は、オペレーティングシステムおよび/またはアプリケーションによって頻繁に調べられるレジスタまたは状態機械中のメモリ12に記憶できる。たとえば、キープレスイベントまたはキータッチイベントが発生したことを示すフラグ、および関連付けられたキー識別情報(キーID)が処理用に利用できるメモリ中にあることを示すフラグをメモリ中に設定することができる。一実施形態では、この通知は、2つのフラグと、キーIDシンボルと、知られているメモリロケーションまたはレジスタとを記憶することによって達成できる。第1のフラグは、処理すべき必要があるイベントが発生したことを示すことができる。第2のフラグは、そのイベントが、キータッチイベントであるか(たとえば、第2のフラグは「0」に設定される)、またはキープレスイベントであるか(たとえば、第2のフラグは「1」に設定される)を示すことができる。キーIDシンボルは、タッチ(またはニアタッチ)あるいはプレスされた特定のキーを識別する単純なデータコードとすることができる。したがって、極めて小さいメモリ容量においてキープレスイベントおよびキータッチイベントをオペレーティングシステムおよびアプリケーションに通信することができる。
【0025】
別の例として、キーパッドハードウェア30またはキーパッドドライバソフトウェア4は、ランタイム環境層3またはアプリケーション2にソフトウェア割込みを送信することによってキータッチイベントまたはキープレスイベントをシグナリングすることができる。そのような割込みのデータ構造の一例については図14を参照しながら後述する。
【0026】
キープレスまたはキータッチイベント時に実行できる例示的な処理ステップを図5に示す。ユーザがキー31をプレスすると、ステップ72において、タッチセンシティブキーパッド30は、このイベントがいつ発生したかを感知し、キープレスイベント電気信号をキーパッドドライバに送信する。ステップ73において、キーパッドドライバは、キーパッドからキープレスイベント信号を受け取り、プレスされたキーを認識し、後に適切なキープレス通知をオペレーティングシステムまたはランタイム環境に送信する。ステップ75において、ランタイム環境層はアプリケーションにキープレス通知を転送する。キープレスイベント通知を受信すると、ステップ77において、アプリケーションは、特定のキーに割り当てられたファンクションまたは値を判断する。アプリケーションはまた、テスト79において、イベントがキープレスイベントであったかまたはキータッチイベントであったかを判断する。キープレスイベントであった場合、アプリケーションは、ステップ83において特定のキーに割り当てられたファンクションを実行し、ステップ83において実行されたファンクションに関連付けられた適切な画像またはシンボルをディスプレイに送信する。
【0027】
ユーザがキー31にニアタッチまたはタッチするがキー31をプレスしないと、ステップ71において、タッチセンシティブキーパッド30は、このタッチイベントがいつ発生したかを感知し、キーパッドドライバにキータッチイベント電気信号を送信する。ステップ73において、キーパッドドライバは、キーパッドからキータッチイベント信号を受け取り、プレスされたキーを認識し、後に適切なキータッチ通知をオペレーティングシステムまたはランタイム環境に送信する。ステップ75において、ランタイム環境層はキータッチ通知をアプリケーションに転送する。キータッチイベント通知を受信すると、ステップ77において、アプリケーションは、特定のキーに割り当てられたファンクションまたは値を判断する。アプリケーションはまた、テスト79において、イベントがキープレスイベントであったかまたはキータッチイベントであったかを判断する。キータッチイベントであった場合、アプリケーションは、タッチまたはニアタッチされたキーに関連付けられた値またはファンクションをディスプレイに通信し(あるいは、表示すべきディスプレイ上に提示される画像を変更し)、それによってキーがプレスされた場合に入力される値または実行されるファンクションをユーザに通知する。
【0028】
図5に示す方法ステップは、モバイルデバイス10のハードウェア層とソフトウェア層との間で渡される一連のデータメッセージにおいて達成でき、その例を図6に示す。キーがニアタッチまたはタッチされたがプレスされていないと、タッチセンシティブキーパッドハードウェア30は、このイベントを感知し、メッセージ71において、タッチイベントとタッチされた特定のキーとをキーパッドドライバ層4に通知する電気信号をキーパッドドライバ層4に送信する。メッセージ73aにおいて、キーパッドドライバ4は、このイベントをランタイム環境層3が理解できる信号に変換する。このメッセージは、タッチまたはニアタッチされたキーのキーIDを供給することなどによって、イベント(すなわち、キータッチイベント)の特徴と、関係する特定のキーの両方をランタイム環境層3に通知する。次いで、ランタイム環境層3は、メッセージ75aにおいて、キータッチイベント情報をアプリケーション2に転送する。アプリケーションは、タッチまたはニアタッチされたキーに関連付けられたファンクションを判断するためにステップ77〜79の処理を実行し、メッセージ85において、キーに関連付けられた値またはファンクションを提示するために信号をディスプレイ13に送信するか、またはディスプレイ13を再構成する。
【0029】
キーがプレスされると、メッセージ71において、タッチセンシティブキーパッドハードウェア30は、このイベントを感知し、タッチイベントとタッチまたはニアタッチされた特定のキーとをキーパッドドライバ層4に通知する電気信号をキーパッドドライバ層4に送信する。メッセージ73aにおいて、キーパッドドライバ4は、このイベントをランタイム環境層3が理解できる信号に変換する。このメッセージは、プレスされたキーのキーIDを供給することなどによって、イベント(すなわち、キープレスイベント)の特徴と、関係する特定のキーの両方をランタイム環境層3に通知する。次いで、ランタイム環境層3は、メッセージ75aにおいて、キープレスイベント情報をアプリケーション2に転送する。アプリケーションは、タッチまたはニアタッチされたキーに関連付けられたファンクション(または値)を判断するためにステップ77〜81の処理を実行し、次いでそのファンクションを実行する(またはその値を入力する)。ファンクションが実行される(または値が入力される)と、メッセージ83において、アプリケーションは、実行結果を提示する(または入力値を表示する)ために信号をディスプレイ13に送信するか、またはディスプレイ13を再構成する。
【0030】
図5および図6を参照した上記の説明では、キータッチイベントおよびキープレスイベントは、ドライバ層4からランタイム環境3を通してアプリケーション2に通信されるものとして記述した。しかしながら、いくつかの実装形態では、ドライバ層4はアプリケーション2と直接通信することができる。さらに別の方法として、ドライバ層4は、キーイベントが発生したことを環境ランタイム環境層3に通信し、次いで、アプリケーション2がアクセス可能であるレジスタにキーイベント情報を記憶することなどによってキーイベントに関する情報をアプリケーション2に直接通信することができる。
【0031】
レジスタにフラグおよびキーIDを記憶することによってキータッチまたはキープレスイベントが通信される実施形態では、図6に示すメッセージの代わりに、上述のメッセージの受信と同様の方法で連続的に実行できるメモリストア演算およびメモリアクセス演算を使用する。
【0032】
これらの実施形態を実装するために、アプリケーションソフトウェアは、キータッチイベントを認識し、タッチまたはニアタッチされたキーに関連付けられた値またはファンクションを明らかにするためにモバイルデバイスディスプレイと相互作用するように構成できる。そのような構成は、キータッチイベント信号またはレジストリ値を認識し、割り当てられた値またはファンクションをディスプレイに提示する追加の処理ステップを追加することによって達成できる。ランタイム環境層ソフトウェアはまた、キープレスイベントとは異なる様式(たとえば、データフォーマットまたはフラグ値)でキータッチイベントを認識し、アプリケーションにこのイベントを適切に通知するように適合できる。さらに、タッチセンシティブキーパッドとともに使用されるハードウェアドライバは、これらの2種類のキーイベントを区別し、キータッチイベントおよびキープレスイベント情報をランタイム環境またはアプリケーションに適切に通信するように構成できる。
【0033】
キータッチイベントとキープレスイベントを区別し、キータッチイベントとキープレスイベントに作用するためにアプリケーションソフトウェアに必要とされる複雑さの追加は、モバイルデバイスのオペレーティングシステム内のキーパッドプロトコル層に関連する様々な実施形態を実装することによって回避できる。そのようなキーパッドプロトコルは、本明細書と同時に出願され、その内容全体が参照により本明細書に組み込まれる、「Standardized Method and Systems for Interfacing with Configurable Keypads」と題する米国特許出願第_________号に記載されている。キーパッドプロトコル層は、アプリケーションソフトウェアがオペレーティングシステムに対するキーパッドファンクションを定義し、標準の形式でキーイベント通知を受信することを可能にする、アプリケーションソフトウェアとキーパッドドライバとの間のインターフェースとして働く。そうすることによって、タッチまたはニアタッチされたキーの値またはファンクションを表示し、割り当てるプロセスを、キーパッドプロトコルによって実行することができ、アプリケーションソフトウェアからこの処理の必要がなくなる。モバイルデバイスがタッチセンシティブキーパッドを装備している場合、これは、アプリケーションによって割り当てられた関連する値またはファンクションを提示するためにモバイルデバイスディスプレイと通信することができるキーパッドプロトコル層に知らされる。このようにして、本明細書で説明するタッチセンシティブキーパッド機能を適応させる必要なしに、ソフトウェアアプリケーションを様々なモバイルデバイス用に書くことができる。図7〜図16を参照する以下の説明において、システムソフトウェア内にそのようなキーパッドプロトコル層を含むモバイルデバイス10上で実装される実施形態について説明した。
【0034】
図7に示すように、キーパッドプロトコル100は、アプリケーションソフトウェア180とキーパッド30との間のインターフェースソフトウェア層として働く。図示のように、キーパッドプロトコル100は、様々なハードウェアドライバ110と、BREW(登録商標)層などのランタイム環境ソフトウェア170とにリンクするシステムソフトウェアの一部として与えられる。キーパッドプロトコル100はまた、多種多様なキーパッドとインターフェースして、アプリケーションソフトウェアがいくつかの利用可能なキーパッドのうちの1つを選択し、設定できるようにすることができる。キーイベント信号は、キーパッド30から関連するキーパッドハードウェアドライバ110に送信される。キーパッドドライバ110は、キーイベント電気信号を、キーパッドプロトコル100が理解できる形式に変換する。
【0035】
キーパッドプロトコル100は、アプリケーション開発者が標準的ソフトウェア命令を予期し、そのソフトウェア命令に適応できる標準化された形式で、ドライバ層110からキープレスイベント信号を受信し、キープレスイベント通知をアプリケーション180に送信する。そうする際に、キーパッドプロトコル100は、アプリケーション180が解釈できる、通知オブジェクトなどのキープレスイベントメッセージを構成する。この構成されたキープレスイベントメッセージ/通知オブジェクトは、ランタイム環境ソフトウェア層170を通してアプリケーション180に渡すことができる。代替的に、キーパッドプロトコル100は、キープレスイベントメッセージ/通知オブジェクトをアプリケーション180に直接通信することができる。アプリケーション180はまた、表示ファンクションを提供するユーザインターフェース層190にキープレスイベントを通信することができる。代替的に、キーパッドプロトコル100は、ディスプレイ13上で提示するためのユーザインターフェース層190にキー値またはファンクションを直接通信することができる。
【0036】
本発明の様々な実施形態に対する特定の利点の中でも、キーパッドプロトコル100は、アプリケーション180からキーファンクション割当ておよび構成コマンドを受信することができ、それにより、キーパッドプロトコル100は、所与の瞬間において特定のキーに割り当てられた値またはファンクションを判断することができる。様々なキーに割り当てられる値およびファンクションは、モバイルデバイス上で動作するアプリケーションによって、そのソフトウェアのファンクションに応じて定義される。いくつかの例では、特定のキーに割り当てられる値またはファンクションは、他のキーが以前にまたは同時にプレスされたかどうか(たとえば、「shift」または「alt」キーのプレスの後にくるなど)に依存する。他の例では、特定のキーに割り当てられるファンクションは、アプリケーションによって実行されている現在の動作に依存する。たとえば、メディアプレーヤアプリケーションにおいて、メディア再生を停止および開始するために同じキーを使用することができ、メディアが再生されているときはいつもそのキーに「停止」の機能が割り当てられ、メディアファイルが選択されているがまだ再生されていないときはいつもそのキーに「開始」の機能が割り当てられる。したがって、特定のキーに割り当てられる値または機能はコンテキスト依存であり、アプリケーションの動作中に頻繁に変化することができる。動的機能キー割当てを可能にしながらアプリケーション開発を単純化することによって、アプリケーションは、特定のキープレスイベントおよびコンテキストの処理をキーパッドプロトコル100に任せて、関係する機能または値に関連付けられたコマンドを使用して各キープレスイベントを報告するようにキーパッドプロトコルを構成することができる。たとえば、メディアプレーヤアプリケーションは、キーパッドプロトコルによって判断されたキープレスイベントのコンテキストに応じてキープレスイベントを「再生」ファンクションまたは「停止」ファンクションとして報告するようにキーパッドプロトコル100を構成することができる。したがって、キーパッドプロトコル100は、アプリケーション開発者にとって都合よいファンクション定義を使用してアプリケーションと通信することができる。そのような実装形態では、アプリケーションは、任意の所与の瞬間において特定のキーに割り当てられた値またはファンクションを判断することができず、その処理をキーパッドプロトコル100に任せることがある。特定のキーに割り当てられたファンクションまたは値がキーパッドプロトコル100に通知されるので、プロトコルは、キータッチイベントに応答してディスプレイにこの情報を通信することができる。キータッチイベントの処理をキーパッドプロトコル100に割り振り、割り当てられた値または機能をディスプレイ上に明らかにすることによって、アプリケーションソフトウェアは、開発がより容易になり、キー割当てを明らかにするために他の処理に割り込むように構成する必要がなくなる。
【0037】
キーパッドプロトコル100はまた、特定のキーに割り当てられた値またはファンクションに関連付けられたグラフィックスをアプリケーションから受け取ることができる。そのようなグラフィックスは、キーパッドプロトコルによって生成される値/ファンクションリビールディスプレイにおいて使用できる。たとえば、アプリケーションが外国語の文字および数字をサポートする場合、割当て値をディスプレイに明らかにするときその外国語の文字および数字が使用できるように、そのようなグラフィックスのグラフィックスをアプリケーションによってキーパッドプロトコル100に供給することができる。同様に、アプリケーションが、矢印が「再生」を示し、2本の縦棒が「停止」を示すなど、グラフィカルに示すことができるキーにファンクションを割り当てる場合、そのようなグラフィックスは、ファンクションについてテキスト形式で説明する代わりに、キーパッドプロトコル100に供給し、ディスプレイに割当て機能を明らかにするために使用できる。モバイルデバイスがグラフィックユーザインターフェースを有するかまたはグラフィックユーザインターフェースに接続されている状況では、キーパッドプロトコル100は、構成ユーザインターフェース表示グラフィックに対するそのようなグラフィックファイルを使用することができる。
【0038】
上述のように、キーパッドプロトコル100は、ハードウェアドライバ110からキータッチイベントを受け取り、ディスプレイ190と通信してタッチまたはニアタッチされたキーに関連付けられたファンクションを明らかにすることができる。代替的に、いくつかの実装形態では、キーパッドプロトコル100は、アプリケーションがキータッチイベントを処理するように構成されている場合、ランタイム環境層170などを通してキータッチイベントをアプリケーション180に通信することもできる。たとえば、いくつかのアプリケーションは、タッチセンシティブキーパッドを有するモバイルデバイス用に書くことができ、したがって、図4を参照しながら上述したのと同様の方法でキータッチイベント通知を受信し、関連付けられた値またはファンクションをユーザインターフェースディスプレイ190に通信することが可能である。
【0039】
キーパッドプロトコル100は、アプリケーション開発者がアプリケーションソフトウェアを開発する際に利用できるAPIの標準セットを含むことができる。したがって、キーパッドプロトコル層100は、より高水準のソフトウェアのための標準的なソフトウェアインターフェースとして働くことができる。キーパッドプロトコル100はまた、キーパッドドライバ110から受信されたキーイベント信号に基づいてタッチ(またはニアタッチ)あるいはプレスされた特定のキーを識別することを可能にするためにキーパッドドライバ110と直接インターフェースするように適合されたソフトウェアを含むことができる。キーパッドファンクションおよびインターフェース信号の性質は様々なタイプのキーパッド間で劇的に異なり得るので、キーパッドコントローラ層104は、そのような複雑さに適応し、アプリケーション層180から複雑さを隠すためのソフトウェア層を与える。
【0040】
特定のキーに割り当てられたファンクションまたは値をキーパッドプロトコル100に通知するために、アプリケーション180はキーパッド定義コマンドおよびグラフィックスを与えることができる必要がある。そのような定義およびグラフィック情報は、アプリケーション180によってキーパッドプロトコル100に直接的に、またはランタイム環境層170を通して与えることができる。同様に、ユーザインターフェースソフトウェア190は、キーパッドプロトコル100にキーパッド定義およびグラフィック構成情報を与えることができる。次いで、キーパッドプロトコル100は、そのような定義およびグラフィックス情報を使用してキーパッド中の各キーに割り当てられた値またはファンクションを判断する。キーパッドプロトコル100はまた、キーパッドハードウェアドライバ110にキーパッド構成コマンドを与えることができる。
【0041】
アプリケーション180は、最初に開始されるとき、アプリケーションの機能に一致する動作用のキーパッドを構成するためにキーパッドプロトコル100と相互作用することができる。このプロセスの例示的なステップを図8に示す。キーパッドプロトコル100には、モバイルデバイスに組み込まれたキーパッドの機能および構成が通知され、また、モバイルデバイス10に結合できる他のキーパッドの機能および構成が通知できる。
【0042】
アプリケーション180が、ロードされるか、あるいは利用可能なキーパッドおよびその機能を判断する(たとえば、タッチセンシティブキーパッドであるかどうかを判断する)必要があるとき、ステップ210において、アプリケーションは、APIを発行することなどによって、この情報をキーパッドプロトコル100に要求する。アプリケーションは一般に多種多様なタイプのモバイルデバイス上で動作するように書かれているので、モバイルデバイスがただ1つのキーパッドを有する状況でも、アプリケーション180は、キーパッドの機能に関する情報を要求する必要があることがある。説明のために、このファンクションを実行するための「Query_Keypad」という名称の例示的なAPIを各図に示す。このAPIは、使用のために利用可能であるキーパッドならびにそれらの様々な機能(たとえば、構成可能なキーパッドまたはタッチスクリーン)をアプリケーション180に通知するように、単にキーパッドプロトコル100に要求することができる。そのようなQuery_Keypad APIを受信すると、ステップ212において、キーパッドプロトコル100は、利用可能な(すなわち、アクティブにされ、接続された)キーパッドおよびそれらの機能をアプリケーションに通知する。アプリケーション開発者に共通のインターフェースを与えるために、利用可能な(1つまたは複数の)キーパッドをアプリケーションに通知するためのフォーマットを標準化することができる。情報のフォーマットは、図11を参照しながら後述するデータ構造など、任意の適切なデータ構造とすることができる。
【0043】
キーパッド利用可能性および構成情報を受信すると、ステップ220において、アプリケーションは構成情報をキーパッドプロトコルに供給する。この構成ステップは、アプリケーション開発者に共通のアプリケーションインターフェースを与えるためにAPIの形態とすることができる。説明のために、このファンクションを実行するための「Key_Config」および「Keypad_Config」という名称の例示的なAPIを各図に示す。そのようなAPIは、キーパッドのインデックス数を指定し、キーごとにキー構成情報を与えることができる。そのような構成情報は、アプリケーションが特定のキーイベントのために使用する識別子と、特定のキーまたはキーイベントに割り当てられたファンクションまたは値を記述する文字列と、キーファンクションをグラフィック的に表示するために使用できるグラフィックス情報とを含むことができる。そのようなキーごとのキー構成情報の例示的なフォーマットおよびコンテンツについては、図12を参照しながら後述する。
【0044】
キーパッドプロトコル100は、ステップ222においてアプリケーション180からキーパッド構成情報を受信し、ステップ224において、選択されたキーパッドに関連付けられたグラフィックファイルまたは画像を受信する。ステップ226において、キーパッドプロトコル100は、キーパッドに関連付けられた変換テーブルを構成する。そのような変換テーブルは、キーパッドプロトコル100が、各キープレスイベントに応答してアプリケーション180に供給すべき適切なコマンド文字列またはアプリケーションキー識別子を判断するために使用できる。キーパッドプロトコル100はまた、キータッチイベントに応答して割り当てられた値/ファンクションの表示を生成するために、変換テーブルに記憶された割り当てられた値またはファンクションを使用することができる。さらに、ステップ230において、キーパッドプロトコル100は、アプリケーションの機能に適合させる必要がある場合、キーパッドをさらに構成することができる。キーパッド構成動作を完了すると、応答232において、キーパッドプロトコルは、キーパッドが動作準備完了であることをアプリケーション180に通知する。
【0045】
図8に示したプロセスステップは、図9などに示すモバイルデバイス10中の様々なハードウェアおよびソフトウェア層間で渡されるいくつかの電子メッセージにおいて実装できる。アクティブになると、または動作中に、メッセージ210aにおいて、アプリケーション180は、Keypad_Query APIを発行することなどによって、モバイルデバイス上でアクティブにされた利用可能なキーパッドに関する情報を要求する。メッセージ210aにおいて、アプリケーションはランタイム環境と直接通信し、メッセージ210bにおいて、ランタイム環境はKeypad_Query APIをキーパッドプロトコル100に転送する。いくつかの実装形態では、アプリケーション180は、ランタイム環境層170に関与することなしにKeypad_Query APIをキーパッドプロトコル100に直接送信することができる。Keypad_Queryを受信したことに応答して、メッセージ212aにおいて、キーパッドプロトコル100は利用可能な(1つまたは複数の)キーパッドおよびそれらの機能を送信する。メッセージ212bにおいて、これはランタイム環境層170に送信され、ランタイム環境層170はこの情報をアプリケーション180上に送信する。いくつかの実装形態では、キーパッドプロトコル100は、ランタイム環境層170をバイパスしてアプリケーション180と直接通信することができる。図8を参照しながら上述したように、メッセージ200において、Keypad_Queryの受信により、付属キーパッドについて問い合わせるようにキーパッドプロトコル100に促すことができる。
【0046】
キーパッドプロトコル100から受信した情報を使用して、メッセージ220、224において、アプリケーション180は、キーパッドプロトコル100にキーパッド構成情報を送信し、随意にグラフィックファイルを送信することができる。他のメッセージの場合と同様に、この情報は、ランタイム環境層170を通して送信するか、または図示のようにキーパッドプロトコル100に直接送信できる。アプリケーション180はまた、メッセージ234において、様々なキーに割り当てられたアプリケーションおよびファンクションに一致する表示を提示するためにディスプレイ層にグラフィックファイルを供給する。
【0047】
アプリケーション180によって供給されたキーパッド構成およびグラフィックファイルを使用して、キーパッドプロトコル100は、プロセス226においてキー変換テーブルを構成し、メッセージ230においてキーパッドを構成する。さらに、メッセージ228において、キーパッドプロトコル100はいくつかのキーパッド表示ファイルをディスプレイに供給する。たとえば、キーパッドが、構成可能なキー(たとえば、図1に示すキー22〜24)を含む場合、キーパッドプロトコル100は、上記のそれらのキーを提示するためのラベルをディスプレイに通知することができる。代替的に、ディスプレイメッセージ234において、アプリケーション180は、構成可能なキー22〜24の上方に提示されるラベルを与えることができる。
【0048】
図8および図9に示す処理は、新しいキーパッドがモバイルデバイス10上でアクティブにされたときはいつも開始することもできる。たとえば、動作中であり、したがってすでに1つのキーパッドを構成しているアプリケーション180には、現在入手可能な一部の多機能セルフォン上に設けられた動作位置にユーザが小型キーボードをスライドまたは回転させることなどによって、新しいキーパッドがモバイルデバイス上でアクティブにされたことをシステムソフトウェアによって通知できる。上記のように、そのような第2のキーボードは、キーボードが配備された(すなわち、動作位置に移動された)ときにアクティブにできる(すなわち、ユーザ入力を受信することができるように構成できる)。第2のキーパッドがアクティブにされたというこの通知は、システムソフトウェア、またはアプリケーションが時々調べることができるメモリ中のシステムフラグセットによってアプリケーション180に通信される割込みの形態とすることができる。別のキーパッドがアクティブにされたことをアプリケーション180が知ったとき、ステップ210において、アプリケーションは、新たにアクティブにされたキーパッドの機能に関する情報を受信するためにKeypad_Query APIを再び呼び出すことができる。次いで、ステップ220において、アプリケーションは、図8を参照しながら上述した方法で新たにアクティブにされたキーパッドを選択し、構成する。したがって、キーパッドは、アプリケーション180の動作中の任意のポイントにおいてモバイルデバイス10上でアクティブにできる。たとえば、特定のキーパッドがアクティブにされる前にアプリケーション180を開始することができる。アクティブになると、アプリケーションは、アプリケーションのファンクション用に利用可能でアクティブなキーパッドを構成する。次いで、ユーザが、特定のアプリケーションにより好適な第2のキーパッドをアクティブにすると、アプリケーション180は、新たにアクティブにされたキーパッドを選択し、そのキーパッドから受信したユーザ入力を使用して動作を継続することができる。このようにして、キーパッドプロトコル100はフレキシブルな方法でキーパッドの構成を可能にし、アプリケーションに複雑さを加えることなしにキーファンクションリビール実施形態を実装することが可能になる。
【0049】
アプリケーションはまた、選択を行う際に有用となり得る特定のキーパッドに関するより多くの情報を得るためにキーパッドプロトコル100とインターフェースすることができる。電話アプリケーションに使用される電話キーパッド、テキストおよび電子メールアプリケーションに使用される小型キーボードなど、2つ以上のキーパッドまたはユーザインターフェースを含むモバイルデバイスでは、アプリケーション180は、アプリケーション機能に基づいてユーザ入力を受信するためにそれらのキーパッドのうちの1つを選択する必要があることがある。たとえば、メッセージングまたは電子メールアプリケーションなど、かなりのテキスト入力に関与するアプリケーションは、キーパッドがモバイルデバイス上で利用可能でありアクティブである場合、小型キーボードによって最も良くサポートでき、メディアプレーヤまたはゲームは、ほんのいくつかのキーしかアプリケーションによって使用されないので電話キーパッドによって最も良くサポートできる(たとえば、図19〜図25参照)。
【0050】
アプリケーション180が特定のキーパッドの機能に関する情報を得ることができる例示的なプロセスを図10に示す。アプリケーション180は、API210(たとえば、IDynKeyPad_GetCaps)などを用いてキーパッドインデックスを識別し、その機能を要求することによって特定のキーパッドの機能に対する要求を発行することができる。たとえば、モバイルデバイスが2つのキーパッドを有する場合、図11に示すように一方はインデックス「0」で識別し、他方はインデックス「1」によって識別できる。そのようなAPIを受信したことに応答して、ステップ200において、キーパッドプロトコル100がまだその情報をメモリ中に(たとえば、図11に示したものと同様のデータテーブル中に)有しない場合、キーパッドプロトコル100は、キーパッドIDに関連付けられた機能をキーパッドドライバ110に要求する。次いで、ステップ220において、キーパッドプロトコル100は受信した機能情報をアプリケーションに供給する。図示の例では、アプリケーションは特定のキーパッドの機能を要求しており、選択されたキーパッドが固定キーパッドである旨がアプリケーションに通知される。
【0051】
利用可能なキーパッド機能に関する情報は、図11などに示す標準化されたデータ形式のキーパッドプロトコル100によってアプリケーションに提供できる。特定のキーパッドの識別情報および機能は、キーパッドを識別するインデックス302またはコードと、キーパッド機能304の概要と、キーパッド306において利用可能なキーの識別情報とを含むデータレコードパケット310、312中で送信できる。データレコード310、312など、利用可能な各キーパッドのために別々のデータレコードパケットを送信することができる。代替的に、キーパッドプロトコル100は、各データレコードが、関連付けられたキーパッドの識別情報および機能を与えるデータフィールド302〜306を含んでいる、利用可能な各キーパッドのデータレコード310、312を含むキーパッド機能データテーブル300を送信することができる。図11に示すデータ構造は、一例として与えるものであり、いかなる形であれ、キーパッドプロトコルによってアプリケーションに与えることができるデータ形式または情報を限定するものではない。
【0052】
アプリケーション180に供給されるキーパッド情報は、特定のタイプのキーパッドおよびその機能を通信するために、標準化されたキーセット識別子の形態とし、標準化されたキーパッド定義を使用することができる。代替的に、キーパッド機能データテーブル300は、利用可能な個々のキーと、それらの個々の機能および構成とを記載することができる。キーパッド機能テーブル300に示すエントリは、説明のために与えるにすぎず、典型的な実装形態では、アプリケーション180によって認識され、理解され得るバイナリコードの形態でデータを記憶する可能性がより高い。
【0053】
アプリケーション180は、キータッチイベントおよびキープレスイベントを解釈することにおいて使用するために、およびアプリケーション180が処理できる信号またはデータ構造にそれらのイベントを変換することにおいて使用するために、様々なデータおよび構成パラメータをキーパッドプロトコル100に提供することができる。キーパッドプロトコル100が使用するそのような情報を記憶するためのデータ構造の一例を図12に示す。そのようなデータ構造320は、利用可能なキーパッド上で各キーに関連付けられた任意の数のデータレコード334〜342から構成できる。参照しやすいように、第1のデータフィールド322は、キーパッドプロトコル100が、タッチ、ニアタッチまたはプレスされている個々のキーを識別するために使用できるキーIDを含むことができる。このキーIDは、ドライバおよびキーパッドプロトコル100が、同じキーIDを使用してキープレスイベントに関して通信するように、特定のキーパッド120に関連付けられたキーパッドドライバ110に通信できる。第2のデータフィールド324は、様々なアクティブにされたキーパッドの間でキーイベントを区別するためにキーパッドプロトコル100が使用できるキーパッドIDを含むことができる。キーパッドIDデータフィールド324は、付属キーパッドの単純なシリアルリスト(たとえば、0、1、2など)を含むことができる。代替的に、キーパッドIDデータフィールド324は、キーパッド供給者または相手先商標製造会社(OEM)によってキーパッドモデルまたは個々のキーパッドに割り当てられたグローバル一意のキーパッドIDを記憶することができる。たとえば、キーパッドIDは、OEMによってキーパッドに割り当てられたMAC IDとすることができる。とにかく、各キータッチおよびキープレスイベントを一意に識別するためにキーパッドIDとキーIDの組合せを使用することができる。データ構造320はまた、アプリケーションキーID326、および割り当てられたファンクションの説明を含むテキスト文字列など、特定のキーパッドを使用してアプリケーションによって供給される情報を含むことができる。そのような情報は、特定のキープレスイベントに応答してアプリケーション180が受信する必要がある特定のキーIDをキーパッドプロトコル100に通知するために、アプリケーション180によって供給できる。したがって、アプリケーション180は、アプリケーション180がそのファンクションにおいて使用するキーIDの任意のセットを定義し、プロトコルが特定のキープレスイベントをアプリケーション180に適切に通知することができるように、それらの任意のキーIDをキーパッドプロトコル100に供給することができる。このようにして、キーパッドレイアウトおよび特定のキーがキーパッドごとに異なっても、キーパッドプロトコル100が必要な変換を行うことで、アプリケーションソフトウェアを標準的なプロセスを用いて機能するように書くことができる。キーパッドプロトコル100は、機能説明文字列328を使用して、キータッチイベントに応答してテキストキーファンクションリビールディスプレイを生成することができる。
【0054】
キーパッド変換データ構造320はまた、キーに割り当てられたファンクションに関連付けられたグラフィックス(データフィールド332)を含むことができる。アプリケーションによって割り当てられたキー機能をグラフィカルに示すために、アプリケーション180は、キータッチイベントに応答して表示すべきグラフィックファイルを供給することができる。キータッチイベントに応答してグラフィックキーファンクションリビールディスプレイを生成するために、キーパッドプロトコル100は、グラフィックファイル332を使用することができる。グラフィックスをキーパッド変換データ構造320内に記憶するよりはむしろ、データフィールドは、特定のキーに関連付けられたグラフィックファイルを記憶したメモリロケーションへのポインタ(すなわち、メモリアドレス)を含んでよい。そのようなグラフィックスは、矢印(左、右、上、下またはカーブ)、円、数学演算記号など、特定のキーファンクションを通信する単純なシンボルの形態とすることができる。
【0055】
キーパッドプロトコル100を使用してキーパッドを構成するために、アプリケーション180は、一連のデータレコードの形態でキーパッド変換データ構造320に記憶すべき情報の一部を供給するだけでよい。そのようなデータレコードは、キーパッドプロトコルが認識することができる標準的なキー識別子にリンクさせることができる。たとえば、構成されているキーパッドが標準的な12個のキー数字キーパッドである場合、アプリケーション180はその標準的な数値によってキーを識別することができる。その識別子を使用して、アプリケーション180は、ファンクション説明文字列および/またはファンクショングラフィックまたはファイルポインタとともに、キープレスイベントをアプリケーションに通知するためにキーパッドプロトコル100が使用することができるアプリケーション識別子キーIDを供給することができる。キーパッドプロトコル100は、そのようなデータレコードを受信し、図12などに示すデータテーブルに記憶することができる。
【0056】
キーパッド変換および構成データは、多種多様なデータ構造でメモリに記憶できることを当業者なら諒解されよう。図12に示すデータ構造は、例示の目的のためにすぎず、いかなる形でも開示または特許請求の範囲の範囲を限定するものではない。
【0057】
キータッチイベントおよびキープレスイベントの処理フローを図13に示す。キーがタッチ、ニアタッチまたはプレスされると、そのイベントがキーパッドハードウェア120によって検出され、キーパッドハードウェア120はキーパッドドライバソフトウェア110にシグナリングする。次いで、キーパッドドライバ110は、キーパッドプロトコル100のキーパッドコントローラ104部分にキータッチまたはキープレスイベントを通知する。これは、キーパッドコントローラ104に送信される信号などによって直接的に達成するか、あるいは、システムソフトウェアが周期的に認識し、キータッチまたはキープレスイベント情報がキーパッドドライバによって供給されるように要求するコールバックフラグまたは割込みを設定することなどによって間接的に達成できる。
【0058】
キーがキーパッド120上でタッチ、ニアタッチまたはプレスされると、キー回路およびそのキーパッドドライバ110は、様々な方法で、たとえば、割込みを行うか、またはシステムフラグを設定するために使用される特定のレジスタまたはメモリの部分にデータを記憶することなどによってキーパッドプロトコル100にイベントを通知することができる。たとえば、図14に示すように、プレスされたキーのキーIDとともに、キーがタッチ、ニアタッチまたはプレスされたことを示すための単純なデータ構造350をメモリに記憶することができる。たとえば、そのようなデータ構造は、キープレスタッチまたはキープレスイベントが発生したかどうかを判断するためにキーパッドプロトコルが周期的に調べることができる2つ以上のフラグ352、354を含むことができる。第1のフラグ352は、設定される(すなわち、メモリフィールド352に「1」が記憶される)と、キータッチまたはプレスイベントが発生し、対応するキーIDがデータフィールド356などの特定のメモリフィールドに記憶されたことを示すことができる。第2のフラグ354は、その設定によって、イベントがキータッチイベントであるか(たとえば、メモリフィールド354に「0」が記憶されることによって示される)、またはキープレスイベントであるか(たとえば、メモリフィールド354に「0」が記憶されることによって示される)を示すことができる。複数のキーパッド間でキープレスイベントを一意に識別するために、キーパッドIDまたはインデックスデータフィールド358とともにキーIDをキーIDデータフィールド356に記憶することができる。キープレスイベントに関係する他の情報を示すために追加のフラグを設定することができる。たとえば、キープレスイベントが、小型キーボード上に提示される「shift」、「control」または「alt」キーなどの別のキーの同時タッチ、ニアタッチ、またはプレスを含むときを示すように、フラグ(たとえば、フラグ354)を設定することができる。別の例として、キープレスイベントがキーリリースによって先行されなかった(キーが、延長された継続時間の間、下に保持されていることを示す)ことを示すように別のフラグを設定することができる。キーパッドプロトコル100によって解釈され得るキータッチまたはキープレスイベントに関する情報を通信するために、任意の数の追加のフラグおよびデータフィールドを、割込み、レジスタまたはデータ構造中に含めることができる。
【0059】
キーパッドプロトコル100にキータッチイベントが通知されると、キーパッドプロトコル100は、キータッチイベント情報を、ディスプレイのキーファンクションリビール部分中に提示できるファンクション説明に変換することができる。同様に、キーパッドプロトコル100にキープレスイベントが通知されると、キーパッドプロトコル100は、キープレスイベントを、アプリケーションが解釈できる情報に変換することができる。キータッチイベントおよびキープレスイベントを受信することにおいてキーパッドプロトコル100によって実装できる方法ステップの一例を図15に示す。上述のように、キーがプレスされると、ステップ240において、イベントがキーパッドハードウェアによって感知され、関連するキーパッドドライバにシグナリングされる。同様に、キーがプレスされると、ステップ241において、イベントがキーパッドハードウェアによって感知され、関連するキーパッドドライバにシグナリングされる。ステップ242において、キーパッドドライバは、キータッチまたはキープレスイベントを、(たとえば、図14を参照しながら上述した)信号、割込み、記憶データまたは他の形式の情報に変換し、キーパッドプロトコルに供給する。キーパッドドライバ110からキータッチまたはキープレスイベント信号を受信すると、ステップ244において、キーパッドプロトコル100は、メモリからまたはキーパッドドライバによって与えられた信号から、キーパッドIDおよびキーIDとともに、イベントをキータッチまたはキープレスイベントとして区別する1つまたは複数のフラグ値を取り出す。次いで、テスト245において、キーパッドプロトコル100は、イベントをタッチイベントとして処理すべきかまたはプレスイベントとして処理すべきかを判断するためにフラグ値(たとえば、フラグ354)をテストする。
【0060】
テスト245においてイベントがキープレスイベントであると判断された場合、ステップ246において、キーパッドプロトコル100は、キーIDおよびキーパッドIDを使用してキー変換テーブル320内の対応するデータレコードの位置を特定する。対応するデータレコードに記憶されたデータを使用して、ステップ248において、キーパッドプロトコル100は、特定のキープレスイベントに対応するアプリケーション180によって指定されたアプリケーションIDを取り出す。その情報を使用して、ステップ250において、キーパッドプロトコルはアプリケーション180に通信するための通知オブジェクトを作成する。最後に、ステップ252において、キーパッドプロトコルはキープレス通知オブジェクトをアプリケーション180に送信する。通知オブジェクトを送信する際に、キーパッドプロトコル100は、アプリケーション180にオブジェクトを直接送信するか、またはオペレーティングシステムまたはランタイム環境170を通して送信することができる。
【0061】
テスト245においてイベントがキータッチイベントであると判断された場合、キーパッドプロトコル100は、ステップ272においてキーIDおよびキーパッドIDを使用してキー変換テーブル320内の対応するデータレコードの位置を特定し、ステップ274においてキーに関連付けられたファンクション説明テキストまたはグラフィック情報を取り出す。そのテキストまたはグラフィック情報を使用して、ステップ276において、キーパッドプロトコルは、ディスプレイ内のキーファンクションリビールウィンドウ内に提示するためにディスプレイをフォーマッティングするかまたはディスプレイオブジェクトを生成する。最後に、ステップ278において、キーパッドプロトコル100は、キーファンクションリビールテキスト/グラフィックまたはディスプレイオブジェクトをディスプレイに送信する。キーファンクションリビールテキスト/グラフィックまたはディスプレイオブジェクトをディスプレイに送信する際に、キーパッドプロトコル100は、情報をディスプレイに直接送信するか、またはディスプレイ上の画像の生成を構成し、管理するディスプレイ層に情報を供給することができる。
【0062】
キープレスイベントを受信し、処理するプロセスは、図16に示すようにモバイルデバイス10中の様々なハードウェアおよびソフトウェア層の間の一連のメッセージで達成できる。
【0063】
キーがタッチまたはニアタッチされると、メッセージ241において、キーパッドはキーパッドドライバにキータッチイベント信号を送信する。今度は、メッセージ242aにおいて、キーパッドドライバは、キーパッドIDおよびキーIDとともにキータッチイベントフラグをキーパッドプロトコルに送信する。上述のように、このメッセージは、キーパッドプロトコルが周期的にアクセスするかあるいは設定フラグの検出時または割込みの受信時にアクセスするメモリロケーションに保存される情報の形態とすることができる。この情報を使用して、キーパッドプロトコルは、処理ステップ244および272〜276においてキータッチ通知オブジェクトを生成し、次いでメッセージ276においてキーファンクションリビールテキストまたはグラフィックをディスプレイに送信する。
【0064】
キーがプレスされると、メッセージ240aにおいて、キーパッドはキーパッドドライバにキープレスイベント信号を送信する。今度は、メッセージ242bにおいて、キーパッドドライバは、キーパッドIDおよびキーIDをキーパッドプロトコルに送信する。上述のように、このメッセージは、キーパッドプロトコルが周期的にアクセスするかあるいは設定フラグの検出時または割込みの受信時にアクセスするメモリロケーションに保存される情報の形態とすることができる。この情報を使用して、キーパッドプロトコルは、処理ステップ244および246〜250においてキープレス通知オブジェクトを生成し、次いでメッセージ252aにおいてランタイム環境にキー値を送信し、メッセージ253aにおいてアプリケーション180に中継する。代替的に、キーパッドプロトコルはキー値をアプリケーション180に直接通信することができる。さらに、キーパッドプロトコル100は、メッセージ254aにおいて、ディスプレイがキープレスイベントを反映し得る(たとえば、プレスされたキーの値をディスプレイ上に提示する)ようにキー値またはグラフィックをディスプレイに送信することができる。
【0065】
図16中のメッセージ240b〜254bに示すように後続のキープレスイベントは同様に処理される。このようにして、各キープレスイベントに関して、キーパッドプロトコル100は、キーパッドドライバ110からメッセージを受信し、変換されたキー値情報をアプリケーション180およびディスプレイに供給する。
【0066】
いくつかの状況では、キープレスイベントは、後続のキープレスのキー値またはファンクションを再定義するようにアプリケーション180に促すことができる。たとえば、アプリケーション180がMP3プレーヤなどのメディアプレーヤであり、第1のキープレスイベントがアプリケーションによってオーディオ再生の開始として解釈された(すなわち、第1のキープレスが「再生」ファンクションを有した)場合、アプリケーションは、後続のプレスがメディア再生の一時停止または停止として解釈される(すなわち、第2のキープレスが「停止」ファンクションを有する)ように同じキーの機能を変更することができる。図16は、この潜在力を、メッセージ256においてアプリケーション180がキー再定義コマンド(すなわち、新しい構成情報)をキーパッドプロトコル100に送信できることを示すことによって反映している。このメッセージは、同様のキー再定義メッセージ257を用いてランタイム環境層170によってキーパッドプロトコル100に中継される。キー再定義メッセージを受信すると、プロセス258において、キーパッドプロトコル100は、変更されたキー構成情報を反映するようにキー変換テーブル320を再構成する。次いで、メッセージ241および242aにおいてキーパッドプロトコルに通信される後続のキータッチイベントは、処理ステップ246〜250bにおいて、修正されたキー変換テーブル320に従ってキーパッドプロトコル100によって解釈され、それにより、メッセージ276において、再定義されたファンクションがキーファンクションリビールディスプレイ中に提示される。同様に、メッセージ240bおよび242bにおいてキーパッドプロトコルに通信される後続のキープレスイベントは、処理ステップ246〜250bにおいて、修正されたキー変換テーブル320に従ってキーパッドプロトコル100によって解釈される。再定義されたキー値またはファンクションは、メッセージ252bおよび253bにおいてアプリケーションに送信される。また、再定義されたキー値は、メッセージ254bにおいてディスプレイに送信される。
【0067】
図17〜25に示すいくつかの例を通して、様々な本実施形態の利点をさらに説明することができる。図17を参照すると、モバイルデバイス10は、多くのユーザにとって適切であろう数字0〜9を表示しているディスプレイキー402をもつセルフォンとすることができる。そのようなキーパッドは、一般に、(たとえば、SMSメッセージを入力するために)テキストに入力する際に有用となるように、選択されたキーに関連付けられた3つまたは4つの文字を含む。キー(たとえば、図17に示す「2」キー)にタッチまたはニアタッチすることによって、ディスプレイ13のキーファンクションリビールウィンドウ40中でキーの値をユーザに迅速に通知することができる。しかしながら、ユーザが非西洋の数字および文字を使用する言語を話し、読む場合、それらのユーザは、数字および文字が、異なるアルファベットで提示されたキーに関連付けられるように選択することができる。そのような変更は、様々な実施形態を使用して容易に実装でき、各キーの(1つまたは複数の)割当て値は、図18に示すように、キーのタッチまたはニアタッチとともに、選択されたアルファベットおよび/または数字でキーファンクションリビールウィンドウ40中に明らかにされる。キーパッドプロトコル100を用いない実施形態では、異なるアルファベットおよび/または数字はアプリケーションソフトウェア内に実装される。しかしながら、キーのタッチまたはニアタッチに応答して異なるスクリプト中のキー値を提示することは、モバイルデバイス10上で動作するアプリケーションソフトウェア(たとえば、電話アプリケーション)を実質的に変更する必要なしに、キーパッドプロトコル実施形態を使用して達成できる。この変更は、単に、たとえば、キーグラフィックスの異なるセットをキー変換テーブル320に記憶することによって達成できる。そのようなモバイルデバイスは、数字が異なる形式で提示される世界のいくつかの部分においてより有用となり得る。
【0068】
上記の実施形態では、キーがタッチまたはニアタッチされたままである限り、ディスプレイ上にキーファンクションリビールディスプレイを維持することができる。代替的に、ユーザがプリセット継続時間の前にキーにタッチするのを止めるか、あるいはプリセット継続時間を越えてキーにタッチまたはニアタッチし続ける場合でも、キータッチまたはニアタッチに続くプリセット継続時間の間、キーファンクションリビールディスプレイを維持することができる。この代替実装形態を達成するために、キータッチイベントは、キーファンクションリビールディスプレイがどのくらいの時間残っているかを判断するタイマを始動することもできる。
【0069】
様々な実施形態の柔軟性および有用性は、モバイルデバイスが、アプリケーションの動作をユーザにとってより直観的にするために非アルファベットユーザインターフェースを利用することができるアプリケーションを動作させているときに特に明らかである。たとえば、図19に、様々な実施形態の利益をもたないメディアプレーヤアプリケーションを実行しているモバイルデバイス10を示す。メディアプレーヤアプリケーションでは、キーパッドは、ボリューム制御、メディアの再生、停止または巻き戻しなど、メディアプレーヤファンクションに関連付けられたユーザコマンドを受信するように構成できる。固定キー20をもつモバイルデバイスでは、メディアプレーヤアプリケーションはファンクションを様々なキーに割り当てなければならない。キー割当てをユーザに通知するために、キーを様々なアプリケーションファンクションに関連付ける表示を提示することができる。図示の例では、キーメニューがモバイルデバイスディスプレイ13中に提示されている。この図が示すように、キーファンクションの表示がディスプレイ13領域のかなりの量を占め、したがって同時に表示できるメディアに関する情報量が減少する。したがって、そのようなアプリケーションでは、ユーザは、キーファンクション割当てを記憶し、必要なときにキーファンクションメニューを再び呼び出すことを期待される。
【0070】
様々な実施形態を使用して、図20および図21に示すようにディスプレイ13を遮るメニューを呼び出す必要なしに、様々なキーに割り当てられたファンクションをユーザに通知することができる。ユーザは、ディスプレイ13のキーファンクションリビールウィンドウ40中で現在割り当てられているファンクションを確認するために、タッチセンシティブキーパッド30上のキーにタッチまたはニアタッチするだけでよい。図20に示す例では、ユーザが「3」キーにタッチまたはニアタッチすると、ディスプレイ13のキーファンクションリビールウィンドウ40中に割り当てられたファンクション「早送り」を表示するようにモバイルデバイス10に促す。同様に、図21に示す例では、ユーザが「4」キーにタッチまたはニアタッチすると、ディスプレイ13のキーファンクションリビールウィンドウ40中に割り当てられたファンクション「一時停止」を表示するようにモバイルデバイス10に促す。タッチセンシティブキーパッドおよび本実施方法を用いて、図20および図21に示すようにメディアプレーヤディスプレイを遮ることなしに、キーに割り当てられたファンクションをユーザに通知することができる。割り当てられたファンクションをテキスト(すなわち、「早送り」または「一時停止」)として明らかにする代わりに、二重矢印が早送りを表し、または2本の縦棒が「一時停止」を表すなど、ファンクションをグラフィカルに明らかにすることができる。
【0071】
図22〜図25に、ゲームアプリケーションに関係する別の例を示す。図22を参照すると、従来型の固定ラベルキーを有するモバイルデバイス10上で動作するゲームアプリケーションは、ディスプレイ13に示すように特定の従来型のキー20に対するメニューマッピングキーファンクションを提供する必要がある。ファンクションメニューは、同時ゲームプレイを可能にするのにはディスプレイ13のあまりにも多くを占有するので、ユーザはキーファンクションを記憶することを期待される。
【0072】
様々な実施形態を使用して、図23〜図25に示すようにディスプレイ13を遮るメニューを呼び出す必要なしに、様々なキーに割り当てられたゲームファンクションをユーザに通知することができる。割り当てられたキーファンクションのメニューを提示する必要なしに、図23に示すようにゲームグラフィックスを提示するために全ディスプレイ13を使用することができる。ディスプレイ13のキーファンクションリビールウィンドウ40中で現在割り当てられているファンクションを確認するために、ユーザが単にタッチセンシティブキーパッド30上のキーにタッチまたはニアタッチすることによって、キーに割り当てられたゲームファンクションをユーザに通知することができる。図24に示す例では、ユーザが「1」キーにタッチまたはニアタッチすることにより、ディスプレイ13のキーファンクションリビールウィンドウ40中に割り当てられたファンクション「左折」を表示するようにモバイルデバイス10に促す。同様に、図25に示す例では、ユーザが「5」キーにタッチまたはニアタッチすることにより、ディスプレイ13のキーファンクションリビールウィンドウ40中に割り当てられたファンクション「ギアシフト」を表示するようにモバイルデバイス10に促す。
【0073】
様々な実施形態は、記載の方法のうちの1つまたは複数を実装するように構成されたソフトウェア命令を実行するプロセッサ11によって実装できる。そのようなソフトウェア命令は、デバイスのオペレーティングシステムソフトウェア、オペレーティングシステムによって実装される一連のAPIとして、または一実施方法を実装するコンパイルされたソフトウェアとしてメモリ12に記憶できる。さらに、ソフトウェア命令は、ランダムアクセスメモリ12、SDメモリチップなど、モバイルデバイス10にプラグ接続されるメモリモジュール、USB接続可能な外部メモリ(たとえば、「フラッシュドライブ」)などの外部メモリチップ、読取り専用メモリ(EEPROMなど)、ハードディスクメモリ、フロッピー(登録商標)ディスク、および/またはコンパクトディスクを含む、任意の形態の有形プロセッサ可読メモリに記憶できる。
【0074】
本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実装できることを当業者なら諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【0075】
本明細書で開示する実施形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施するか、プロセッサによって実行されるソフトウェアモジュールで実施するか、またはその2つの組合せで実施することができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体のいずれかとすることができるプロセッサ可読メモリ中に常駐することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化することができる。プロセッサおよび記憶媒体はASIC中に常駐することができる。ASICはユーザ端末またはモバイルデバイス中に常駐することができる。代替として、プロセッサおよび記憶媒体は、ユーザ端末またはモバイルデバイス中に個別構成要素として常駐することができる。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、コンピュータプログラム製品に組み込むことができる、機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、あるいはそのセットとして常駐することができる。
【0076】
様々な実施形態の上記の説明は、当業者が本発明を実施または使用できるようにするために提供したものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用できる。したがって、本発明は、本明細書で示した実施形態に限定されるものでなく、代わりに、特許請求の範囲は、本明細書で開示した原理および新規の特徴に合致する最も広い範囲を与えられるべきである。

【特許請求の範囲】
【請求項1】
コンピューティングデバイス上で動作しているアプリケーションによってキーに割り当てられたファンクションを明らかにするための方法であって、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生することと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断することと、
前記割り当てられたキー値またはファンクションの表示を提示することと
を備える方法。
【請求項2】
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信することと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信することと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断することと
をさらに備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
請求項1に記載の方法。
【請求項3】
前記キーパッド構成命令をキーパッド変換テーブルに記憶することをさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項2に記載の方法。
【請求項4】
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶することと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと
をさらに備える、請求項2に記載の方法。
【請求項5】
前記アプリケーションにキーパッド機能を通知することをさらに備える、請求項4に記載の方法。
【請求項6】
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信することと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知することと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信することと
を備える、請求項2に記載の方法。
【請求項7】
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信することと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示することと
をさらに備える、請求項3に記載の方法。
【請求項8】
前記コンピューティングデバイスがモバイルデバイスである、請求項1に記載の方法。
【請求項9】
前記コンピューティングデバイスがセルラー電話である、請求項1に記載の方法。
【請求項10】
プロセッサと、
前記プロセッサに結合されたディスプレイと、
前記プロセッサに結合され、キーを含む、タッチセンシティブキーパッドと、
前記プロセッサに結合されたメモリと
を備える、コンピューティングデバイスであって、
前記プロセッサが、
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に表示するステップと
を実行するためのソフトウェア命令を用いて構成された
コンピューティングデバイス。
【請求項11】
前記プロセッサが、
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
をさらに実行するためのソフトウェア命令を用いて構成され、
前記キーパッドプロトコルが、前記ディスプレイ上の前記割り当てられたキー値またはファンクションの前記提示をフォーマッティングする、
請求項10に記載のコンピューティングデバイス。
【請求項12】
前記プロセッサが、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらに実行するためのソフトウェア命令を用いて構成され、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項11に記載のコンピューティングデバイス。
【請求項13】
前記プロセッサが、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、請求項11に記載のコンピューティングデバイス。
【請求項14】
前記プロセッサが、前記アプリケーションにキーパッド機能を通知するステップをさらに実行するためのソフトウェア命令を用いて構成された、請求項13に記載のコンピューティングデバイス。
【請求項15】
前記プロセッサが、
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、請求項11に記載のコンピューティングデバイス。
【請求項16】
前記プロセッサが、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションを前記ディスプレイ上に提示するとき、前記グラフィックを提示するステップと
をさらに実行するためのソフトウェア命令を用いて構成された、請求項12に記載のコンピューティングデバイス。
【請求項17】
前記コンピューティングデバイスがモバイルデバイスである、請求項10に記載のコンピューティングデバイス。
【請求項18】
前記コンピューティングデバイスがセルラー電話である、請求項10に記載のコンピューティングデバイス。
【請求項19】
キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するステップと、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するステップと
をコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した有形記憶媒体。
【請求項20】
前記有形記憶媒体が、
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するステップと、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するステップと、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの前記表示の前記提示をフォーマッティングする、
請求項19に記載の有形記憶媒体。
【請求項21】
前記有形記憶媒体が、前記キーパッド構成命令をキーパッド変換テーブルに記憶するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有し、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、請求項20に記載の有形記憶媒体。
【請求項22】
前記有形記憶媒体が、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するステップと、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項20に記載の有形記憶媒体。
【請求項23】
前記有形記憶媒体が、前記アプリケーションにキーパッド機能を通知するステップをさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項22に記載の有形記憶媒体。
【請求項24】
前記有形記憶媒体が、
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するステップと、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するステップと、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたソフトウェア命令を有する、請求項20に記載の有形記憶媒体。
【請求項25】
前記有形記憶媒体が、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するステップと、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するステップと
をさらにコンピューティングデバイスのプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項21に記載の有形記憶媒体。
【請求項26】
前記有形記憶媒体が、モバイルデバイスプロセッサによって読取り可能であり、前記記憶媒体が、前記モバイルデバイスプロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項20に記載の有形記憶媒体。
【請求項27】
前記有形記憶媒体が、セルラー電話プロセッサによって読取り可能であり、前記記憶媒体が、前記セルラー電話プロセッサ上で実行されるように構成されたプロセッサ実行可能ソフトウェア命令を有する、請求項28に記載の有形記憶媒体。
【請求項28】
前記キーのタッチまたはニアタッチを感知し、キータッチイベント信号を発生するための手段と、
前記アプリケーションによって前記キータッチまたはニアタッチに関連付けられた前記キーに割り当てられたキー値またはファンクションを判断するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するための手段と
を備えるコンピューティングデバイス。
【請求項29】
キーパッドプロトコルにおいて、前記アプリケーションからキーパッド構成命令を受信するための手段と、
前記キーパッドプロトコルにおいて前記キータッチイベント信号を受信するための手段と、
前記キーパッドプロトコルにおいて前記受信したキーパッド構成命令を使用して、前記アプリケーションによって前記キーに割り当てられた前記キー値またはファンクションを判断するための手段と
をさらに備え、
前記キーパッドプロトコルが、前記割り当てられたキー値またはファンクションの表示を提示するための前記手段によって、前記提示をフォーマッティングする、
請求項28に記載のコンピューティングデバイス。
【請求項30】
前記キーパッド構成命令をキーパッド変換テーブルに記憶するための手段をさらに備え、前記キーに割り当てられた前記キー値またはファンクションが、前記キーパッド変換テーブルを使用して判断される、
請求項29に記載のコンピューティングデバイス。
【請求項31】
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドのリストを記憶するための手段と、
前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と
をさらに備える、請求項29に記載のコンピューティングデバイス。
【請求項32】
前記アプリケーションにキーパッド機能を通知するための手段
をさらに備える、請求項31に記載のコンピューティングデバイス。
【請求項33】
前記キーパッドプロトコルにおいて、前記アプリケーションから利用可能なキーパッドの要求を受信するための手段と、
前記アプリケーションから受信した前記要求に応答して、前記コンピューティングデバイスに接続されたアクティブにされたキーパッドを前記アプリケーションに通知するための手段と、
前記キーパッドプロトコルにおいて、前記アプリケーションからキーパッド選択を受信するための手段と
をさらに備える、請求項29に記載のコンピューティングデバイス。
【請求項34】
前記キーパッドプロトコルにおいて、前記アプリケーションからキーに関係するグラフィックを受信するための手段と、
前記割り当てられたキー値またはファンクションの表示を提示するときに前記グラフィックを提示するための手段と
をさらに備える、請求項30に記載のコンピューティングデバイス。
【請求項35】
前記コンピューティングデバイスがモバイルデバイスである、請求項28に記載のコンピューティングデバイス。
【請求項36】
前記コンピューティングデバイスがセルラー電話である、請求項28に記載のコンピューティングデバイス。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公表番号】特表2011−525658(P2011−525658A)
【公表日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2011−514564(P2011−514564)
【出願日】平成20年7月16日(2008.7.16)
【国際出願番号】PCT/US2008/070223
【国際公開番号】WO2009/154638
【国際公開日】平成21年12月23日(2009.12.23)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】