(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-02
(45)【発行日】2023-06-12
(54)【発明の名称】画面用の手書きキーボード
(51)【国際特許分類】
G06F 3/04883 20220101AFI20230605BHJP
G06V 30/19 20220101ALI20230605BHJP
G06V 30/32 20220101ALI20230605BHJP
【FI】
G06F3/04883
G06V30/19 G
G06V30/32
【外国語出願】
(21)【出願番号】P 2020205139
(22)【出願日】2020-12-10
(62)【分割の表示】P 2019040836の分割
【原出願日】2017-05-31
【審査請求日】2021-01-07
(32)【優先日】2016-06-12
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ディクソン, ライアン エス.
(72)【発明者】
【氏名】チャウダリ, イムラン
(72)【発明者】
【氏名】グリフィン, ブラッドリー ダブリュー.
(72)【発明者】
【氏名】ジョン, ティファニー エス.
【審査官】岩橋 龍太郎
(56)【参考文献】
【文献】特開2004-246607(JP,A)
【文献】特開2016-024684(JP,A)
【文献】特開2014-056389(JP,A)
【文献】米国特許出願公開第2015/0193141(US,A1)
【文献】特開2012-238108(JP,A)
【文献】米国特許出願公開第2014/0361983(US,A1)
【文献】米国特許出願公開第2012/0216113(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/03
G06F 3/041
G06F 3/048-3/04895
G06V 30/00-30/12
G06V 30/18-30/222
G06V 30/226-30/32
G06V 30/42-30/424
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサ、タッチスクリーン、ディスプレイを有する電子デバイスにおいて、
テキストエリア及びストローク入力エリアを含むユーザ入力インタフェースを前記ディスプレイに表示することであって、前記テキストエリアは前記ストローク入力エリアと重なり合わない、表示することと、
前記タッチスクリーンの前記ストローク入力エリアで第1のストロークセットを受け付けることと、
前記第1のストロークセットに基づいて
、複数の文字を含む第1の単語を表す第1のテキストを決定することと、
前記テキストエリアに前記第1のテキストを表示することと、
前記第1のストロークセットを受け付け、前記第1のテキストを表示した後に、前記タッチスクリーンの前記ストローク入力エリアで第2のストロークセットを受け付けることであって、前記第2のストロークセットは、前記第1のストロークセットを受け付けてからある期間の後に受け付けられる、ことと、
前記第1のストロークセットを受け付けてからの前記期間が閾値よりも短いとの判定に従って、
前記第1のストロークセットと前記第2のストロークセットとに基づいて修正された第1のテキストを決定することと、
前記第1のテキストの前記表示を前記修正された第1のテキストで置き換えることと、
前記第1のストロークセットを受け付けてからの前記期間が前記閾値を超えるとの判定に従って、
前記第1のストロークセットとは独立に、前記第2のストロークセットに基づいて
、複数の文字を含む第2の単語を表す第2のテキストを決定することと、
前記第2のテキストを前記テキストエリアに表示することと
を含む方法。
【請求項2】
前記第1のテキストの表示は、前記第2のストロークセットを受け付けるよりも前に行われる、請求項1に記載の方法。
【請求項3】
前記修正された第1のテキストを決定することは、前記修正された第1のテキストを決定する時の前記電子デバイスの現在のコンテキストに更に基づく、請求項1または2に記載の方法。
【請求項4】
前記第2のストロークセットを受け付けた後、かつ、前記修正された第1のテキストを表示した後に、前記タッチスクリーンの前記ストローク入力エリアで第3のストロークセットを受け付けることと、
前記第3のストロークセットに基づいて第2のテキストを決定することと、
前記修正された第1のテキストと共に前記第2のテキストを表示することと、
を更に含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記修正された第1のテキストは、前記第1のテキストと単一の文字のみが異なっている、請求項1から
4のいずれか一項に記載の方法。
【請求項6】
前記修正された第1のテキストは、前記第1のテキストと、前記修正された第1のテキスト又は前記第1のテキストの最後の文字のみが異なっている、請求項1から
5のいずれか一項に記載の方法。
【請求項7】
前記第2のストロークセットの少なくとも一部が前記第1のストロークセットと重なり合う、請求項1から
6のいずれか一項に記載の方法。
【請求項8】
タッチスクリーン、及び、ディスプレイを有する電子デバイスの1つ以上のプロセッサによって実行されると、請求項1から
7のいずれか一項に記載の方法を前記電子デバイスに実行させるように構成された命令群を含むコンピュータプログラム。
【請求項9】
電子デバイスであって、
ディスプレイと、
タッチスクリーンと、
1つ以上のプロセッサと、
前記1つ以上のプロセッサにより実行されるように構成された1つ以上のプログラムを記憶したメモリであって、前記1つ以上のプログラムは、請求項1から
7のいずれか一項に記載の方法を実行するための命令群を含む、電子デバイス。
【請求項10】
ディスプレイと、
タッチ感知面と、
請求項1から
7のいずれか一項に記載の方法を実行するための手段と
を備える電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してコンピュータユーザインタフェースに関し、より具体的には小型画面上での手書きのための技術に関する。
【背景技術】
【0002】
ウェアラブル電子デバイスは、情報を表示するための、かつ電子デバイス及び同デバイスに記憶されたコンテンツとの最小限のインタフェースインタフェースを可能にするためのディスプレイ画面を有することが多い。
【発明の概要】
【0003】
これらのウェアラブルデバイスのいくつかは、タッチ感知面を含むが、画面は小さく、デバイスにテキストを直接入力するのは困難である。口述入力等、他のデータ入力方法が可能であるが、マイナス面もある。メッセージングの場合、既定のメッセージが役立つのは、限られた数の既定のメッセージのうちの1つが現在の状況に当てはまる時のみである。
【0004】
しかし、電子デバイスを用いた小型画面上での手書きのためのいくつかの技術は、概して煩雑であり非効率である。例えば、既存のいくつかの技術では、複数のキー押圧すなわちキーストロークを含み得る、複雑で時間がかかるユーザインタフェースが用いられる。既存の技術では、必要以上に時間がかかり、ユーザの時間及びデバイスのエネルギーを無駄にしてしまう。この後者の考慮事項は、バッテリ動作式のデバイスにおいては特に重要である。
【0005】
したがって、本技術は、小型画面上での手書きのための、より速く、より効率的な方法及びインタフェースを伴う電子デバイスを提供する。かかる方法及びインタフェースは任意選択的に、小型画面上での手書きのための他の方法を補完するか、又はそれに取って代わる。かかる方法及びインタフェースは、ユーザの認識的負担を軽減し、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作式のコンピューティングデバイスの場合には、このような方法及びインタフェースにより、電力が節約され、バッテリを充電する間隔が増す。例えば、後述する技術では、認識済みのテキストを手動及び自動の両方で修正すること、ストローク入力をインテリジェントに収集及び処理すること、並びにストローク入力が現在の文字又は次の文字に属する場合を認識することを考慮することによって、タッチ感知面を通じて入力された手書きがより効率的に認識される。
【0006】
ある実施形態によれば、1つ以上のプロセッサ、タッチ感知面、ディスプレイ、及び回転可能入力機構を有するポータブル電子デバイスにおいて、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示することと、タッチ感知面のストローク入力エリアで第1のストロークセットを受けることと、第1のストロークセットに基づいて第1のテキストを決定することと、ディスプレイのメッセージエリアに第1のテキストを表示することと、第1のテキストに基づいて1つ以上の候補を決定することであって、1つ以上の候補は、第1のテキストに対する1つ以上の変更を含む、ことと、1つ以上の候補を決定した後に、回転可能入力機構を介してユーザ入力を受けることと、ユーザ入力に応じて、1つ以上の候補のうちの少なくとも1つを表示し、1つ以上の候補のうちの選択された候補を指示する選択インジケータを表示することと、少なくとも1つの候補又は1つ以上の候補及び選択インジケータを表示した後に、第1のテキストの表示を選択された候補の表示に置換することと、を行う。
【0007】
一時的コンピュータ可読記憶媒体のある実施形態は、タッチ感知面、ディスプレイ、及び回転可能入力機構を有するポータブル電子デバイスの1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶し、1つ以上のプログラムは、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示し、タッチ感知面のストローク入力エリアで第1のストロークセットを受け、第1のストロークセットに基づいて第1のテキストを決定し、ディスプレイのメッセージエリアに第1のテキストを表示し、第1のテキストに基づいて1つ以上の候補であって、1つ以上の候補は、第1のテキストに対する1つ以上の変更を含む、を決定し、1つ以上の候補を決定した後に、回転可能入力機構を介してユーザ入力を受け、ユーザ入力に応じて、1つ以上の候補のうちの少なくとも1つを表示し、1つ以上の候補のうちの選択された候補を指示する選択インジケータを表示し、少なくとも1つの候補又は1つ以上の候補及び選択インジケータを表示した後に、第1のテキストの表示を選択された候補の表示に置換する、命令を含む。
【0008】
ある実施形態によれば、1つ以上のプロセッサ、タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスにおいて、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示することと、タッチ感知面のストローク入力エリアで第1のストロークセットを受けることと、第1のストロークセットに基づいて第1のテキストを決定することと、メッセージエリアに第1のテキストを表示することと、第1のストロークセットを受け第1のテキストを表示した後に、タッチ感知面のストローク入力エリアで第2のストロークセットを受けることと、第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定することと、第1のテキストの表示を修正された第1のテキストと置換することと、を行う。
【0009】
一時的コンピュータ可読記憶媒体のある実施形態は、タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスの1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶し、1つ以上のプログラムは、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示し、タッチ感知面のストローク入力エリアで第1のストロークセットを受け、第1のストロークセットに基づいて第1のテキストを決定し、メッセージエリアに第1のテキストを表示し、第1のストロークセットを受け第1のテキストを表示した後に、タッチ感知面のストローク入力エリアで第2のストロークセットを受け、第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定することと、第1のテキストの表示を修正された第1のテキストと置換する、命令を含む。
【0010】
ある実施形態によれば、1つ以上のプロセッサ、タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスにおいて、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示することと、タッチ感知面のストローク入力エリアで第1のストロークセットを受けることと、第1のストロークセットに基づいて第1のテキストの決定を開始することと、第1のストロークセットを受けた後に、メッセージエリアに第1のテキストを表示せずに、タッチ感知面のストローク入力エリアで第2のストロークセットを受けることと、第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定することと、メッセージエリアに修正された第1のテキストを表示することと、を行う。
【0011】
タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスの1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶する一時的コンピュータ可読記憶媒体のある実施形態であって、1つ以上のプログラムは、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示し、タッチ感知面のストローク入力エリアで第1のストロークセットを受け、第1のストロークセットに基づいて第1のテキストの決定を開始し、メッセージエリアに第1のテキストを表示せずに、第1のストロークセットを受けた後に、タッチ感知面のストローク入力エリアで第2のストロークセットを受け、第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定し、メッセージエリアに修正された第1のテキストを表示する、命令を含む。
【0012】
ある実施形態によれば、1つ以上のプロセッサ、タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスにおいて、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示することと、タッチ感知面のストローク入力エリアで第1のストロークを受けることと、第1のストロークを受けた後の第1の時間に、タッチ感知面で第2のストロークを受けることであって、第2のストロークは、第1のストロークとは異なる、ことと、第1の時間が閾値時間を超えているかどうかを判定することと、第1の時間が閾値時間を超えているとの判定に従って、第2のストロークではなく第1のストロークに基づいて第1の文字を決定することと、第1の時間が閾値時間未満であるとの判定に従って、第1のストローク及び第2のストロークに基づいて第1の文字を決定することと、メッセージエリアに第1の文字を表示することと、を行う。
【0013】
一時的コンピュータ可読記憶媒体のある実施形態は、タッチ感知面、ディスプレイ、及び回転可能入力機構を有する電子デバイスの1つ以上のプロセッサによって実行されるように構成された1つ以上のプログラムを記憶し、1つ以上のプログラムは、メッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースをディスプレイに表示し、タッチ感知面のストローク入力エリアで第1のストロークを受け、第1のストロークを受けた後の第1の時間に、タッチ感知面で第2のストロークであって、第2のストロークは、第1のストロークとは異なる、受け、第1の時間が閾値時間を超えているかどうかを判定し、第1の時間が閾値時間を超えているとの判定に従って、第2のストロークではなく第1のストロークに基づいて第1の文字を決定し、第1の時間が閾値時間未満であるとの判定に従って、第1のストローク及び第2のストロークに基づいて第1の文字を決定し、メッセージエリアに第1の文字を表示する、命令を含む。
【0014】
これらの機能を実行する実行可能命令は、任意選択的に、非一時的コンピュータ可読記憶媒体又は1つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に含まれる。これらの機能を実行する実行可能命令は、任意選択的に、一時的コンピュータ可読記憶媒体又は1つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に含まれる。
【0015】
このため、小型画面上での手書きのための、より速く、より効率的な方法及びインタフェースをデバイスが備え、それによって、このようなデバイスの有効性、効率、及びユーザ満足度が増す。このような方法及びインタフェースは、小型画面上での手書きのための他の方法を補完するか又は置き換えてもよい。
【図面の簡単な説明】
【0016】
上記の様々な実施形態をより良く理解するために、下記の図面と併せて、以下の実施形態の説明を参照されたい。類似の参照番号は、図面全体を通じて、対応する部品を指す。
【0017】
【
図1A】いくつかの実施形態に係る、タッチ感知ディスプレイを備えたポータブル多機能デバイスを示すブロック図である。
【0018】
【
図1B】いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。
【0019】
【
図2】いくつかの実施形態に係る、タッチスクリーンを有するポータブル多機能デバイスを示す図である。
【0020】
【
図3】いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備えた例示的な多機能デバイスのブロック図である。
【0021】
【
図4A】いくつかの実施形態に係る、ポータブル多機能デバイスのアプリケーションメニューのための例示的なユーザインタフェースを示す図である。
【0022】
【
図4B】いくつかの実施形態に係る、ディスプレイとは別個のタッチ感知面を有する多機能デバイスのための例示的なユーザインタフェースを示す図である。
【0023】
【
図5A】いくつかの実施形態に係る、パーソナル電子デバイスを示す図である。
【0024】
【
図5B】いくつかの実施形態に係る、パーソナル電子デバイスを示すブロック図である。
【0025】
【
図6A】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6B】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6C】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6D】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6E】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6F】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6G】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6H】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6I】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6J】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6K】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6L】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6M】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6N】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6O】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6P】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6Q】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図6R】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【0026】
【
図7】タッチ感知面上での手書きのための方法を示すフロー図である。
【0027】
【
図8】電子デバイスの例示的な機能ブロック図である。
【0028】
【
図9A】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9B】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9C】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9D】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9E】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9F】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9G】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9H】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図9I】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【0029】
【
図10】タッチ感知面上での手書きのための方法を示すフロー図である。
【0030】
【
図11】電子デバイスの例示的な機能ブロック図である。
【0031】
【
図12A】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12B】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12C】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12D】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12E】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12F】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12G】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12H】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12I】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12J】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12K】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図12L】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【0032】
【
図13】タッチ感知面上での手書きのための方法を示すフロー図である。
【0033】
【
図14】電子デバイスの例示的な機能ブロック図である。
【0034】
【
図15A】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15B】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15C】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15D】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15E】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15F】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15G】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15H】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15I】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【
図15J】画面上での手書きのための例示的なユーザインタフェースを示す図である。
【0035】
【
図16】タッチ感知面上での手書きのための方法を示すフロー図である。
【0036】
【
図17】電子デバイスの例示的な機能ブロック図である。
【発明を実施するための形態】
【0037】
以下の説明では、例示的な方法、パラメータなどが記載される。しかし、かかる説明は、本開示の範囲に対する制限を意図するものではなく、例示的な実施形態の説明として提供されることを認識されたい。
【0038】
小型画面上での手書きのための効率的な方法及びインタフェースを提供する電子デバイスが必要である。例えば、小型のタッチ感知面を有するウェアラブルデバイスは、一部のコンテンツ及びデータへのアクセス及びナビゲーションを考慮するが、現在のところテキストデータを直接入力する時に、これらの画面を使用するのは困難である。本明細書に記述する技術は、タッチ感知面、特に小さなタッチ感知面上でのより良好な手書き入力をもたらす。そのような技術は、小型画面に手書きを入力するユーザの認識的負担を軽減し、それによって生産性を高め得る。更には、そのような技術は、通常であれば冗長なユーザ入力に対して浪費される、プロセッサ及びバッテリの電力を削減することができる。
【0039】
以下、
図1A~
図1B、
図2、
図3、
図4A~
図4B、及び
図5A~
図5Hは、イベント通知を管理するための技術を実行するための例示的なデバイスの説明を提供する。
図6A~
図6Rは、イベント通知を管理するための例示的なユーザインタフェースを示す図である。
図7は、いくつかの実施形態に係る、イベント通知を管理する方法を示すフロー図である。
図6A~
図6Rにおけるユーザインタフェースは、
図7における処理を含む、以下に説明される処理を例示するために用いられる。
【0040】
図9A~
図9Iは、イベント通知を管理するための例示的なユーザインタフェースを示している。
図10は、いくつかの実施形態に係る、イベント通知を管理する方法を示すフロー図である。
図9A~
図9Iにおけるユーザインタフェースは、
図10Bにおける処理を含む、以下に説明される処理を例示するために用いられる。
【0041】
図12A~
図12Lは、イベント通知を管理するための例示的なユーザインタフェースを示している。
図13は、いくつかの実施形態に係る、イベント通知を管理する方法を示すフロー図である。
図12A~
図12Lにおけるユーザインタフェースは、
図13における処理を含む、以下に説明される処理を例示するために用いられる。
【0042】
図15A~
図15Jは、イベント通知を管理するための例示的なユーザインタフェースを示している。
図16は、いくつかの実施形態に係る、イベント通知を管理する方法を示すフロー図である。
図15A~
図15Jにおけるユーザインタフェースは、
図16における処理を含む、以下に説明される処理を例示するために用いられる。
【0043】
以下の説明では、様々な要素を説明するために「第1」、「第2」などの用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1のタッチは第2のタッチと称することができ、同様に、第2のタッチは第1のタッチと称し得る。第1のタッチと第2のタッチは共にタッチであるが、同じタッチではない。
【0044】
本明細書において様々な記載の実施形態の説明で用いられている用語は、特定の実施形態のみを説明することを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用される時、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用される時に、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(備える)」、及び/又は「comprising(備える)」は、本明細書で使用される場合、記述される特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群の存在若しくは追加を排除するものではないことが、更に理解されるであろう。
【0045】
用語「if(~場合に)」は、任意選択的に、文脈に応じて「when(~時に)」、「upon(~時に)」、「in response to determining(~との判定に応じて)」、又は「in response to detecting(~を検出するのに応じて)」を意味すると解釈される。同様に、語句「if it is determined(~と決定される場合には)」又は「if (a stated condition or event) is detected((記述される条件又はイベント)が検出される場合には)」は、任意選択的に、文脈に応じて「upon determining(~と決定されると)」、又は「in response to determining(~との判定に応じて)」、又は「upon detecting(the stated condition or event)((記述される条件又はイベント)が検出されると)」、又は「in response to detecting(the stated condition or event)((記述される条件又はイベント)の検出に応じて)」を意味するものと解釈される。
【0046】
電子デバイス、かかるデバイスのユーザインタフェース、及びかかるデバイスを使用するための関連する処理の実施形態を説明する。いくつかの実施形態では、このデバイスは、PDA機能及び/又は音楽再生機能などの他の機能をも含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、限定を伴わずに、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含む。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ又はタブレットコンピュータなど他のポータブル電子デバイスも、任意選択的に、使用できる。また、いくつかの実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えるデスクトップコンピュータであることを理解されたい。
【0047】
以下の考察では、ディスプレイ及びタッチ感知面を含む電子デバイスを説明する。しかし、この電子デバイスは、物理的なキーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理的なユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
【0048】
このデバイスは、典型的には、描画アプリケーション、プレゼンテーションアプリケーション、文書作成アプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽再生アプリケーション、及び/又はデジタル映像再生アプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
【0049】
このデバイスで実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理的なユーザインタフェースデバイスを、任意選択的に、使用する。タッチ感知面の1つ以上の機能、並びにデバイスに表示される対応する情報は、アプリケーション毎に、及び/又は対応するアプリケーション内で、任意選択的に、調節及び/又は変更される。このように、デバイスの共通の(タッチ感知面などの)物理的なアーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを有する様々なアプリケーションを、任意選択的にサポートする。
【0050】
ここで、タッチ感知ディスプレイを備えたポータブルデバイスの実施形態に注目を向ける。
図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を備えたポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイ112は、便宜上「タッチスクリーン」と呼ばれる場合があり、タッチ感知ディスプレイシステムとして、既知である場合又は呼ばれる場合もある。デバイス100は、メモリ102(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、他の入力制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ165を任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などの、タッチ感知面に触知出力を生成する)ための、1つ以上の触知出力生成器167を任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して任意選択的に通信する。
【0051】
本明細書及び特許請求の範囲で用いられている場合、用語、タッチ感知面上の接触の「強度」は、タッチ感知面上の接触(例えば、指接触)の力又は圧力(単位面積当たりの力)、又は、タッチ感知面上の接触の力若しくは圧力の代用物(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、何百もの異なる値(例えば、少なくとも256)を含む、値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、決定(又は、測定)される。例えば、タッチ感知面の下に又は隣接して配置された1つ以上の力センサは、タッチ感知面の様々な点における力を測定するために、任意選択的に使用される。いくつかの実装において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触力の推定値を決定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を決定する。あるいは、タッチ感知面で検出される接触領域のサイズ及び/又はその変化、接触に近接するタッチ感知面の電気容量及び/又はその変化、並びに/若しくは、接触に近接するタッチ感知面の抵抗及び/又はその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。いくつかの実装例では、接触の力又は圧力の代替的測定値は、強度閾値を超えているかどうかを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。いくつかの実装例では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているかどうかを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/又は、ユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御部を介して)受けるための、面積が制限されている、低減されたサイズのデバイスで、他の場合であればユーザによってアクセスすることが不可能であり得る、追加的なデバイス機能への、ユーザのアクセスが考慮される。
【0052】
本明細書及び特許請求の範囲で用いられる場合、用語「触知出力」は、デバイスの従前の位置に対するデバイスの物理的な変位、デバイスの構成要素(例えば、タッチ感知面)のデバイスの別の構成要素(例えば、筐体)に対する物理的な変位、又は、ユーザの触感によりユーザによって検出されるデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的な変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的な特性の認識された変化に相当する触感として、ユーザによって解釈されるであろう。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理的なアクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押圧された(例えば、変位された)タッチ感知面に関連付けられた物理的なアクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。ユーザによるタッチのかかる解釈は、ユーザの個別の感覚認知によるが、大多数のユーザに共通したタッチの感覚認知が数多くある。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものとして記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はその構成要素の物理的な変位に対応する。
【0053】
デバイス100は、ポータブル多機能デバイスの一例に過ぎず、デバイス100は、示されているよりも多くの又は少ない構成要素を、任意選択的に、有し、2つ以上の構成要素を、任意選択的に、組み合わせ、又は、異なる構成又は配置の構成要素を、任意選択的に、有することに注意すべきである。
図1Aに示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【0054】
メモリ102は、高速ランダムアクセスメモリを、任意選択的に、含み、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体記憶デバイスなどの不揮発性メモリを、任意選択的に、また含む。メモリコントローラ122は、任意選択的に、デバイス100の他の構成要素によるメモリ102へのアクセスを制御することができる。
【0055】
周辺機器インタフェース118は、デバイスの入力及び出力周辺機器をCPU120及びメモリ102に結合するために使用し得る。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため並びにデータ処理を行うために、メモリ102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを動作させたり、又は実行したりする。いくつかの実施形態では、周辺機器インタフェース118、CPU120、及びメモリコントローラ122は任意選択的に、チップ104などの単一チップ上に実装される。いくつかの他の実施形態において、これらは、個別のチップ上に任意選択的に実装される。
【0056】
RF(無線周波数)回路108は、電磁信号とも称されるRF信号を受信及び送信する。RF回路108は、電気信号を電磁信号に/電磁信号を電気信号に変換し、その電磁信号を介して、通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、これらの機能を実行するための周知の回路を任意選択的に含み、それらの回路としては、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどが挙げられるが、これらに限定されない。RF回路108は、ワールドワイドウェブ(WWW)とも称されるインターネットなどのネットワーク、セルラ電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)などの、イントラネット及び/又は無線ネットワーク、並びに他のデバイスと、無線通信によって任意選択的に通信する。RF回路108は、短距離通信無線(short-range communication radio)などにより、近距離通信(NFC)フィールドを検出するための周知の回路を、任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(Global System for Mobile Communications、GSM(登録商標))、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access、HSUPA)、Evolution,Data-Only(EV-DO)、HSPA、HSPA+、2重セルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Bluetooth Low Energy(BTLE)、Wireless Fidelity(Wi-Fi)(登録商標)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、及び/又はIEEE 802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/又はポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、及び/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
【0057】
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。オーディオ回路110は、マイクロフォン113により音波から変換された電気信号もまた受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、処理するためにオーディオデータを周辺機器インタフェース118に送信する。オーディオデータは、周辺機器インタフェース118によって任意選択的に、メモリ102及び/若しくはRF回路108から取り込まれ、並びに/又はメモリ102及び/若しくはRF回路108へ送信される。いくつかの実施形態では、オーディオ回路110はヘッドセットジャック(例えば、
図2の212)を更に備える。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインタフェースを提供する。
【0058】
I/Oサブシステム106は、タッチスクリーン112及び他の入力制御デバイス116などのデバイス100の入出力周辺機器を周辺機器インタフェース118に結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力制御デバイス116との間で、電気信号を受信/送信する。他の入力制御デバイス116は、任意選択的に、物理的なボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイアル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)160は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、
図2の208)は、任意選択的に、スピーカ111及び/又はマイクロフォン113の音量調節のための、アップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、
図2の206)を含む。
【0059】
2005年12月23日に出願された、米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、プッシュボタンの素早い押圧により、タッチスクリーン112のロックが任意選択的に解除されるか、又はデバイスのロック解除にタッチスクリーン上のジェスチャを用いる処理が任意選択的に開始されてもよい。この特許は、その全体が本明細書において参照により組み込まれている。プッシュボタン(例えば、206)をより長い押圧ことにより、デバイス100の電源を任意選択的にオンオフする。ボタンのうちの1つ以上の機能は、任意選択的に、ユーザによってカスタマイズ可能である。タッチスクリーン112は、仮想又はソフトボタン、及び1つ以上のソフトキーボードを実現するために用いられる。
【0060】
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112から電気信号を受信し、それへ電気信号を送信する。タッチスクリーン112は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びこれらの任意の組み合わせ(総称して「グラフィック」と称する)を、任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、任意選択的にユーザインタフェースオブジェクトに対応する。
【0061】
タッチスクリーン112は、触覚及び/又は触覚接触に基づくユーザからの入力を受けるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン112及びディスプレイコントローラ156は(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン112で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン112に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。ある例示的な実施形態では、タッチスクリーン112とユーザとの間の接触点は、ユーザの指に対応する。
【0062】
タッチスクリーン112には、任意選択的に、LCD(液晶ディスプレイ)技術、LPD(発光ポリマディスプレイ)技術、又はLED(発光ダイオード)技術が用いられるが、他の実施形態では、他のディスプレイ技術が用いられる。タッチスクリーン112及びディスプレイコントローラ156は、静電容量技術、抵抗性技術、赤外線技術、及び表面超音波技術、並びに、タッチスクリーン112との1つ以上の接触点を決定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及び任意の移動又はその中断を任意選択的に検出する。例示的な実施形態では、California州CupertinoのApple Inc.によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用されている。
【0063】
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、任意選択的に、以下の米国特許、第6,323,846号(Westermanら)、第6,570,557号(Westermanら)、及び/又は第6,677,932号(Westerman)、及び/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似する。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。しかし、タッチスクリーン112はデバイス100からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【0064】
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されている。(1)2006年5月2日出願の米国特許出願第11/381,313号、「Multipoint Touch Surface Controller」、(2)2004年5月6日出願の同第10/840,862号、「Multipoint Touchscreen」、(3)2004年7月30日出願の同第10/903,964号、「Gestures For Touch Sensitive Input Devices」、(4)2005年1月31日出願の同第11/048,264号、「Gestures For Touch Sensitive Input Devices」、(5)2005年1月18日出願の同第11/038,590号、「Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices」、(6)2005年9月16日出願の同第11/228,758号、「Virtual Input Device Placement On A Touch Screen User Interface」、(7)2005年9月16日出願の同第11/228,700号、「Operation Of A Computer With A Touch Screen Interface」、(8)2005年9月16日出願の同第11/228,737号、「Activating Virtual Keys Of A Touch-Screen Virtual Keyboard」、及び、(9)2006年3月3日出願の同第11/367,749号、「Multi-Functional Hand-Held Device」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
【0065】
タッチスクリーン112は、100dpi以上の映像解像度を、任意選択的に、有する。いくつかの実施形態では、タッチスクリーンは約160dpiの映像解像度を有する。ユーザは、スタイラス、指などの任意の好適なオブジェクト又は付属器を使用して、タッチスクリーン112と任意選択的に接触する。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態において、デバイスは、指に基づく粗い入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0066】
いくつかの実施形態において、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッド(不図示)を、任意選択的に、含む。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、任意選択的に、タッチスクリーン112とは別個のタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
【0067】
デバイス100は、様々な構成要素に電力を供給するための電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
【0068】
デバイス100はまた、1つ以上の光センサ164をも任意選択的に含む。
図1Aは、I/Oサブシステム106内の光センサコントローラ158に結合された光センサを示す。光センサ164は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを任意選択的に含む。光センサ164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール143(カメラモジュールとも称する)と併用する、光センサ164は、静止画像又は映像を任意選択的にキャプチャする。いくつかの実施形態では、タッチスクリーンディスプレイを静止画像及び/又は映像取得のためのビューファインダとして有効化するように、光センサは、デバイスの前面のタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイで見るのと同時に、任意選択的にそのユーザの画像をテレビ会議のために得るように、デバイスの前面に光センサが配置されている。いくつかの実施形態では、光センサ164の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために、単一の光センサ164が、タッチスクリーンディスプレイと共に使用される。
【0069】
デバイス100は、1つ以上の接触強度センサ165も、任意選択的に、含む。
図1Aは、I/Oサブシステム106内の強度センサコントローラ159に結合された接触強度センサを示す。接触強度センサ165には、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)が、任意選択的に含まれる。接触強度センサ165は、環境から接触強度情報(例えば、圧力情報又は圧力情報の代用物)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又は、それに近接している。いくつかの実施形態において、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。
【0070】
デバイス100は、1つ以上の近接センサ166をも任意選択的に含む。
図1Aは、周辺機器インタフェース118と結合された近接センサ166を示す。あるいは、近接センサ166は、任意選択的に、I/Oサブシステム106内の入力コントローラ160に結合される。近接センサ166は、任意選択的に、米国特許出願第11/241,839号、「Proximity Detector In Handheld Device」、同第11/240,788号、「Proximity Detector In Handheld Device」、同第11/620,702号、「Using Ambient Light Sensor To Augment Proximity Sensor Output」、同第11/586,862号、「Automated Response To And Sensing Of User Activity In Portable Devices」、及び、同第11/638,251号、「Methods And Systems For Automatic Configuration Of Peripherals」で説明されるように機能するものであり、これらの出願は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置される場合(例えば、ユーザが電話で通話している場合)、近接センサは、タッチスクリーン112をオフにして無効化する。
【0071】
デバイス100は、1つ以上の触知出力生成器167も、任意選択的に、含む。
図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に結合された、触知出力生成器を示す。触知出力生成器167には、スピーカ又は他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイスで電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイス、が任意選択的に含まれる。接触強度センサ165は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上で生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は横方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。いくつかの実施形態において、少なくとも1つの触知出力生成器センサは、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。
【0072】
デバイス100は、1つ以上の加速度計168も、任意選択的に、含む。
図1Aは、周辺機器インタフェース118に結合された加速度計168を示す。あるいは、加速度計168は、I/Oサブシステム106内の入力コントローラ160に任意選択的に、結合される。加速度計168は、任意選択的に、米国特許出願公開第20050190059号、「Acceleration-based Theft Detection System for Portable Electronic Devices」、及び同第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」で説明されるように機能するものであり、これらの文献の双方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイに表示される。デバイス100は、加速度計(単数又は複数)168に加えて、磁気計(図示せず)並びにデバイス100の位置及び向き(例えば、縦長又は横長)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を、任意選択的に含む。
【0073】
いくつかの実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、テキスト入力モジュール(又は命令セット)134、全地球測位システム(GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、いくつかの実施形態では、
図1A及び
図3に示すように、メモリ102(
図1A)又はメモリ370(
図3)は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態と、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ112の様々な領域を占領しているかを示す、表示状態と、デバイスの様々なセンサ及び入力制御デバイス116から得られる情報を含む、センサ状態と、デバイスの位置及び/又は姿勢に関する位置情報と、のうちの1つ以上を含む。
【0074】
オペレーティングシステム126(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、iOS(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
【0075】
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素も含む。外部ポート124(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通じて間接的に、他のデバイスに結合するように適応している。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイスで使用される30ピンコネクタと同じか、若しくは同様のマルチピン(例えば、30ピン)コネクタ、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0076】
接触/動きモジュール130は、(ディスプレイコントローラ156と併用して)タッチスクリーン112及び他のタッチ感知デバイス(例えば、タッチパッド又は物理的なクリックホイール)との接触を、任意選択的に、検出する。接触/動きモジュール130は、接触が発生したか(例えば、フィンガダウンイベントの検出)どうかを判定すること、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物)の決定、接触の移動及びタッチ感知面にわたる移動の追跡(例えば、1つ以上のフィンガドラッグイベントの検出)があるかどうかを判定すること、及び接触が中止したかどうか(例えば、フィンガアップイベント又は接触の中断の検出)を判定することなどの、接触の検出に関係する様々な動作を実行するための様々なソフトウェア構成要素を含んでいる。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を決定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を決定することを任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
【0077】
いくつかの実施形態において、接触/動きモジュール130は、1つ以上の強度閾値のセットを用いて、動作がユーザによって実行されたかどうかを判定する(例えば、ユーザがアイコンを「クリックしたか」を決定する)。いくつかの実施形態において、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って決定される(例えば、強度閾値は、特定の物理的なアクチュエータのアクティブ化閾値によって決定されず、デバイス100の物理的なハードウェアを変更することなく調整し得る)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装において、デバイスのユーザには、(例えば、個々の強度閾値を調整することにより、及び/又は、システムレベルのクリック「強度」パラメータにより、一度に複数の強度閾値を調整することによって)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
【0078】
接触/動きモジュール130は、ユーザによるジェスチャ入力を、任意選択的に、検出する。タッチ感知面上での異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出される接触の強度)を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置での)指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、1つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる(リフトオフ)イベントを検出することを含む。
【0079】
グラフィックモジュール132は、表示されるグラフィックの視覚的インパクト(例えば、輝度、透明性、彩度、コントラスト、又は他の視覚的特性)を変更するための構成要素を含む、タッチスクリーン112又は他のディスプレイ上にグラフィックを表現及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用する時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【0080】
いくつかの実施形態において、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。それぞれのグラフィックには、対応するコードが任意選択的に、割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
【0081】
触覚フィードバックモジュール133は、ユーザのデバイス100との対話に応じてデバイス100上の1つ以上の位置で触知出力を発生するために触知出力生成器(単数又は複数)167が使用する命令を生成するための様々なソフトウェア構成要素を含む。
【0082】
テキスト入力モジュール134は、任意選択的に、グラフィックモジュール132の構成要素であるが、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)にテキストを入力するためのソフトキーボードを提供する。
【0083】
GPSモジュール135は、デバイスの位置を決定し、この情報を様々な用途に用いるために提供する(例えば、位置ベースのダイアル呼出しに用いるために電話138に提供する、ピクチャ/ビデオメタデータとしてカメラ143に提供する、並びに、天気ウィジェット、地域イエローページウィジェット、及びマップ/ナビゲーションウィジェット等の位置ベースのサービスを提供するアプリケーションに提供する)。
【0084】
アプリケーション136は、以下のモジュール(又は命令セット)又はこれらのサブセット若しくはスーパーセットを、任意選択的に、含む。
●連絡先モジュール137(時には、アドレス帳又は連絡先リストとも呼ぶ)、
●電話モジュール138、
●ビデオ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ビデオ再生モジュール
●音楽再生モジュール
●ブラウザモジュール147、
●カレンダモジュール148、
●天気ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、辞書ウィジェット149-5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149-6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
●ユーザ作成ウィジェット149-6を作成するためのウィジェット作成モジュール150、
●検索モジュール151、
●ビデオ再生モジュール及び音楽再生モジュールを統合した、ビデオ及び音楽再生モジュール152、
●メモモジュール153、
●マップモジュール154、及び/又は、
●オンラインビデオモジュール155。
【0085】
任意選択的に、メモリ102に記憶される他のアプリケーション136の例として、他の文書作成アプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0086】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレスブック又は連絡先リストを管理するために任意選択的に用いられ、それには、アドレスブックに名前(単数又は複数)を加えること、アドレスブックから名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、実際の住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話138、テレビ会議モジュール139、電子メール140、若しくはIM141による通信を開始する及び/又は容易にすること、などが含まれる。
【0087】
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、電話モジュール138は、任意選択的に、電話番号に対応する一連の文字を入力し、連絡先モジュール137内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイアルし、会話を行い、そして、会話が完了した際に接続を切るか又は電話を切るために、使用される。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
【0088】
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先モジュール137、及び電話モジュール138と併用する、テレビ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了するための、実行可能命令を含む。
【0089】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール144と併用する電子メールクライアントモジュール140により、カメラモジュール143で撮影した静止画像又はビデオ画像を添付した電子メールを作成して送信することが非常に容易になる。
【0090】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、インスタントメッセージングモジュール141は、インスタントメッセージに対応する文字列を入力したり、入力済みの文字を修正したり、(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、若しくはIMPSを使用して)対応するインスタントメッセージを送信したり、インスタントメッセージを受信してその受信したインスタントメッセージを表示したりするための、実行可能命令を含む。いくつかの実施形態では、送信及び/又は受信されるインスタントメッセージは、任意選択的に、MMS及び/又は拡張メッセージングサービス(EMS:Enhanced Messaging Service)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用する時、「インスタントメッセージング」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE又はIMPSを使用して送信されるメッセージ)の双方を示す。
【0091】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュー132、テキスト入力モジュール134、GPSモジュール135、マップモジュール154、及び音楽再生モジュールと併用する、トレーニングサポートモジュール142は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを生成することと、トレーニングセンサ(スポーツデバイス)と通信することと、トレーニングセンサデータを受信することと、トレーニングをモニタするために使用されるセンサを較正することと、トレーニング用の音楽を選択及び再生し、トレーニングデータを表示、記憶、及び送信する、実行可能命令を含命令を含む。
【0092】
タッチスクリーン112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、及び画像管理モジュール144と併用する、カメラモジュール143は、静止画像又は(ビデオストリームを含む)ビデオをキャプチャしてメモリ102にそれらを記憶したり、静止画像又はビデオの特性を変更したり、又はメモリ102から静止画像若しくはビデオを削除したりするための、実行可能命令を含む。
【0093】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びカメラモジュール143と併用する、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置し、修正し(例えば、編集し)及び別の方法で操作し、ラベルを付け、削除し、(例えば、デジタルスライドショー又はアルバムにおいて)提示し、並びに記憶したりするための実行可能命令を含む。
【0094】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及び、テキスト入力モジュール134と併用する、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付けし、受信し、表示することを含むユーザの指示に従い、インターネットを閲覧するための実行可能命令を含む。
【0095】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併用する、カレンダモジュール148は、ユーザの指示に従い、カレンダ及びカレンダに関連付けられたデータ(例えば、カレンダ項目、to doリストなど)を作成し、表示し、変更し、記憶するための実行可能命令を含む。
【0096】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併用する、ウィジェットモジュール149は、任意選択的に、ユーザによりダウンロードされ、使用される(例えば、天気ウィジェット149-1、株式ウィジェット149-2、電卓ウィジェット149-3、アラーム時計ウィジェット149-4、及び辞書ウィジェット149-5)、又はユーザにより作成され得る(例えば、ユーザ作成ウィジェット149-6)ミニアプリケーションである。いくつかの実施形態では、ウィジェットは、HTML(ハイパーテキストマークアップ言語)ファイル、CSS(カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。いくつかの実施形態では、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
【0097】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と併用する、ウィジェット作成モジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定の部分をウィジェットに対して回転すること)時に、任意選択的に、ユーザによって使用される。
【0098】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、検索モジュール151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索するための実行可能命令を含む。
【0099】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と併用する、ビデオ及び音楽再生モジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽及び他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びにビデオを(タッチスクリーン112上又は外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を備える。
【0100】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併用する、メモモジュール153は、ユーザの指示に従って、メモ、to doリストなどを作成及び管理するための、実行可能命令を含む。
【0101】
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と併用する、マップモジュール154は、ユーザの指示に従い、マップ及びマップに関連付けられたデータ(例えば、運転方向、特定の位置又はその近くの店舗及びその他の見所についてのデータ、及び他のロケーション別のデータ)を受信、表示、変更、及び記憶するために、任意選択的に、使用される。
【0102】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と併用する、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードにより)受信し、(例えば、タッチスクリーン上で又は外部ポート124を介して接続された外部のディスプレイ上で)再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理することが可能となる命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。オンラインビデオアプリケーションの追加の説明は、2007年6月20日に出願された米国特許仮出願第60/936,562号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日に出願された米国特許出願第11/968,067号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」に見出すことができ、これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【0103】
上記で識別されたモジュール及びアプリケーションのうちのそれぞれは、1つ以上の上記の機能を実行する実行可能命令セット及び本出願に記載の方法(例えば、コンピュータ実装の方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々な部分集合は、任意選択的に、組み合わされるか、又は他の方式で再編成される。例えば、ビデオ再生モジュールは、任意選択的に、音楽再生モジュールと組み合わせて、単一のモジュール(例えば、
図1Aのビデオ及び音楽再生モジュール152)とされる。いくつかの実施形態では、メモリ102は、上述の識別されたモジュール及びデータ構造のサブセットを任意選択的に記憶する。更に、メモリ102は、上述されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
【0104】
いくつかの実施形態において、デバイス100は、デバイスの既定の機能セットの動作がタッチスクリーン及び/又はタッチパッドを介して排他的に実行されるデバイスであるデバイス100の動作のための主要入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス100の物理的な入力制御デバイス(プッシュボタン、ダイアル、及び類似物など)の数が任意選択的に低減する。
【0105】
タッチスクリーン及び/又はタッチパッドを介して排他的に実行される既定の機能セットは、ユーザインタフェース間のナビゲーションを、任意選択的に、含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス100に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。かかる実施形態では、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタン又は他の物理的な入力制御デバイスである。
【0106】
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(
図1A)又はメモリ370(
図3)は、イベントソート部170(例えば、オペレーティングシステム126内)及び対応するアプリケーション136-1(例えば、上述のアプリケーション137~151、155、380~390のうちのいずれか)を含む。
【0107】
イベントソート部170は、イベント情報を受信し、イベント情報を配信するアプリケーション136-1及びアプリケーション136-1のアプリケーションビュー191を決定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態において、アプリケーション136-1は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ112に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを決定するためにイベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報の配信先となるアプリケーションビュー191を決定するためにイベントソート部170によって使用される。
【0108】
いくつかの実施形態において、アプリケーション内部状態192は、追加情報として、例えば、アプリケーション136-1が実行を再開する際に用いられる再開情報、アプリケーション136-1により表示されている又は表示の準備ができている情報を示すユーザインタフェース状態情報、ユーザがアプリケーション136-1の以前の状態又はビューに戻ることを可能にするための状態の待ち行列、及びユーザが以前にとったアクションの再実行/アンドゥの待ち行列のうちの1つ以上を含む。
【0109】
イベントモニタ171は、周辺機器インーフェース118よりイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ112上でのユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介する)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイ112又はタッチ感知面からの情報を含む。
【0110】
いくつかの実施形態において、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送る。これに応じて、周辺機器インタフェース118はイベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受けること)が存在する場合にのみ、イベント情報を送信する。
【0111】
いくつかの実施形態において、イベントソート部170は、ヒットビュー決定モジュール172及び/又はアクティブイベント認識部決定モジュール173も含む。
【0112】
ヒットビュー決定モジュール172は、タッチ感知ディスプレイ112が1つ以上のビューを表示した際に、1つ以上のビュー内のサブイベントが発生した場所を決定するためのソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイで見ることが可能な他の要素で構成される。
【0113】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書中では、情報が表示されタッチベースのジェスチャが発生する、アプリケーションビュー又はユーザインタフェースィンドウと呼ばれることもあるビューのセットである。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに任意選択的に、対応する。例えば、タッチが検出される最低レベルのビューは任意選択的に、ヒットビューと呼ばれ、適切な入力として認識されるイベントのセットは、少なくとも部分的に、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて任意選択的に、決定される。
【0114】
ヒットビュー決定モジュール172は、タッチベースのジェスチャのサブイベントに関連した情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー決定モジュール172は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを識別する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー決定モジュール172によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する全てのサブイベントを受ける。
【0115】
アクティブイベント認識部決定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受けるべきかを決定する。いくつかの実施形態では、アクティブイベント認識部決定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受けるべきであると決定する。他の実施形態では、アクティブイベント認識部決定モジュール173は、サブイベントの物理的な位置を含む全てのビューはアクティブに関わっているビューであると決定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受けるべきであると決定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
【0116】
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント識別部180)に送信する。アクティブイベント認識部決定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベント認識部決定モジュール173により決定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、対応するイベント受付部182により取得されるイベント情報をイベント待ち行列に記憶する。
【0117】
いくつかの実施形態において、オペレーティングシステム126は、イベントソート部170を含む。あるいは、アプリケーション136-1が、イベントソート部170を含む。更に他の実施形態では、イベントソート部170は、スタンドアロンモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
【0118】
いくつかの実施形態において、アプリケーション136-1は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136-1の各アプリケーションビュー191は、1つ以上のイベント認識部180を含む。通常は、各アプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136-1が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。いくつかの実施形態では、各イベント処理部190は、データ更新部176、オブジェクト更新部177、GUI更新部178、及び/又はイベントソート部170から受信したイベントデータ179、のうちの1つ以上を含む。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を任意選択的に、利用若しくは呼び出す。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上の各イベント処理部190を含む。また、いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上も、対応するアプリケーションビュー191に含まれる。
【0119】
それぞれのイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受け、イベント情報からイベントを識別する。イベント認識部180は、イベント受付部182及びイベント比較部184を含む。いくつかの実施形態において、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択的に、サブイベント配信命令を含む)の少なくともサブセットを含む。
【0120】
イベント受付部182は、イベントソート部170よりイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関わる時、イベント情報は、サブイベントの速度及び方向を任意選択的に、更に含む。いくつかの実施形態では、イベントは、ある方向から別の方向へ(例えば、縦長の向きから横長の向きへ、又はその逆)のデバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
【0121】
イベント比較部184は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較により、イベント又はサブイベントを決定、又はイベント若しくはサブイベントの状態を決定又は更新する。いくつかの実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187-1)、イベント2(187-2)などの、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。いくつかの実施形態では、イベント(187)内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント1(187-1)の定義は、表示されたオブジェクト上のダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第1のタッチ(タッチの開始)、所定の段階に関する第1のリフトオフ(タッチの終了)、所定の段階に関する表示オブジェクト上での第2のタッチ(タッチの開始)、及び所定の段階に関する第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(187-2)の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ(又は、接触)、タッチ感知ディスプレイ112を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。いくつかの実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
【0122】
いくつかの実施形態において、イベント定義187は、それぞれのユーザインタフェースオブジェクト用のイベントの定義を含む。いくつかの実施形態では、イベント比較部184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを決定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ112に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ112上でタッチが検出されると、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを決定するためのヒットテストを行う。表示された各オブジェクトが、対応するイベント処理部190に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブ化すべきかを決定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガとなるオブジェクトに関連付けられたイベント処理部を選択する。
【0123】
いくつかの実施形態において、それぞれのイベント(187)の定義は、サブイベントのシーケンスが、イベント認識部のイベントタイプに対応するか対応しないかが決定されるまで、イベント情報の配布を遅延させる遅延動作も含む。
【0124】
各イベント認識部180は、一連のサブイベントが、イベント定義186のイベントのうちのいずれとも一致しないと決定した場合、各イベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
【0125】
いくつかの実施形態において、それぞれのイベント認識部180は、イベント配布システムが、アクティブに関わっているイベント認識部へのサブイベント配布を実行する方法を示す、構成可能なプロパティ、フラグ、及び/又はリストを有するメタリスト183を含む。いくつかの実施形態では、メタデータ183は、構成可能なプロパティと、フラグと、及び/又はイベント認識部が互いにどのように対話し得るか又は対話が可能になるかについて示すリストと、を含む。いくつかの実施形態では、メタデータ183は、構成可能なプロパティ、フラグ、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるかどうかを示すリストを含む。
【0126】
いくつかの実施形態において、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベント処理部190をアクティブ化する。いくつかの実施形態では、各イベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、対応するヒットビューにサブイベントを送信(及び送信を延期する)することとは異なる。いくつかの実施形態では、イベント認識部180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部190は、フラグをキャッチし、既定の処理を実行する。
【0127】
いくつかの実施形態において、イベント配布命令188は、イベント処理部をアクティブ化せずにサブイベントに関するイベント情報を配布するサブイベント配布命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を送る。一連のサブイベント又はアクティブに関わっているビューに関連付けられているイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【0128】
いくつかの実施形態において、データ更新部176は、アプリケーション136-1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新したり、ビデオ再生モジュールで使用されるビデオファイルを記憶したりする。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、それをタッチ感知ディスプレイに表示するためにグラフィックモジュール132に送信する。
【0129】
いくつかの実施形態において、イベント処理部190(単数又は複数)は、データ更新部176と、オブジェクト更新部177と、GUI更新部178とを含む、又はこれらにアクセスする。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、各アプリケーション136-1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0130】
タッチ感知ディスプレイ上のユーザタッチのイベント処理に関する上記の考察は、入力デバイスを有する多機能デバイス100であって、必ずしもその全てがタッチスクリーン上で起動されない,多機能デバイスを動作させる他の形のユーザ入力にも適用されることが理解されるであろう。例えば、単一又は複数のキーボードの押圧又は保持と任意選択的に合わせたマウスの移動及びマウスボタンの押圧、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示検出された眼球運動、バイオメトリック入力及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
【0131】
図2は、いくつかの実施形態に係る、タッチスクリーン112を有するポータブル多機能デバイス100を示す。タッチスクリーンは、ユーザインタフェース(UI)200内に1つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに後述する実施形態において、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することができる。いくつかの実施形態では、ユーザが1つ以上のグラフィックとの接触を断った際に、その1つ以上のグラフィックの選択が生じる。いくつかの実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ及び/又は下方向へ)、並びに/若しくは、デバイス100と接触した指のローリング(右から左へ、左から右へ、上方向へ及び/又は下方向へ)を、任意選択的に含む。いくつかの実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、対応するアプリケーションを任意選択的に選択しない。
【0132】
デバイス100は、「ホーム」又はメニューボタン204などの1つ以上の物理的なボタンも、任意選択的に、含む。前述のように、メニューボタン204は、デバイス100で任意選択的に、実行するアプリケーションのセット内の任意のアプリケーション136へのナビゲーションに任意選択的に、使用される。あるいは、いくつかの実施形態において、メニューボタンは、タッチスクリーン112に表示されたGUIにおけるソフトキーとして実装されている。
【0133】
いくつかの実施形態において、デバイス100は、タッチスクリーン112、メニューボタン204、デバイスへの電源をオン/オフしてデバイスをロックするためのプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、ボタンを押し下げて、既定の時間にわたってボタンを押し下げた状態に保持することによってデバイスの電源をオン/オフするために、ボタンを押し下げて、既定時間が経過する前にボタンを解放することによってデバイスをロックし、かつ/又はデバイスをロック解除し、又はロック解除処理を起動するために、任意選択的に用いられる。別の実施形態では、デバイス100はまた、マイクロフォン113を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受ける。デバイス100はまた、タッチスクリーン112上の接触の強度を検出するための1つ以上の接触強度センサ165、及び/又は、デバイス100のユーザに対する触知出力を生成するための1つ以上の触知出力生成器167も、任意選択的に含む。
【0134】
図3は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育用デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310、1つ以上のネットワーク若しくは他の通信インタフェース360、メモリ370、及びこれらの構成要素を相互接続するための1つ以上の通信バス320を含む。通信バス320は、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることがある)を、任意選択的に含む。デバイス300は、典型的にはタッチスクリーンディスプレイであるディスプレイ340を備える入出力(I/O)インタフェース330を含む。I/Oインタフェース330はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)350、並びにタッチパッド355、デバイス300上に触知出力を生成するための(例えば、
図1Aを参照して上述した触知出力生成器167(単数又は複数)と同様の)触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は
図1Aを参照して上述した接触強度センサ(単数又は複数)165と同様の接触強度センサ)も、任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含む。メモリ370は、CPU(単数又は複数)310から離れて位置する1つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(
図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造、又はそれらの部分集合に類似する、プログラム、モジュール、及びデータ構造を記憶する。更に、メモリ370は、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を任意選択的に記憶するが、ポータブル多機能デバイス100(
図1A)のメモリ102はこれらのモジュールを任意選択的に記憶しない。
【0135】
図3における上述の識別された要素のそれぞれは、前述のメモリデバイスのうちの1つ以上に、任意選択的に記憶される。上記で識別されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールは、任意選択的に、様々なサブセットに組み合わされるか、又は他の方式で再編成される。いくつかの実施形態において、メモリ370は、上述の識別されたモジュール及びデータ構造のサブセットを任意選択的に記憶する。更に、メモリ370は、上述されていない追加のモジュール及びデータ構造を、任意選択的に記憶する。
【0136】
次に、任意選択的に、例えばポータブル多機能デバイス100に実装される、ユーザインタフェースの実施形態に注意を向ける。
【0137】
図4Aは、いくつかの実施形態に係る、ポータブル多機能デバイス100におけるアプリケーションのメニュのための例示的なユーザインタフェースを示す。同様のユーザインタフェースがデバイス300上に、任意選択的に、実装される。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
●セルラ信号及びWi-Fi信号などの無線通信(単数又は複数)に関する信号強度インジケータ(単数又は複数)402、
●時刻404、
●Bluetoothインジケータ405、
●バッテリ状態インジケータ406、
●下記などの、頻繁に使用されるアプリケーション用のアイコンを含むトレイ408、
○不在着信又は音声メールメッセージの数のインジケータ414を任意選択的に含む、「電話」とラベル付けされた、電話モジュール138用のアイコン416、
○未読電子メールの数のインジケータ410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140用のアイコン418、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147用のアイコン420、及び
○「iPod」とラベル付けされた、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽再生モジュール152用のアイコン422、並びに
●下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされた、IMモジュール141用のアイコン424、
○「カレンダ」とラベル付けされた、カレンダモジュール148用のアイコン426、
○「写真」とラベル付けされた、画像管理モジュール144用のアイコン428、
○「カメラ」とラベル付けされた、カメラモジュール143用のアイコン430、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール155用のアイコン432、
○「株価」とラベル付けされた、株価ウィジェット149-2用のアイコン434、
○「マップ」とラベル付けされた、マップモジュール154用のアイコン436、
○「天気」とラベル付けされた、天気ウィジェット149-1用のアイコン438、
○「時計」とラベル付けされた、アラーム時計ウィジェット149-4用のアイコン440、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール142用のアイコン442、
○「メモ」とラベル付けされた、メモモジュール153用のアイコン444、及び
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション若しくはモジュール用のアイコン446。
【0138】
図4Aに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽再生モジュール152用のアイコン422は、「音楽」又は「音楽プレーヤ」とラベル付けされる。他のラベルは、様々なアプリケーションアイコンのために任意選択的に使用される。いくつかの実施形態では、各アプリケーションアイコンに関するラベルは、各アプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0139】
図4Bは、ディスプレイ450(例えば、タッチスクリーンディスプレイ112)とは別個のタッチ感知面451(例えば、
図3のタブレット又はタッチパッド355)を備えるデバイス(例えば、
図3のデバイス300)上の、例示的なユーザインタフェースを示す。デバイス300はまた、タッチ感知面451上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ359のうちの1つ以上)、及び/又はデバイス300のユーザに対する触知出力を生成するための1つ以上の触知出力生成器357を任意選択的に含む。
【0140】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ112上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、いくつかの実施形態では、デバイスは、
図4Bに示されるように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面(例えば、
図4Bの451)は、ディスプレイ(例えば、450)上の主軸(例えば、
図4Bの453)に対応する主軸(例えば、
図4Bの452)を有する。これらの実施形態によれば、デバイスは、タッチ感知面451との接触(例えば、
図4Bの460及び462)を、ディスプレイ上のそれぞれの場所に対応する場所(例えば、
図4Bでは、460は468に対応し、462は470に対応する)にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、
図4Bの451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、
図4Bでの450)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに、任意選択的に使用されることを理解されたい。
【0141】
加えて、以下の実施例が主として指入力(例えば、指接触、指タップジェスチャ、指スワイプジェスチャ)を参照して示されているが、いくつかの実施形態において、これらの指入力のうちの1つ以上は、別の入力デバイス(例えば、マウスに基づく入力、又はスタイラス入力)に由来する入力に取って代わられることが理解されよう。例えば、スワイプジェスチャは、マウスクリック(例えば、接触の代わり)に続いて、スワイプの経路に沿ってカーソルを移動する動作(例えば、接触の移動の代わり)によって、任意選択的に置き換えられる。別の実施例としては、タップジェスチャは、(例えば、接触の検出に続いて、その接触の検出を停止する代わりに)カーソルがタップジェスチャの場所の上に配置されている間のマウスクリックによって、任意選択的に置き換えられる。同様に、複数のユーザ入力が同時に検出される場合、複数のコンピュータマウスが任意選択的に同時に使用されるか、又は、マウス及び/又は指の接触が任意選択的に同時に使用されることを理解されたい。
【0142】
図5Aは、例示的なパーソナル電子デバイス500を示す。デバイス500は、本体502を備える。いくつかの実施形態では、デバイス500は、デバイス100及び300(例えば、
図1A~
図4B)に関して記載した特徴のいくつか又は全てを含み得る。いくつかの実施形態では、デバイス500は、タッチ感知ディスプレイ画面504、以後、タッチスクリーン504を有する。タッチスクリーン504の代わりに、又はそれに追加して、デバイス500は、ディスプレイ及びタッチ感知面を有する。デバイス100及び300と同様に、いくつかの実施形態では、タッチスクリーン504(又はタッチ感知面)は、任意選択的に、印加されている接触(例えば、タッチ)の強度を検出するための1つ以上の強度センサを有する。タッチスクリーン504(又はタッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供してもよい。デバイス500のユーザインタフェースは、タッチの強度に基づきタッチに応じてもよく、これは、異なる強度のタッチは、デバイス500上で異なるユーザインタフェース動作を呼び出し得ることを意味する。
【0143】
タッチ強度を検出及び処理するための例示的な技術は、例えば、関連出願である、2013年5月8日に出願され、WIPO公報第WO/2013/169849号として公開された「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際特許出願第PCT/US2013/040061号、及び2013年11月11日に出願され、WIPO公報第WO/2014/105276号として公開された「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された国際特許出願第PCT/US2013/069483号に見出され、これらのそれぞれは、その全体が参照により本明細書に組み込まれる。
【0144】
いくつかの実施形態では、デバイス500は、1つ以上の入力機構506及び508を有する。入力機構506及び508は、含まれている場合、物理的であってもよい。物理的な入力機構の例は、プッシュボタン及び回転可能機構を含む。いくつかの実施形態では、デバイス500は、1つ以上の取付機構を有する。かかる取付機構は、含まれる場合には、例えば、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、背荷物などに、デバイス500を取り付けることを可能にし得る。これらの取付機構によって、ユーザはデバイス500を装着することができる。
【0145】
図5Bは、例示的なパーソナル電子デバイス500を示す。いくつかの実施形態では、デバイス500は、
図1A、
図1B及び
図3に関して記載した構成要素のいくつか又は全てを含み得る。デバイス500は、I/O部514を1つ以上のコンピュータプロセッサ516及びメモリ518に動作可能に結合するバス512を有する。I/Oセクション514は、タッチ感知構成要素522及び任意選択的に強度センサ524(例えば接触強度センサ)を有し得る、ディスプレイ504に接続することができる。更に、I/O部514は、Wi-Fi、Bluetooth、近距離通信(NFC)、セルラ及び/又は他の無線通信技術を使用して、アプリケーション及びオペレーティングシステムのデータを受信するための通信ユニット530に接続し得る。デバイス500は、入力機構506及び/又は508を含むことができる。入力機構506は、任意選択的に、例えば、回転可能入力デバイス、又は押し下げ可能かつ回転可能な入力デバイスである。いくつかの実施形態では、回転可能入力デバイスが、1つ又は複数の指との相互作用によって回転可能な、クラウン、ノブ、リング、又はスクロールホイールである。回転可能入力デバイスは、
図5Aに示すようにデバイス500の側面に取り付けられてもよく、又はディスプレイ504の上若しくは周りに組み込まれる等、他の位置に取り付けられてもよい。入力機構508は、いくつかの実施例では、任意選択的にボタンである。
【0146】
入力機構508は、いくつかの実施例では、任意選択的にマイクロフォンである。パーソナル電子デバイス500は、任意選択的に、GPSセンサ532、加速度計534、方向センサ540(例えば、コンパス)、ジャイロスコープ536、動きセンサ538、及び/又はこれらの組み合わせなどの、様々なセンサを含み、それらの全ては、I/Oセクション514に動作可能に接続することができる。
【0147】
パーソナル電子デバイス500のメモリ518は、コンピュータ実行可能命令を記憶するための、1つ以上の非一時的コンピュータ可読記憶媒体を含むことができ、それらの命令は、1つ以上のコンピュータプロセッサ516によって実行されると、例えば、コンピュータプロセッサに、方法700(
図7)、及び1000(
図10)、1300(
図13)及び1600(
図16)を含めた、後述の技術を実行させることができる。パーソナル電子デバイス500は、
図5Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【0148】
本明細書で使用する時、用語「アフォーダンス」は、デバイス100、300、及び/又は500(
図1、
図3、及び
図5)のディスプレイ画面に任意選択的に表示されるユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、任意選択的に、アフォーダンスを構成する。
【0149】
本明細書で用いられている用語「フォーカスセレクタ」は、ユーザが対話しているユーザインタフェースの現在の部分を指示する入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装において、タッチ感知面(例えば、
図3のタッチパッド355、又は
図4Bのタッチ感知面451)上で入力(例えば、押圧入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある時、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、
図1Aでのタッチ感知ディスプレイシステム112、又は
図4Aでのタッチスクリーン112)を含むいくつかの実装例では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。いくつかの実装例では、フォーカスは、対応するカーソルの移動又はタッチスクリーンディスプレイ上の接触の移動を伴うことなく(例えば、タブキー又は矢印キーを使用して、1つのボタンから別のボタンにフォーカスを移動させることによって)、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動され、これらの実装例では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの対話を(例えば、ユーザが対話することを意図しているユーザインタフェースの要素を、デバイスに示すことによって)伝達するために、ユーザによって制御される、ユーザインタフェース要素(又は、タッチスクリーンディスプレイ上での接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出される間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の場所は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
【0150】
本明細書及び特許請求の範囲で使用する時、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は、複数の強度サンプルに基づく。特性強度は、任意選択的に、既定数の強度サンプル、すなわち、既定のイベントに関連する(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)所定の期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒間)に収集された、強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10個のパーセンタイル値、接触の強度の最大値の半分の値、接触の強度の最大値の90パーセントの値などのうちの、1つ以上に基づく。いくつかの実施形態では、特性強度を決定する際に、(例えば、特性強度が、経時的な接触の強度の平均である場合)接触の持続時間が使用される。いくつかの実施形態では、動作がユーザによって実行されたかどうかを判定するために、特性強度は、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、任意選択的に、第1の強度閾値及び第2の強度閾値を含む。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り、第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の閾値との間の比較が、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するかどうか(例えば、各動作を実行するのか、又は各動作の実行を見合わせるのか)を判定するために使用される。
【0151】
いくつかの実施形態では、特性強度を決定する目的で、ジェスチャの一部分が識別される。例えば、タッチ感知面は、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を任意選択的に受ける。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の部分のみ)に任意選択的に基づく。いくつかの実施形態では、接触の特性強度を決定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に任意選択的に適用する。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズム、のうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を決定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【0152】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して任意選択的に特徴付ける。いくつかの実施形態では、軽い押圧強度閾値は、物理的なマウスのボタン又はトラックパッドをクリックすることに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理的なマウスのボタン又はトラックパッドをクリックすることに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されない名目上の接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上での接触の移動に従って、フォーカスセレクタを移動させることになる。全般的には、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の異なるセット間でも一貫している。
【0153】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロを上回る。
【0154】
本明細書で説明されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応じて、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力の検出に応じて実行され、それぞれの押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度の増大の検出に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、対応する接触の強度の増大(例えば、対応する押圧入力の「ダウンストローク」)の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応する接触の強度の増大、及び後続の、押圧入力強度閾値を下回る接触の強度の減少を含み、対応する動作は、その後続の押圧入力閾値を下回る対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。
【0155】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る対応する接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応する動作は、そのヒステリシス強度閾値を下回る、後続の対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ検出され、対応する動作は、その押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて、実行される。
【0156】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応じて、任意選択的にトリガされる。更に加えて、押圧入力強度閾値を下回る接触の強度の減少の検出に応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少の検出に応じて任意選択的に実行される。
【0157】
次に、ポータブル多機能デバイス100、デバイス300、又はデバイス500等の電子デバイスに実装される、ユーザインタフェース(「UI」)及び関連処理の実施形態に注目する。
【0158】
図6A~
図6Rは、いくつかの実施形態に係る、小型画面上での手書きのための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、
図7の処理を含めた、以下で説明される処理を例示するために使用される。
【0159】
図6Aは、電子デバイス600を示しており、その変形例には、上述したデバイス100、300、又は500の構成要素の一部又は全てが含まれる。例えば、電子デバイス600は、場合によってはデバイス300のディスプレイ340又はデバイス500のディスプレイ504に対応する、ディスプレイ601を含む。いくつかの実施例では、タッチ感知面がディスプレイ601に組み込まれる。電子デバイス600は、場合によっては電子デバイス500の入力機構506に対応する、回転可能入力デバイス602も含む。
【0160】
図6Aでは、電子デバイス600は、ディスプレイ601に手書きインタフェース610を表示している。手書きインタフェース610は、(点線のボックスで表した)ストローク入力エリア608及び(破線のボックスで表した)メッセージエリア609を含む。ストローク入力エリア608に入力されたユーザストロークが、ストロークが表すテキストを決定するために、電子デバイス600の1つ以上のプロセッサによって分析される。決定されたテキストは、次いでメッセージエリア609に表示される。
図6Aは、部分的に重なり合うようにストローク入力エリア608とメッセージエリア609を示している。場合によっては、ストローク入力エリア608とメッセージエリア609は、完全に重なり合うか、重なり合わないが共通の境界を共有するか、いくらかの距離だけ離れるか、又は他の空間構成を有するかする。
【0161】
手書きインタフェース610は、入力されたテキストが完成したことを示すアフォーダンス603と、手書きインタフェース610の現在のインスタンスにおける更なるテキスト入力をキャンセルするためのアフォーダンス604と、オーディオ入力を受けるための口述入力モードに入るためのアフォーダンス605と、入力済みのテキストを削除するためのアフォーダンス607と、現在のテキストにスペースを入力するためのアフォーダンス606と、も含む。アフォーダンス603を選択すると、場合によっては、メッセージエリア内のテキストが、手書きインタフェース610を起動したプログラムに返される。例えば、メッセージングアプリケーションが手書きインタフェース610を起動した場合には、アフォーダンス603を選択すると、メッセージエリア内のテキストがメッセージングアプリケーションに返される。
【0162】
図6Bは、ディスプレイ及びタッチ感知面のストローク入力エリア608に接触するユーザの指の軌跡を表す軌跡611を示している。軌跡611は、ユーザの指が辿った方向を示す矢印を含んでいる。
図6Bは、ユーザの指によって生じた軌跡611を示しているが、他の場合では、スタイラス又は他の物体等の、他の物体が用いられる。
【0163】
図6Cは、
図6Bの軌跡611に沿ってタッチ感知面に接触するユーザの指に対するタッチ感知面の応答出力に基づいて生じたストローク表現612の表示を示している。ストローク表現612は、一連のドット及び部分ドットとして表示されている。他の外観のストローク表現612も可能である。場合によっては、ストローク表現612の表示の強度は、同ストロークが検出された時間に基づく。
【0164】
図6Dは、電子デバイス600がストローク表現612に対応するストロークを分析して、ストロークを表すテキストを決定した結果を示している。この場合、ストロークは、メッセージエリア609に現れているテキスト614(字「h」)を表すと決定された。ストローク表現612は、もはやストローク入力エリア608に表示されていない。場合によっては、ストローク入力エリア608に現れるストローク表現は、分析されて対応するテキストが決定された後には、もはや表示されない。場合によっては、ストローク入力エリア608に現れるストローク表現は、対応するストロークが分析されている時に、例えばアニメーションによって、メッセージエリア609内のテキストに遷移する。
【0165】
図6Eは、分かり易くするためにメッセージエリア609及びストローク入力エリア608のボックスを省略した点を除いて、
図6Dと同じである。電子デバイス600の残りの図(
図6E~
図6R、
図9A~
図9I、
図12A~
図12L、及び
図15A~
図15J)には、メッセージエリア609及びストローク入力エリア608を示す視覚的なボックスが含まれていない。しかし、これらの図に示すような電子デバイス600は、
図6A~
図6Dと同じメッセージエリア及びストローク入力エリアを有するものとみなされる。
【0166】
図6Fは、ストロークを認識し、認識したストロークに基づいてテキスト614を決定し、インジケータ616によって指示される、テキスト614のための1つ以上の候補のセットを決定した後の手書きインタフェース610を示している。場合によっては、テキスト614(又はメッセージエリア内の他のテキスト)のための1つ以上の候補のセットの決定は、nグラムモデル、メッセージのコンテキスト、可能性のあるテキストのオートコレクション、可能性のあるテキストのオートコンプリート、テキスト614の生成に用いられたストローク、デバイスのコンテキスト、又は他の要因等の様々な要因及び技術に基づく。
【0167】
図6Gでは、入力デバイス602で入力(例えば、スクロール入力又は回転入力)を受けたことに応じて、電子デバイス600は、メッセージエリア内のテキストに関する1つ以上の候補622を含む候補ボックス620を表示している。場合によっては、1つ以上の候補622は、メッセージエリア内のテキストに関する候補のセットの一部(又は全体)である。この場合、テキスト指示618によって指示されるように、候補は、メッセージエリア内の唯一のテキストであるテキスト「h」に関する。場合によっては、後述するように、候補ボックスが、メッセージエリアに存在するテキストの一部分のみに関して表示される。インジケータ624が現在選択されている候補を指示しており、最初に選択される候補は、そのために1つ以上の候補622のセットが生成された元のテキストである。ステータスバー626は、1つ以上の候補のセット中の現在選択されている候補の位置(すなわち、インジケータ624の位置)を表しており、インジケータ624が移動され新たな候補を選択すると更新される。
【0168】
図6Hは、入力デバイス602を介して更なるユーザ入力(例えば、スクロール入力又は回転入力)を受けることに対するデバイス600の応答を示している。電子デバイス600は、ユーザ入力に応じてインジケータ624をいくつかの候補分、下に移動させる。メッセージエリア618は、現在選択されている候補「hello」を指示するために更新されている。ステータスバー626は、1つ以上の候補622のセットにおけるインジケータ624の位置を反映するために更新される。
【0169】
図6Iは、候補「hello」の選択に対する電子デバイス600の応答を示している。電子デバイス600は、選択された候補を含むためにメッセージエリアを更新する。場合によっては、選択は、入力デバイス602がもはやユーザ入力を受けない(例えば、スクロール入力又は回転入力をもはや受けない)ことに応じて生じる。他の場合、選択は、ボタンのアクティブ化、入力デバイス602の押下、タッチ感知面上でのジェスチャ、又は他のユーザ入力等の、他のユーザ入力に応じて生じる。メッセージエリア内のテキストに関する1つ以上の候補のセットが利用可能であることを示すインジケータ616が存在する。更なるユーザ入力(例えば、更なるスクロール入力)を受けたことに応じて、候補ボックス620及び1つ以上の候補622のセット(
図6G)が再び表示されてもよい。いくつかの実施形態では、メッセージエリアに存在する新たなテキストに基づく新たな1つ以上の候補のセットが生成され、候補ボックスに表示される。
【0170】
図6Jは、ストローク表現628を有する手書きインタフェース610を示している。ストローク表現628を生成したストロークに対応する入力を受けた後、かつストロークを分析して対応するテキスト及び候補を決定する前の、候補インジケータ(例えば、
図6Iのインジケータ616)を伴わずに示される手書きインタフェース610が示されている。
【0171】
図6Kは、ストローク表現628に対応するストロークを分析し、対応するテキストを決定した後の手書きインタフェース610を示している。この場合、ストローク表現628に対応するストロークの対応するテキストは、メッセージエリアに表示されている字「w」である。スペースによって、前のテキスト(「hello」)が新たなテキスト(「w」)から隔てられている。場合によっては、スペースは、アフォーダンス606を選択するユーザ入力に応じて存在する。他の場合、スペースは、例えば、「hello」が完全な単語であると決定した後に、電子デバイス600がスペースを自動挿入したことに応じて存在する。インジケータ616は、メッセージエリア内のテキストに関する1つ以上の候補のセットも利用可能であることを示している。
【0172】
図6Lでは、入力デバイス602を介して入力(例えば、スクロール入力又は回転入力)を受けたことに応じて、電子デバイス600は、メッセージエリア内のテキストに関する1つ以上の候補のセットを含む候補ボックス632を表示している。この場合、テキスト指示630によって示されるように、候補は、メッセージエリア内のテキストのうちテキスト指示630によってハイライトされた部分であるテキスト「w」に関する。
【0173】
図6Mは、タッチ感知面で受けた多くの更なるストロークを処理し、対応するテキストを決定し、メッセージングエリアに表示した後の手書きインタフェース610を表示する電子デバイス600を示している。インジケータ634は、更なるテキストが、表示されていないが利用可能であることを示している。いくつかの実施形態では、更なるテキストは、メッセージエリアでのスワイプジェスチャ等のユーザ入力に応じて、視認されアクセスされる。
【0174】
図6Nは、電子デバイス600が入力デバイス602を介してユーザ入力(例えばスクロール入力)を受けたことに応じて表示された手書きインタフェース610を示している。候補ボックス636は、テキスト指示638によって指示されるように、テキスト「do」に関する候補のセットを含んでいる。「do」で始まる単語に加えて、候補ボックス636内の候補のセットは、犬の絵文字を含む。
【0175】
図6Oは、電子デバイス600が入力デバイス602を介して更なるユーザ入力(例えばスクロール入力)を受けた後の手書きインタフェース610を示している。ユーザ入力によって、候補ボックス636内の候補のセットが移動し、それにより犬の絵文字が現在の選択となっている。手書きインタフェース610は、対応してボックス指示638内のテキストを犬の絵文字に更新している。
【0176】
図6Pは、(例えば、ユーザ入力に応じて)電子デバイス600が候補ボックス636(
図6O)から犬の絵文字の候補を選択した後の手書きインタフェース610を示している。例えば、電子デバイス600は、入力デバイス602を介してユーザ入力を受けることが停止した時に、候補ボックス636の選択インジケータが犬の絵文字を特定していたことに応じて犬の絵文字を選択する。メッセージエリアは、犬の絵文字を含むために更新される。
【0177】
図6Qは、ストローク表現640及び642にそれぞれ対応する更なる2つのストロークを受けた後の手書きインタフェース610を示している。ストローク表現640に対応するTストロークは、(後で受けたストロークに対応する)ストローク表現642に比べて薄い外観によって示されるように、先に受けられた。ストローク表現640及び642にそれぞれ対応するストロークの入力の間の時間が閾値時間未満である場合、ストローク表現640及び642に対応するストロークは、任意選択的に、同じセットの一部として一緒に分析される。しかし、これらのストロークは、一定の時間だけ離れる場合、それぞれに異なるセットの一部として別々に分析される。
図6Qに示すように、ストローク表現640及び642にそれぞれ対応するストロークは、重なり合うようにストローク入力エリア内の実質的に同じ位置に入力された。
【0178】
図6Rは、ストローク表現640及び642にそれぞれ対応するストロークが分析されてテキスト「to」を生成した後の手書きインタフェース610を示している。場合によっては、このテキストは、ストローク表現640及び642にそれぞれ対応するストロークが一緒に分析されるか別々に分析されるかにかかわらず同じである。場合によっては、このテキストは、ストローク表現640及び642にそれぞれ対応するストロークが一緒に分析されるか別々に分析されるかに依存する。
【0179】
図7は、いくつかの実施形態による電子デバイスを用いたタッチ感知面上での手書きのための方法を示すフロー図である。方法700は、ディスプレイ、タッチ感知面、及び回転可能入力デバイスを有するデバイス(例えば、100、300、500)において実施される。方法700のいくつかの動作は、任意選択的に組み合わせられ、いくつかの動作は、任意選択的に順序を変更され、いくつかの動作は、任意選択的に省略される。
【0180】
以下で説明するように、方法700は、タッチ感知面上での手書きのための直観的方法を提供する。この方法により、タッチ感知面上での手書きのための、ユーザの認識的負担が軽減され、より効率的なヒューマン-マシンインタフェースが作成される。バッテリ動作式のコンピューティングデバイスに関しては、ユーザが、タッチ感知面上での手書きを、より速く、かつより効率的に入力することが可能となることにより、電力が節約され、バッテリを充電する間隔が増大する。
【0181】
電子デバイスは、メッセージエリア(例えば609)及びストローク入力エリア(例えば608)(例えば、ディスプレイ及びタッチ感知面のうち指、スタイラス、又は他の物体を介してユーザから受けたストロークを検出及び表示するエリア)を含むユーザ入力インタフェース(例えば610)をディスプレイに表示する(702)。いくつかの実施例では、メッセージエリア(例えば609)とストローク入力エリア(例えば608)は部分的に重なり合う。いくつかの実施例では、メッセージエリアは、完全にストローク入力エリア(例えば608)内にある。いくつかの実施例では、メッセージエリアとストローク入力エリア(例えば608)は、重なり合わないが境界を共有する。いくつかの実施例では、メッセージエリアとストローク入力エリア(例えば608)は、離間する。いくつかの実施例では、タッチ感知面は、2インチ×2インチ未満、1.5インチ×1.5インチ未満、又は1インチ×1インチ未満である。
【0182】
電子デバイスは、タッチ感知面のストローク入力エリア(例えば608)で(例えば、ストローク表現612に対応する)第1のストロークセット(例えば、連続した1つ以上のストロークであり、各ストロークが字又は字の一部を表す)を受ける(704)。いくつかの実施例では、第1のストロークセットは、1つの字、複数の字、1つの単語、又は複数の単語を表す。いくつかの実施例では、ディスプレイは、ストロークを受けると、第1のストロークセットのストロークの位置及び形状のフィードバックをユーザに提供する(例えば、
図6Cのストローク表現612の表示)。
【0183】
電子デバイスは、(例えば、ストローク表現612に対応する)第1のストロークセットに基づいて第1のテキスト(例えば、1つの字、複数の字、1つの単語、又は複数の単語)を決定する(706)。いくつかの実施例では、決定は、第1のストロークセットの前に受けたストローク、電子デバイスのコンテキスト(例えば、時刻、位置、現在のアクティビティ、カレンダ、メッセージが対象とする人)、又は他の情報に更に基づくことができる。
【0184】
電子デバイスは、ディスプレイのメッセージエリアに第1のテキスト(例えば614)を表示する(708)(例えば
図6E)。いくつかの実施例では、電子デバイスは、第1のテキストを表示する前に第1のストロークセットを表示する。いくつかの実施例では、電子デバイスは、アニメーションによって第1のストロークセットの表示を第1のテキストの表示に遷移させる。いくつかの実施例では、アニメーションは、電子デバイスが第1のストロークセットに基づいて第1のテキストを決定する間に生じる。
【0185】
電子デバイスは、第1のテキスト(例えば614)に基づいて1つ以上の候補(例えば622)を決定し(710)、1つ以上の候補(例えば622)は、第1のテキストに対する1つ以上の変更を含む(例えば、変更によって、候補とされた完成、訂正、又は予測が実現されてもよい)。いくつかの実施例では、1つ以上の候補は、第1のテキストに関するスペリング訂正の候補を含む。いくつかの実施例では、1つ以上の候補は、第1のテキストの完成の候補を含む。いくつかの実施例では、1つ以上の候補は、第1のテキストに続く更なる単語の予測を含む。
【0186】
電子デバイスは、1つ以上の候補(例えば622)を決定した後に、回転可能入力機構(例えば602)を介してユーザ入力を受ける(712)。いくつかの実施例では、回転可能入力機構は、クラウン、ノブ、リング、又はホイールである。いくつかの実施例では、回転の軸線は、ディスプレイの平面と垂直である。いくつかの実施例では、回転の軸線は、ディスプレイの平面と平行であるか、又はディスプレイの平面内にある。いくつかの実施例では、回転可能入力機構は、ディスプレイの側部にある。いくつかの実施例では、回転可能入力機構は、ディスプレイの周りにある。
【0187】
電子デバイスは、ユーザ入力(714)(例えば、入力デバイス602を介して受けたユーザ入力)に応じて、1つ以上の候補のうちの少なくとも1つ(例えば、候補ボックス620内の候補622)を表示し(716)、1つ以上の候補(例えば622)のうちの選択された候補を指示する選択インジケータ(例えば624)を表示する(718)。いくつかの実施例では、1つ以上の候補のうちの少なくとも1つ候補は、周囲のグラフィック要素内に表示される。いくつかの実施例では、1つ以上の候補のうちの少なくとも1つを表示した直後にユーザ入力が停止したことに応じて、電子デバイスは、1つ以上の候補のうちの少なくとも1つの表示を終了する。いくつかの実施例では、選択インジケータは、選択された候補の側部にある。いくつかの実施例では、選択インジケータは、1つ以上の候補を囲む。いくつかの実施例では、選択インジケータは、選択された候補の色を変更したり、そうでなければ外観を変更したりする等、選択された候補と統合される。
【0188】
電子デバイスは、1つ以上の候補(例えば622)のうちの少なくとも1つ及び選択インジケータ(例えば624)を表示した後に、メッセージエリア内の第1のテキストの表示を選択された候補の表示と置換する(720)(例えば、
図6Hに対する
図6G)。いくつかの実施例では、置換は、選択インジケータが新たな候補に移動したことに応じて起きる。
【0189】
いくつかの実施形態によれば、1つ以上の候補を決定したことに応じて、電子デバイスは、1つ以上の候補が利用可能であるという指示(例えば616)を表示する。いくつかの実施例では、指示は、最初に第1のテキストの第1の表示と同時に表示される。いくつかの実施例では、指示は、回転可能入力機構(例えば602)に隣接し、それにより、ユーザを回転可能入力機構に導き、回転可能入力機構に隣接する指示の表示に応じて、回転可能入力機構を回転させるように導きさえする(例えば、
図6Fのインジケータ616と、
図6Gにおける位置及び回転の向きとを比較されたい)。
【0190】
いくつかの実施形態によれば、更にユーザ入力を受けたことに応じて、電子デバイスは、ユーザ入力の特性(例えば、ユーザ入力が停止してからの時間)が第1の基準を満たすかどうかを判定する。候補インタフェースの終了基準を満たすとの判定に従って、電子デバイスは、1つ以上の候補(例えば622)に対応するグラフィックインタフェース(例えば620)の表示を終了する。
【0191】
いくつかの実施形態によれば、回転可能入力機構(例えば入力デバイス602)を介してユーザ入力を受け続けたことに応じて、電子デバイスは、選択インジケータ(例えば624)を1つ以上の候補のうちの第1の候補から第2の候補に移動させる(例えば、
図6G及び
図6H)。
【0192】
いくつかの実施形態によれば、1つ以上の候補の表示には、第1のテキストと、第1のテキストの上方にある大文字表記の1つ以上の候補と、第1のテキストの下方にある小文字表記の1つ以上の候補と、が含まれる(例えば、
図6G、
図6L、
図6N)。
【0193】
いくつかの実施形態によれば、1つ以上の候補は、オートコンプリートの候補(例えば、第1のテキストに基づく完全な単語の候補)又はオートコレクトの候補(例えば、第1のテキストの綴り又は文法の訂正)を含む。
【0194】
いくつかの実施形態によれば、1つ以上の候補は、第1のテキストに基づいて特定された絵文字を含む(例えば
図6O)。いくつかの実施例では、第1のテキストは、絵文字が表すアイテムの記述である(例えば、第1のテキスト「dog」が犬の絵文字の候補を生成し、又は第1のテキスト「:)」が笑顔の絵文字の候補を生成する)。いくつかの実施例では、第1のテキストは、絵文字の特性のより一般的な記述である(例えば、第1のテキスト「happy」が、笑顔の絵文字の候補を生成する)。
【0195】
いくつかの実施形態によれば、1つ以上の候補は、nグラムモデルを用いて決定される。
【0196】
いくつかの実施形態によれば、電子デバイスは、第1のストロークセットを受ける前に、ストローク入力エリアで第2のストロークセット(例えば、前の単語又は同じ単語の前の字のストローク)を受ける。電子デバイスは、第2のストロークセットに基づいて第2のテキストを決定する。1つ以上の候補を決定することは、第2のテキストに更に基づく(例えば、第1のストロークセットを分析して第1のテキストを決定する際に第2のテキストのコンテキストが用いられる)。
【0197】
いくつかの実施形態によれば、第1のストロークセットのうちの少なくとも一部分を受けたことに応じて、電子デバイスは、第1のストロークセットのグラフィック表現をストローク入力エリアに表示する(例えば、
図6C及び
図6J)。
【0198】
いくつかの実施形態によれば、電子デバイスは、ストローク入力エリアで第1のストロークを受ける。第1のストロークを受けてからある期間が経過した後に、電子デバイスは、ストローク入力エリアで第2のストロークを受ける。期間が閾値を超えているとの判定に従って、電子デバイスは、第1のストローク及び第2のストロークを第1のストロークセットに含める。期間が閾値を超えていないとの判定に従って、電子デバイスは、第1のストロークを第1のストロークセットに含め、第2のストロークを第1のストロークセットから除く(例えば
図6Q)。
【0199】
いくつかの実施形態によれば、第1のテキストは、複数の文字を含む(例えば、
図6Q及び
図6R)。
【0200】
いくつかの実施形態によれば、第1のテキストは、単一の文字である(例えば
図6D)。
【0201】
いくつかの実施形態によれば、電子デバイスは、ストローク入力エリア内の位置で第3のストローク(例えば640)を受ける。電子デバイスは、ストローク入力エリア内の実質的に同じ位置で第4のストローク(例えば642)を受け、第3のストロークと第4のストロークの両方は、第1のストロークセットに含まれる(例えば
図6Q)。
【0202】
いくつかの実施形態によれば、第1のストロークセットは、単一の連続したストロークである(例えば612)。
【0203】
いくつかの実施形態によれば、第1のストロークセットは、複数の個別のストロークを含む(例えば640、642)。
【0204】
いくつかの実施形態によれば、ユーザ入力インタフェースは、オーディオ入力に対応するアフォーダンス(例えば605)を含む複数のアフォーダンス(例えば603~607)を含む。電子デバイスは、オーディオ入力に対応するアフォーダンス(例えば605)を選択するユーザ入力を受けたことに応じて、口述入力を受けるためのオーディオ入力インタフェースを表示する。
【0205】
いくつかの実施形態によれば、電子デバイスは、1つ以上の候補(例えば622)のうちの少なくとも1つの表示及び選択インジケータ(例えば624)の表示と共にスクロールインジケータ(例えば626)を表示し、スクロールインジケータのサイズが、1つ以上の候補の数に基づき、スクロールインジケータの位置が、1つ以上の候補の数の中の選択インジケータの位置に基づく(例えば、
図6Hに対する
図6G)。
【0206】
いくつかの実施形態によれば、第1のテキストの表示を選択された候補の表示に置換した後に、電子デバイスは、1つ以上の候補のうちの少なくとも1つの表示を終了する(例えば
図6I)。1つ以上の候補のうちの少なくとも1つの表示を終了した後に、電子デバイスは、回転可能入力機構を介して更なるユーザ入力(例えば602)を受ける。更なるユーザ入力を受けたことに応じて、電子デバイスは、1つ以上の候補のうちの少なくとも更なる1つを表示し、選択インジケータを表示する(例えば、ユーザ入力を再び受けた場合に、同じ候補のセットを表示する)。
【0207】
方法700に関して上述された処理(例えば
図7)の詳細はまた、以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法1000(
図10)、方法1300(
図13)、及び方法1600(
図16)は、方法700を参照して上述された、様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、方法1000、1300、及び1600は、これらの方法の処理を補完するためにテキスト入力及び候補の一部として方法700を含んでもよい。簡潔性のために、これらの詳細は、以下では繰り返されない。
【0208】
いくつかの実施形態によれば、
図8は、説明される様々な実施形態の原理に従って構成された電子デバイス800の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス800の機能ブロックは、上述の技術を実行するように構成される。デバイス800の機能ブロックは、説明される様々な実施例の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。当業者であれば、
図8に記載された機能ブロックは、説明された様々な実施例の原理を実現するために、任意選択的にサブブロックに組み合わされるか、又は分離されることが理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0209】
図8に示すように、電子デバイス800は、ディスプレイユニット802と、タッチ感知面ユニット804と、回転可能入力機構ユニット806と、ディスプレイユニット802、タッチ感知面ユニット804及び回転可能入力機構ユニット806に結合された処理ユニット808とを含む。いくつかの実施形態では、処理ユニット808は、表示有効化ユニット810、受付ユニット812、決定ユニット814、及び組込みユニット816を含む。
【0210】
処理ユニット808は、(例えば、表示有効化ユニット810によって)ディスプレイユニット802でメッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースの表示を有効化し、(例えば、受付ユニット812によって)タッチ感知面ユニット804のストローク入力エリア上で第1のストロークセットを受け、(例えば、決定ユニット814によって)第1のストロークセットに基づいて第1のテキストを決定し、(例えば、表示有効化ユニット810によって)ディスプレイユニットのメッセージエリアで第1のテキストの表示を有効化し、(例えば、決定ユニット814によって)第1のテキストに基づいて1つ以上の候補であって、1つ以上の候補は、第1のテキストに対する1つ以上の変更を含む、1つ以上の候補を決定し、1つ以上の候補を決定した後に、(例えば、受付ユニット812によって)回転可能入力機構ユニット806を介してユーザ入力を受け、ユーザ入力に応じて、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの少なくとも1つの表示を有効化し、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの選択された候補を指示する選択インジケータの表示を有効化し、少なくとも1つの候補又は1つ以上の候補及び選択インジケータの表示を有効化した後に、(例えば、表示有効化ユニット810によって)第1のテキストの表示を選択された候補の表示と置換する、ように構成される。
【0211】
いくつかの実施形態では、処理ユニット808は、1つ以上の候補を決定したことに応じて、(例えば、表示有効化ユニット810によって)1つ以上の候補が利用可能であるという指示の表示を有効化するように更に構成される。
【0212】
いくつかの実施形態では、処理ユニット808は、更にユーザ入力を受けたことに応じて、(例えば、決定ユニット814によって)ユーザ入力の特性が第1の基準を満たすかどうかを判定し、候補インタフェースの終了基準を満たすとの判定に従って、(例えば、表示有効化ユニット810によって)1つ以上の候補に対応するグラフィックインタフェースの表示の有効化を終了する、ように更に構成される。
【0213】
いくつかの実施形態では、処理ユニット808は、回転可能入力機構ユニット806を介してユーザ入力を受け続けたことに応じて、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの第1の候補から第2の候補に選択インジケータを移動させるように更に構成される。
【0214】
いくつかの実施形態では、(例えば、表示有効化ユニット810によって)1つ以上の候補の表示を有効化することは、第1のテキストと、第1のテキストの上方にある大文字表記の1つ以上の候補と、第1のテキストの下方にある小文字表記の1つ以上の候補と、を含む。
【0215】
いくつかの実施形態では、1つ以上の候補は、オートコンプリートの候補又はオートコレクトの候補を含む。
【0216】
いくつかの実施形態では、1つ以上の候補は、第1のテキストに基づいて特定された絵文字を含む。
【0217】
いくつかの実施形態では、1つ以上の候補は、nグラムモデルを用いて決定される。
【0218】
いくつかの実施形態では、処理ユニット808は、第1のストロークセットを受ける前に、(例えば、受付ユニット812によって)ストローク入力エリアで第2のストロークセットを受け、(例えば、決定ユニット814によって)第2のストロークセットに基づいて第2のテキストを決定する、ように更に構成され、1つ以上の候補を決定することは、第2のテキストに更に基づく。
【0219】
いくつかの実施形態では、処理ユニット808は、第1のストロークセットのうちの少なくとも一部分を受けたことに応じて、(例えば、表示有効化ユニット810によって)ストローク入力エリアで第1のストロークセットのグラフィック表現の表示を有効化するように更に構成される。
【0220】
いくつかの実施形態では、処理ユニット808は、(例えば、受付ユニット812によって)ストローク入力エリアで第1のストロークを受け、第1のストロークを受けてからある期間が経過した後に、(例えば、受付ユニット812によって)ストローク入力エリアで第2のストロークを受け、期間が閾値を超えているとの判定に従って、(例えば、組込ユニット816によって)第1のストローク及び第2のストロークを第1のストロークセットに含め、期間が閾値を超えていないとの判定に従って、(例えば、組込ユニット816によって)第1のストロークを第1のストロークセットに含め、第2のストロークを第1のストロークセットから除く、ように更に構成される。
【0221】
いくつかの実施形態では、第1のテキストは、複数の文字を含む。
【0222】
いくつかの実施形態では、第1のテキストは、単一の文字である。
【0223】
いくつかの実施形態では、処理ユニット808は、(例えば、受付ユニット812によって)ストローク入力エリア内の位置で第3のストロークを受け、(例えば、受付ユニット812によって)ストローク入力エリア内の実質的に同じ位置で第4のストロークを受ける、ように更に構成され、第3のストロークと第4のストロークの両方は、第1のストロークセットに含まれる。
【0224】
いくつかの実施形態では、第1のストロークセットは、単一の連続したストロークである。
【0225】
いくつかの実施形態では、第1のストロークセットは、複数の個別のストロークを含む。
【0226】
いくつかの実施形態では、ユーザ入力インタフェースは、オーディオ入力に対応するアフォーダンスを含む複数のアフォーダンスを含み、処理ユニット808は、オーディオ入力に対応するアフォーダンスを選択するユーザ入力を受けたことに応じて、(例えば、表示有効化ユニット810によって)、ディスプレイユニット802で、口述入力を受けるためのオーディオ入力インタフェースの表示を有効化するように更に構成される。
【0227】
いくつかの実施形態では、処理ユニット808は、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの少なくとも1つの表示及び選択インジケータの表示と共にスクロールインジケータの表示を有効化するように更に構成され、スクロールインジケータのサイズが、1つ以上の候補の数に基づき、スクロールインジケータの位置が、1つ以上の候補の数の中の選択インジケータの位置に基づく。
【0228】
いくつかの実施形態では、処理ユニット808は、第1のテキストの表示を選択された候補の表示に置換した後に、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの少なくとも1つの表示の有効化を終了し、(例えば、表示有効化ユニット810によって)1つ以上の候補のうちの少なくとも1つの表示の有効化を終了した後に、(例えば、受付ユニット812によって)回転可能入力機構ユニットを介して更なるユーザ入力を受け、更なるユーザ入力を受けたことに応じて、(例えば、表示有効化ユニット810によって)、ディスプレイユニット802で1つ以上の候補のうちの少なくとも更なる1つの表示を有効化し、(例えば、表示有効化ユニット810によって)、ディスプレイユニット802で選択インジケータの表示を有効化する、ように更に構成される。
【0229】
図7を参照して上述された動作は、
図1A~
図1B又は
図8に示される構成要素によって、任意選択的に実施される。例えば、受付動作704は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190によって実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1のそれぞれのイベント認識部180は、そのイベント情報を、それぞれのイベント定義186と比較して、タッチ感知面の第1の場所での第1の接触が、ユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられた、イベント処理部190をアクティブ化させる。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を任意選択的に利用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が
図1A~
図1Bに示される構成要素に基づいてどのように実施されるかは明らかであろう。
【0230】
図9A~
図9Iは、いくつかの実施形態に係る、画面上での手書きのための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、
図10の処理を含めた、以下で説明される処理を例示するために使用される。
【0231】
図9Aは、
図6A~
図6Rに関して記述した手書きインタフェース610を表示する電子デバイス600を示している。電子デバイス600は、ストローク入力エリアでストローク表現900に対応するストロークを受けた。ストロークの表現は、ディスプレイに表示されているが、ストローク表現900に対応するストロークを分析して第1のテキストを決定することは完了していない。
【0232】
図9Bは、電子デバイス600がストローク入力エリアでストローク表現902に対応するストロークを受けた後の手書きインタフェース610を示している。ストローク表現900は、薄くなっている。場合によっては、電子デバイス600は、ストロークを受けてからの時間の関数としてストロークの表現を薄くする。これにより、最近受けたストロークに対応するストローク表現902がストローク表現900と比べて濃くなる。ストローク表現900及び902にそれぞれ対応するストロークは、ストローク入力エリア内の実質的に同じ位置に入力された。
【0233】
図9Cは、電子デバイス600がストローク入力エリアでストローク表現904に対応するストロークを受けた後の手書きインタフェース610を示している。ストローク表現900は、
図9Bでのその外観よりも薄くなっている。ストローク表現902も薄くなっている。最も最近受けたストロークに対応するストローク表現904が、3つのストローク表現のうちで最も濃くなっている。ストローク表現902及び904にそれぞれ対応するストロークは、ストローク入力エリアにおいてストローク900と実質的に同じ位置で入力された。
【0234】
図9Dは、電子デバイス600が第1のストロークセット(例えば、ストローク表現900、902、及び904にそれぞれ対応するストローク)を分析し、対応するテキストが「neo」であると決定し、メッセージエリアに同テキストを表示した後の手書きインタフェース610を示している。
図9Dの手書きインタフェース610は、メッセージエリア内のテキストの表示の次にストローク表現906に対応するストロークも受けている。新たなストロークを受けたことに応じて、電子デバイスは、第1のストロークセット及び第2のストロークセット(ストローク表現906に対応するストローク)に基づいて、修正されたテキストを決定する。
【0235】
図9Eは、電子デバイス600が第1のストロークセット及び第2のストロークセットを分析し、ストロークがテキスト「need」に対応すると決定し、メッセージエリア内の前に決定されたテキストをメッセージエリア内の新たな対応するテキストに置換した後の手書きインタフェース610を示している。これらの図(
図9A~
図9E)は、電子デバイスが分析済みのストロークを、新たに受けたストロークをふまえてどのように再分析できるかを示している。このような処理によって、次に受けたストロークに基づいてストロークセットを明確にすることを支援することができる。電子デバイスは、同デバイスが個々の単語に関する全てのストロークを受けたかどうか、又は更なるストロークがストロークを正しく分析する助けになるかどうかを考慮する必要がない。
図9F~
図9Iは、次に受けたストロークに基づいて単一の文字であるテキストを修正することに適用されるように、この概念を示している。
【0236】
図9Fは、電子デバイス600がストローク表現908に対応するストローク(例えば、実質的に垂直のストローク)を受けた後の手書きインタフェース610を示している。電子デバイス600は、ストローク表現908に対応するストロークの対応するテキストをまだ決定していない。
【0237】
図9Gは、電子デバイス600が「l」(「L」の小文字)に対応するストローク表現908に対応するストロークを含むストロークセットを決定した後の手書きインタフェース610を示している。対応するテキストは、メッセージエリアに表示されている。
【0238】
図9Hは、電子デバイス600がストローク表現910に対応するストロークを受けた後の手書きインタフェース610を示している。電子デバイス600は、ストロークの対応するテキストをまだ決定していない。
【0239】
図9Iは、電子デバイス600が、ストローク表現908に対応するストロークに基づいてメッセージエリアのための新たなテキストを決定し、ストローク表現910に対応するストロークを次に受けた後の手書きインタフェース610を示している。ストローク表現910に対応するストロークは、ストローク表現908に対応する実質的に垂直のストロークに対応する(例えば、対を成す)ドットであると決定され、「l」は「i」と置換された。
【0240】
単語に関して
図9A~9Eに示し、単一の字に関して
図9F~
図9Iに示す、修正されたテキストを決定するための処理は、第1のストロークセットを受けてから第2のストロークセットを受けるまでに経過する期間に基づいてもよい。期間が閾値を超えている場合、第2のストロークセットは、第1のストロークセットとは別に分析され、第1のストロークセットに対応するテキストは、第1のストロークセット及び第2のストロークセットの分析に基づいて、修正されない。期間が閾値を超えていない場合、第2のストロークセットは、第1のストロークセットと一緒に分析され、第1のストロークセットに関して修正されたテキストが生成され得る。
【0241】
デバイスのコンテキストも、修正されたテキストを決定する際に考慮され得る。例えば、電子デバイスの位置、時刻、電子デバイスのモード、及び電子デバイスに関連する他の要因が、修正されたテキストを決定する際に考慮されてもよい。
【0242】
図10は、いくつかの実施形態による電子デバイスを用いたタッチ感知面上での手書きのための方法を示すフロー図である。方法1000は、ディスプレイ、タッチ感知面、及び回転可能入力デバイスを有するデバイス(例えば、100、300、500)において実施される。方法1000のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作は、任意選択的に順序を変更され、いくつかの動作は、任意選択的に省略される。
【0243】
以下で説明するように、方法1000は、タッチ感知面上での手書きのための直観的方法を提供する。この方法により、タッチ感知面上での手書きのための、ユーザの認識的負担が軽減され、より効率的なヒューマン-マシンインタフェースが作成される。バッテリ動作式のコンピューティングデバイスに関しては、ユーザが、タッチ感知面上での手書きを、より速く、かつより効率的に入力することが可能となることにより、電力が節約され、バッテリを充電する間隔が増大する。
【0244】
電子デバイスは、メッセージエリア(例えば609)及びストローク入力エリア(例えば608)(例えば610)(例えば、ディスプレイ及びタッチ感知面のうち指、スタイラス、又は他の物体を介してユーザから受けたストロークを検出及び表示するエリア)を含むユーザ入力インタフェースをディスプレイに表示する(1002)。いくつかの実施例では、メッセージエリアとストローク入力エリアは、部分的に重なり合う。いくつかの実施例では、メッセージエリアは、完全にストローク入力エリア内にある。いくつかの実施例では、メッセージエリアとストローク入力エリアは、重なり合わないが境界を共有する。いくつかの実施例では、メッセージエリアとストローク入力エリアは、離間する。いくつかの実施例では、タッチ感知面は、2インチ×2インチ未満、1.5インチ×1.5インチ未満、又は1インチ×1インチ未満である。
【0245】
電子デバイスは、タッチ感知面のストローク入力エリア(例えば608)で第1のストロークセット(例えば、900、902、904)(例えば、連続した1つ以上のストロークであり、各ストロークが字又は字の一部を表す)を受ける(1004)。いくつかの実施例では、第1のストロークセットは、1つの字、複数の字、1つの単語、又は複数の単語を表す。いくつかの実施例では、ディスプレイは、ストロークを受けると、第1のストロークセットのストロークの位置及び形状のフィードバックをユーザに提供する(例えば、
図9Cのストローク900、902、904の表示)。いくつかの実施例では、第1のストロークセットの表示は、時間と共にストロークを薄くする等、各ストロークを受けてからの時間に基づく(例えば、
図9Cのストローク900、902、904の表示)。
【0246】
電子デバイスは、第1のストロークセット(例えば、ストローク900、902、904)に基づいて第1のテキスト(例えば、1つの字、複数の字、1つの単語、又は複数の単語)を決定する(1006)。いくつかの実施例では、決定は、第1のストロークセットの前に受けたストロークに更に基づくことができる。いくつかの実施形態によれば、電子デバイスは、修正された第1のテキストの決定の時の電子デバイスの現在のコンテキスト(例えば、時刻、位置、現在のアクティビティ、カレンダ、メッセージが対象とする人)に基づいて、修正された第1のテキストを決定する。
【0247】
電子デバイスは、ディスプレイのメッセージエリアに第1のテキスト(例えば905)を表示する(1008)(例えば
図9D)。いくつかの実施例では、電子デバイスは、第1のテキストを表示する前に第1のストロークセットを表示する(例えば
図9C)。いくつかの実施例では、電子デバイスは、アニメーションによって第1のストロークセットの表示を第1のテキストの表示に遷移させる。いくつかの実施例では、アニメーションは、電子デバイスが第1のストロークセットに基づいて第1のテキストを決定する間に生じる。
【0248】
電子デバイスは、第1のストロークセット(例えば、ストローク900、902、904)を受け、第1のテキスト(例えば905)を表示した後に、タッチ感知面のストローク入力エリアで第2のストロークセット(例えば906)を受ける(1010)。いくつかの実施例では、第2のストロークセットは、字の一部、1つの字、複数の字、1つの単語、又は複数の単語を表す。いくつかの実施形態によれば、電子デバイスは、第2のストロークセットを受ける前に第1のテキストを表示する。
【0249】
電子デバイスは、第1のストロークセット(例えば、900、902、904)及び第2のストロークセット(例えば906)に基づいて、修正された第1のテキスト(例えば907)を決定する(1012)。いくつかの実施形態によれば、第2のストロークセットは、第1のストロークセットを受けてからある期間の後に受けられ、第1のストロークセット及び第2のストロークセットに基づく修正された第1のテキストの決定は、期間が閾値未満であるとの判定による。
【0250】
電子デバイスは、第1のテキストの表示(例えば
図9D)を修正された第1のテキストと置換する(1014)(例えば
図9E)。いくつかの実施形態によれば、電子デバイスは、第2のストロークセットを受けた後、かつ修正された第1のテキストを表示した後に、タッチ感知面のストローク入力エリアで第3のストロークセットを受ける。電子デバイスは、第3のストロークセットに基づいて第2のテキストを決定する。電子デバイスは、修正された第1のテキストと共に第2のテキストを表示する。
【0251】
いくつかの実施形態によれば、第1のストロークセットは、連続した単一のストロークであり、第1のテキストは、単一の文字である(例えば、
図9F又は
図9G)。
【0252】
いくつかの実施形態によれば、第2のストロークセットは、単一の連続したストロークである(例えば、
図9D又は
図9H)。
【0253】
いくつかの実施形態によれば、修正された第1のテキストは、単一の文字だけで第1のテキストと異なっている(例えば、
図9Gと
図9Iの比較)。
【0254】
いくつかの実施形態によれば、修正された第1のテキストは、修正された第1のテキスト又は第1のテキストの最後の文字だけで第1のテキストと異なっている(例えば、
図9Gと
図9Iの比較)。
【0255】
いくつかの実施形態によれば、
図11は、説明される様々な実施形態の原理に従って構成された電子デバイス1100の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス1100の機能ブロックは、上述の技術を実行するように構成される。デバイス1100の機能ブロックは、説明される様々な実施例の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。当業者であれば、
図11に記載された機能ブロックは、説明された様々な実施例の原理を実現するために、任意選択的にサブブロックに組み合わされるか、又は分離されることが理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0256】
図11に示すように、電子デバイス1100は、ディスプレイユニット1102と、タッチ感知面ユニット1104と、回転可能入力機構ユニット1106と、ディスプレイユニット1102、タッチ感知面ユニット1104及び回転可能入力機構ユニット1106に結合された処理ユニット1108とを含む。いくつかの実施形態では、処理ユニット1108は、表示有効化ユニット1110、受付ユニット1112、及び決定ユニット814を含む。
【0257】
処理ユニット1108は、(例えば、表示可能によって)ディスプレイユニット1102でメッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースの表示を有効化し、(例えば、受付ユニット1112によって)タッチ感知面ユニットのストローク入力エリアで第1のストロークセットを受け、(例えば、決定ユニット1114によって)第1のストロークセットに基づいて第1のテキストを決定し、(例えば、表示有効化ユニット1110によって)メッセージエリアで第1のテキストの表示を有効化し、第1のストロークセットを受け第1のテキストを表示した後に、(例えば、受付ユニット1112によって)タッチ感知面ユニットのストローク入力エリアで第2のストロークセットを受け、(例えば、決定ユニット1114によって)第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定しと、(例えば、表示有効化ユニット1110によって)第1のテキストの表示を修正された第1のテキストと置換する、ように構成される。
【0258】
いくつかの実施形態では、第2のストロークセットは、第1のストロークセットを受けてからある期間の後に受けられ、第1のストロークセット及び第2のストロークセットに基づく修正された第1のテキストの決定は、期間が閾値未満であるとの判定による。
【0259】
いくつかの実施形態では、第1のテキストの表示を有効化することが、第2のストロークセットを受ける前に生じる。
【0260】
いくつかの実施形態では、修正された第1のテキストを決定することが、修正された第1のテキストを決定する時のポータブル電子デバイスの現在のコンテキストに更に基づく。
【0261】
いくつかの実施形態では、処理ユニット1108は、第2のストロークセットを受けた後、かつ修正された第1のテキストの表示を有効化した後に、(例えば、受付ユニット1112によって)タッチ感知面のストローク入力エリアで第3のストロークセットを受けと、(例えば、決定ユニット1114によって)第3のストロークセットに基づいて第2のテキストを決定し、(例えば、表示有効化ユニット1110によって)修正された第1のテキストと共に第2のテキストの表示を有効化する、ように更に構成される。
【0262】
いくつかの実施形態では、第1のストロークセットは、単一の連続したストロークであり、第1のテキストは、単一の文字である。
【0263】
いくつかの実施形態では、第2のストロークセットは、単一の連続したストロークである。
【0264】
いくつかの実施形態では、修正された第1のテキストは、単一の文字だけで第1のテキストと異なっている。
【0265】
いくつかの実施形態では、修正された第1のテキストは、修正された第1のテキスト又は第1のテキストの最後の文字だけで第1のテキストと異なっている。
【0266】
図10を参照して上述された動作は、
図1A~
図1B又は
図11に示される構成要素によって、任意選択的に実施される。例えば、受付動作1004は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190によって実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1のそれぞれのイベント認識部180は、そのイベント情報を、それぞれのイベント定義186と比較して、タッチ感知面の第1の場所での第1の接触が、ユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられた、イベント処理部190をアクティブ化させる。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を任意選択的に利用するか又は呼び出す。いくつかの実施形態において、イベント処理部190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が
図1A~
図1Bに示される構成要素に基づいてどのように実施されるかは明らかであろう。
【0267】
図12A~
図12Lは、いくつかの実施形態に係る、画面上での手書きのための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、
図13の処理を含めた、以下で説明される処理を例示するために使用される。
【0268】
図12A~
図12Hは、電子デバイス600を使用して複数のストロークを用いてタッチ感知面に単語「going」を入力する一方で、ストロークが利用可能である時に電子デバイス600がストロークを完全に処理するステップを示している。対照的に、
図12I~
図12Lは、電子デバイス600を使用して複数のストロークを用いてタッチ感知面に単語「going」を入力する一方で、ストロークが利用可能である時に電子デバイス600がストロークを処理するが、新たなストロークが利用可能になった時に前のストロークの分析を中断して新たなストロークで分析を再開するステップを示している。場合によっては、この後者の処理は、前者の処理よりも利益をもたらす。
【0269】
図12Aは、電子デバイス600がストローク1200を受けた後の手書きインタフェース610を示している。
図12Bは、電子デバイス600がストローク表現1200に対応するストロークを分析した結果(テキスト1201)を示している。
図12Cは、電子デバイス600がストローク表現1202に対応するストローク及びストローク表現1204に対応するストロークを受けた後の手書きインタフェース610を示している。
図12Dは、電子デバイス600がストローク表現1202及び1204にそれぞれ対応するストロークの処理を開始した後であるが、ストロークの対応するテキストを決定する前の手書きインタフェース610を示している。
図12Dでは、ストローク表現1202及び1204にそれぞれ対応するストロークを処理しているという事実が、ストローク表現をもはや表示していないことによって示されている。しかし、この挙動は、例示的なものであり、必ずしも全ての場合には当てはまらない。
図12Dは、電子デバイス600がストローク1206も受けたことを示している。つまり、電子デバイス600は、ストローク表現1202及び1204にそれぞれ対応するストロークの処理を開始した後であるが、ストロークの対応するテキストを決定する前に、ストローク表現1206に対応するストロークを受けた。
図12Eは、ストローク表現1202及び1204にそれぞれ対応するストロークの分析を完了し、ストローク表現1206に対応するストロークの分析を開始した後であるが、ストローク表現1206に対応するストロークの分析を完了する前の電子デバイス600を示している。
図12Fは、ストローク表現1206に対応するストロークの分析を完了した後の電子デバイス600を示している。最後に、
図12Gでは、電子デバイス600は、最後のストローク(ストローク表現1208に対応するストローク)を受け、それを処理する。結果は、テキスト1201として
図12Hに示されている。電子デバイス600は、ストロークが利用可能になった時にストロークの処理を完了したため、テキスト1201は正しくなく、これは、ストロークが利用可能となった時に電子デバイス600がストロークの全ての完全なコンテキストを有していなかったためである。電子デバイス600は、
図12Hの正しいテキストに辿り着いたとしても、ストロークの全ての完全なコンテキストにアクセスせずにテキストを決定していたため、途中で余分又は冗長な処理を実施したはずである。
【0270】
対照的に、
図12I~
図12Lでは、ストロークが利用可能である時に、同じストロークが入力され処理が開始する。しかし、電子デバイス600は、新たなストロークが利用可能となる毎に現在のストロークセットの処理を停止する。例えば、
図12Iは、電子デバイス600が2つのストローク、すなわちストローク表現1200及び1202にそれぞれ対応するストロークを受けたことを示している。
図12Jは、電子デバイス600が、ストローク表現1200及び1202にそれぞれ対応するストロークの処理を開始した(例えば、必ずしも全ての実施形態には当てはまらないが、ストローク表現1200及び1202をもはや表示していないことによって示される)が、ストローク表現1204及び1206にそれぞれ対応するストロークを受けた時に対応するテキストをまだ決定していないことを示している。この場合、ストローク表現1204及び1206にそれぞれ対応するストロークを(又はストローク表現1204に対応する最初に入力されたストロークのみでさえも)受けたことに応じて、電子デバイス600は、ストローク表現1200及び1202に対応するストロークセットの処理を停止し、ストローク表現1204及び1206にそれぞれ対応するストロークをストロークセットに加え、ストロークセットの処理を続ける。
図12Kは、最後のストローク、すなわちストローク表現1208に対応するストロークが入力されることを示している。ストローク表現1204及び1206にそれぞれ対応するストロークが入力された時と同様に、電子デバイス600は、ストローク1208を受けた時にストロークセットをまだ処理しているため、処理を停止し、ストローク表現1208に対応するストロークをストロークセットに加え、ストロークセットの処理を続ける。場合によっては、電子デバイス600は、新たなストロークをストロークセットに加える時に、その分析をリセット/再開するが、このことは、必ずしも全ての実施形態には当てはまらない。
【0271】
図13は、いくつかの実施形態による電子デバイスを用いたタッチ感知面上での手書きのための方法を示すフロー図である。方法1300は、ディスプレイ、タッチ感知面、及び回転可能入力デバイスを有するデバイス(例えば、100、300、500)において実施される。方法1300のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作は、任意選択的に順序を変更され、いくつかの動作は、任意選択的に省略される。
【0272】
以下で説明するように、方法1300は、タッチ感知面上での手書きのための直観的方法を提供する。この方法により、タッチ感知面上での手書きのための、ユーザの認識的負担が軽減され、より効率的なヒューマン-マシンインタフェースが作成される。バッテリ動作式のコンピューティングデバイスに関しては、ユーザが、タッチ感知面上での手書きを、より速く、かつより効率的に入力することが可能となることにより、電力が節約され、バッテリを充電する間隔が増大する。
【0273】
電子デバイスは、メッセージエリア(例えば609)及びストローク入力エリア(例えば608)(例えば、ディスプレイ及びタッチ感知面のうち指、スタイラス、又は他の物体を介してユーザから受けたストロークを検出及び表示するエリア)を含むユーザ入力インタフェース(例えば610)をディスプレイに表示する(1302)。いくつかの実施例では、メッセージエリアとストローク入力エリアは、部分的に重なり合う。いくつかの実施例では、メッセージエリアは、完全にストローク入力エリア内にある。いくつかの実施例では、メッセージエリアとストローク入力エリアは、重なり合わないが境界を共有する。いくつかの実施例では、メッセージエリアとストローク入力エリアは、離間する。いくつかの実施例では、タッチ感知面は、2インチ×2インチ未満、1.5インチ×1.5インチ未満、又は1インチ×1インチ未満である。
【0274】
電子デバイスは、タッチ感知面のストローク入力エリア(例えば608)で第1のストロークセット(例えば、1200、1202、1204)(例えば、連続した1つ以上のストロークであり、各ストロークが1つの字又は字の一部を表す)を受ける(1304)。いくつかの実施例では、第1のストロークセットは、1つの字、複数の字、1つの単語、又は複数の単語を表す。いくつかの実施例では、ディスプレイは、ストロークを受けると、第1のストロークセットのストロークの位置及び形状のフィードバック(例えば、ストローク1200、1202、1204の表示)をユーザに提供する。
【0275】
電子デバイスは、第1のストロークセット(例えばストローク1200、1202、1204)に基づいて第1のテキスト(例えば、1つの字、複数の字、1つの単語、又は複数の単語)の決定を開始する(1306)。いくつかの実施例では、決定は、第1のストロークセットの前に受けたストローク、電子デバイスのコンテキスト(例えば、時刻、位置、現在のアクティビティ、カレンダ、メッセージが対象とする人)、又は他の情報に更に基づくことができる。
【0276】
電子デバイスは、メッセージエリアに第1のテキストを表示せずに、タッチ感知面のストローク入力エリア(例えば608)で第2のストロークセット(例えば1206)(例えば、連続した1つ以上のストロークであり、各ストロークが字又は字の一部を表す)を受ける(1308)(例えば
図12J)。いくつかの実施例では、第2のストロークセットは、字の一部、1つの字、複数の字、1つの単語、又は複数の単語を表す。いくつかの実施例では、ディスプレイは、ストロークを受けると、第1のストロークセットのストロークの位置及び形状のフィードバック(例えば、ストローク1206の表示)をユーザに提供する。いくつかの実施形態によれば、電子デバイスは、第2のストロークセットを受ける前に、第1のストロークセットに基づいて第1のテキストを決定する。
【0277】
電子デバイスは、第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキスト(例えばテキスト1208)を決定する。
【0278】
電子デバイスは、修正された第1のテキスト(例えばテキスト1208)をメッセージエリアに表示する。
【0279】
いくつかの実施形態によれば、修正された第1のテキストは、第1の文字を含み、第1の文字は、第2のストロークセットに基づかない(例えば、第1の文字は「G」であり、ストローク1206に基づかない)。
【0280】
いくつかの実施形態によれば、修正された第1のテキストは、複数の文字を含み、複数の文字は、第1のストロークセットに基づく(例えば、テキストは、第1のストロークセット1200及び1202に基づく「Go」を含む)。
【0281】
いくつかの実施形態によれば、修正された第1のテキストは、第2の文字を含み、第2の文字は、第1のストロークセットに基づかない(例えば、第2の文字が、第1のストロークセット、ストローク1200及び1202に基づかない「i」である。
【0282】
いくつかの実施形態によれば、修正された第1のテキストは、単一の単語(例えばテキスト1208)である。
【0283】
いくつかの実施形態によれば、第1のストロークセット(例えば、1200及び1202)は、ストローク入力エリアのうち第2のストロークセット(例えば、1206又は1208)が入力された位置と実質的に同じ位置に入力される。
【0284】
いくつかの実施形態によれば、修正された第1のテキストは、第1のストロークセットの形状及び第2のストロークセットによって提供されるコンテキストに基づく第1の部分を含む(例えば、第1のストロークセットは、「n」又は「h」の形状であるが、形状からは、どの字が正しいか明確ではなく、第2のストロークセットの対応するテキストが「ight」であるため、第2のストロークを提供するコンテキストによって、対応する字が「n」であるとの判定がもたらされる)。
【0285】
いくつかの実施形態によれば、修正された第1のテキストは、第2のストロークセットの形状及び第1のストロークセットによって提供されるコンテキストに基づく第1の部分を含む(例えば、第2のストロークセットは、「n」又は「h」の形状であるが、形状からは、どの字が正しいか明確ではなく、第1のストロークセットの対応するテキストが「tur」であるため、第1のストロークを提供するコンテキストによって、対応する字が「n」であるとの判定がもたらされる)。
【0286】
いくつかの実施形態によれば、
図14は、説明される様々な実施形態の原理に従って構成された電子デバイス1400の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス1400の機能ブロックは、上述の技術を実行するように構成される。デバイス1400の機能ブロックは、説明される様々な実施例の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。当業者であれば、
図14に記載された機能ブロックは、説明された様々な実施例の原理を実現するために、任意選択的にサブブロックに組み合わされるか、又は分離されることが理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0287】
図14に示すように、電子デバイス1400は、ディスプレイユニット1402と、タッチ感知面ユニット1404と、回転可能入力機構ユニット1406と、ディスプレイユニット1402、タッチ感知面ユニット1404及び回転可能入力機構ユニット1406に結合された処理ユニット1408とを含む。いくつかの実施形態では、処理ユニット1408は、表示有効化ユニット1410、受付ユニット1412、及び決定ユニット1414を含む。
【0288】
処理ユニット1408は、(例えば、表示有効化ユニット1410によって)ディスプレイ1402でメッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースの表示を有効化し、(例えば、受付ユニット1412によって)タッチ感知面のストローク入力エリアで第1のストロークセットを受け、(例えば、決定ユニット1414によって)第1のストロークセットに基づいて第1のテキストの決定を開始し、第1のストロークセットを受けた後に、メッセージエリアで第1のテキストの表示を有効化せずに、(例えば、受付ユニット1412によって)タッチ感知面のストローク入力エリアで第2のストロークセットを受け、(例えば、決定ユニット1414によって)第1のストロークセット及び第2のストロークセットに基づいて、修正された第1のテキストを決定し、(例えば、表示有効化ユニット1410によって)メッセージエリアで修正された第1のテキストの表示を有効化する、ように構成される。
【0289】
いくつかの実施形態では、修正された第1のテキストは、第1の文字を含み、第1の文字は、第2のストロークセットに基づかない。
【0290】
いくつかの実施形態では、修正された第1のテキストは、複数の文字を含み、複数の文字は、第1のストロークセットに基づく。
【0291】
いくつかの実施形態では、修正された第1のテキストは、第2の文字を含み、第2の文字は、第1のストロークセットに基づかない。
【0292】
いくつかの実施形態では、修正された第1のテキストは、単一の文字である。
【0293】
いくつかの実施形態では、修正された第1のテキストは、単一の単語である。
【0294】
いくつかの実施形態では、第1のストロークセットは、ストローク入力エリアのうち第2のストロークセットが入力される位置と実質的に同じ位置に入力される。
【0295】
いくつかの実施形態では、処理ユニット1408は、第2のストロークセットを受ける前に、(例えば、決定ユニット1414によって)第1のストロークセットに基づいて第1のテキストを決定するように更に構成される。
【0296】
いくつかの実施形態では、修正された第1のテキストは、第1のストロークセットの形状及び第2のストロークセットによって提供されるコンテキストに基づく第1の部分を含む。
【0297】
いくつかの実施形態では、修正された第1のテキストは、第2のストロークセットの形状及び第1のストロークセットによって提供されるコンテキストに基づく第1の部分を含む。
【0298】
図13を参照して上述された動作は、
図1A~
図1B又は
図14に示される構成要素によって、任意選択的に実施される。例えば、受付動作1304は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190によって実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1のそれぞれのイベント認識部180は、そのイベント情報を、それぞれのイベント定義186と比較して、タッチ感知面の第1の場所での第1の接触が、ユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられた、イベント処理部190をアクティブ化させる。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を任意選択的に利用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が
図1A~
図1Bに示される構成要素に基づいてどのように実施されるかは明らかであろう。
【0299】
図15A~
図15Jは、いくつかの実施形態に係る、画面上での手書きのための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、
図16の処理を含めた、以下で説明される処理を例示するために使用される。
【0300】
図15Aは、電子デバイス600が、それぞれ
図15Aで受けられる最後の2つのストロークである、ストローク表現1503に対応するストローク及びストローク表現1504に対応するストロークを含む、ストロークセット表現1502に対応するストロークセットを受けた後の手書きインタフェース610を示している。ストロークセット表現1502は、表語文字(例えば簡体字)を表す。重なり合う表語文字は、多くのストロークを含み、分析が困難であるため(例えば、重なり合う2つだけの表語文字の一例について
図15Eを参照)、電子デバイス600は、表語文字のための全てのストロークを受けた時に、受けたストローク同士の間の時間に基づいて対応する表語文字を決定する。
【0301】
ストローク表現1503及び1504にそれぞれ対応するストロークに関して、ストローク同士の間(例えば、ストローク表現1503に対応するストロークが完了した時からストローク表現1504に対応するストロークが開始した時まで)の時間が閾値を超えているかどうかが決定される。時間が閾値を超えていない場合、ストローク表現1503及び1504にそれぞれ対応するストロークは、
図15Aに示すように同じ組に一緒に含まれる。
【0302】
次のストローク(すなわち、
図15Bのストローク表現1506に対応するストローク)とストローク表現1504に対応するストロークとの間の時間が閾値を超えている場合、ストロークセット表現1502に対応するストロークセットは、対応する表語文字1508を決定するために、ストローク表現1506に対応するストロークを伴わずに、セットとして一緒に分析される。ストローク表現1506に対応するストロークは、
図15Cに示す次の文字のためにストロークセット(
図15Cのストロークセット表現1510に対応するストロークセット)に加えられる。
図16に関しても記述するこの方法によって、電子デバイス600は、複数の表語文字の同時処理を回避することによりバッテリ電力を節約することが可能になる。
【0303】
この技術は、表語文字と同様に表音文字を表すストロークを明確にするために用いることもできる。例えば、
図15Fは、電子デバイス600がテキスト1514及びストローク表現1516に対応するストロークを受けた後の手書きインタフェース610を示している。
図15Gでは、次のストローク、すなわちストローク表現1518に対応するストロークが受けられる。ストローク表現1516に対応するストロークと、ストローク表現1518に対応するストロークとの間の時間に基づいて、電子デバイス600は、ストローク表現1516及び1518にそれぞれ対応するストロークが、単語「cook」(
図15Hのテキスト1516)を綴るための字「k」を意図しているかどうか、又はストローク表現1516及び1518にそれぞれ対応するストロークが別々の2つの文字であり、「cool」(
図15Jのテキスト1520)を綴ることを意図しているかどうかを判定することができる。
【0304】
ストローク間の時間が閾値を超えている場合、電子デバイス600は、
図15Iに示すように、ストローク表現1516及び1518にそれぞれ対応するストロークを異なる文字の部分として取り扱う。ストローク表現1518に対応するストロークは、別々に分析されて、例えば、単語「car」(
図15Hのテキスト1518)の一部として字「c」を生成することができる。ストローク間の時間が閾値を超えていない場合、ストローク1516及び1518は、
図15Jに示すように、同じ文字の一部として取り扱われる。
【0305】
図16は、いくつかの実施形態による電子デバイスを用いたタッチ感知面上での書きのための方法を示すフロー図である。方法1600は、ディスプレイ、タッチ感知面、及び回転可能入力デバイスを有するデバイス(例えば、100、300、500)において実施される。方法1600のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作は、任意選択的に順序を変更され、いくつかの動作は、任意選択的に省略される。
【0306】
以下で説明するように、方法1600は、タッチ感知面上での手書きのための直観的方法を提供する。この方法により、タッチ感知面上での手書きのための、ユーザの認識的負担が軽減され、より効率的なヒューマン-マシンインタフェースが作成される。バッテリ動作式のコンピューティングデバイスに関しては、ユーザが、タッチ感知面上での手書きを、より速く、かつより効率的に入力することが可能となることにより、電力が節約され、バッテリを充電する間隔が増大する。
【0307】
電子デバイスは、メッセージエリア(例えば609)及びストローク入力エリア(例えば608)(例えば、ディスプレイ及びタッチ感知面のうち指、スタイラス、又は他の物体を介してユーザから受けたストロークを検出及び表示するエリア)を含むユーザ入力インタフェース(例えば610)をディスプレイに表示する(1602)。いくつかの実施例では、メッセージエリアとストローク入力エリアは、部分的に重なり合う。いくつかの実施例では、メッセージエリアは、完全にストローク入力エリア内にある。いくつかの実施例では、メッセージエリアとストローク入力エリアは、重なり合わないが境界を共有する。いくつかの実施例では、メッセージエリアとストローク入力エリアは、離間する。いくつかの実施例では、タッチ感知面は、2インチ×2インチ未満、1.5インチ×1.5インチ未満、又は1インチ×1インチ未満である。
【0308】
電子デバイスは、タッチ感知面のストローク入力エリアで第1のストローク(例えばストローク1504)を受ける(1604)。いくつかの実施例では、第1のストロークは、複数のストロークのうちの最新のものである。
【0309】
電子デバイスは、第1のストロークを受けた後の第1の時間に、タッチ感知面で第2のストローク(例えば1506)を受ける(1606)。第2のストロークは、第1のストロークとは異なる(例えば、第1のストロークと第2のストロークは、同じではなく、同じストロークの異なる部分ではない)。
【0310】
電子デバイスは、第1の時間が閾値時間を超えているかどうか(例えば、ストローク1504の終わりからストローク1506の始まりまでの時間が閾値を超えているかどうか)を決定する(1608)。
【0311】
電子デバイスは、第1の時間が閾値時間を超えていると決定したことに応じて、第2のストローク(例えば1506)ではなく第1のストローク(例えば1504)に基づいて第1の文字(例えば文字1508)を決定する(1610)。
【0312】
電子デバイスが第1の時間(例えば、ストローク1503を第1のストロークとして用いると共に、ストローク1504を第2のストロークとして用いて)が閾値時間未満であると決定したことに応じて、(例えば、ストロークセット1502のうちの他のストロークに加えて)第1のストローク(例えば1503)及び第2のストローク(例えば1504)に基づいて第1の文字(例えば文字1508)を決定する(1612)。
【0313】
電子デバイスは、第1の文字(例えば文字1508)をメッセージエリアに表示する(1614)。
【0314】
いくつかの実施形態によれば、電子デバイスは、更に第1の時間が閾値時間を超えているとの判定に従って、第2のストローク(例えば1506)に基づいて第2の文字(例えば文字1512)を決定する。電子デバイスは、第1の文字と共に第2の文字(例えば文字1512)をメッセージエリアに表示する。
【0315】
いくつかの実施形態によれば、第1の文字及び第2の文字のそれぞれの表示は、スペースによって離れている(例えば
図15I)。
【0316】
いくつかの実施形態によれば、第1の文字は、表音文字である(例えば、
図15H及び
図15J)。
【0317】
いくつかの実施形態によれば、第1の文字は、表語文字である(例えば文字1508)。
【0318】
いくつかの実施形態によれば、
図17は、説明される様々な実施形態の原理に従って構成された電子デバイス1700の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス1700の機能ブロックは、上述の技術を実行するように構成される。デバイス1700の機能ブロックは、説明される様々な実施例の原理を遂行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。当業者であれば、
図17に記載された機能ブロックは、説明された様々な実施例の原理を実現するために、任意選択的にサブブロックに組み合わされるか、又は分離されることが理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0319】
図17に示すように、電子デバイス1700は、ディスプレイユニット1702と、タッチ感知面ユニット1704と、回転可能入力機構1706と、ディスプレイユニット1702、タッチ感知面ユニット1704、及び回転可能入力機構1706に結合された処理ユニット1708とを含む。いくつかの実施形態では、処理ユニット1708は、表示有効化ユニット1710、受付ユニット1712、及び決定ユニット1714を含む。
【0320】
処理ユニット1708は、(例えば、表示有効化ユニット1710によって)ディスプレイユニット1702でメッセージエリア及びストローク入力エリアを含むユーザ入力インタフェースの表示を有効化し、(例えば、受付ユニット1712によって)、タッチ感知面ユニット1704のストローク入力エリアで第1のストロークを受け、第1のストロークを受けた後の第1の時間に、(例えば、受付ユニット1712によって)タッチ感知面ユニット1704で第2のストロークであって、第2のストロークは、第1のストロークとは異なる、第2のストロークを受け、(例えば、決定ユニット1714によって)第1の時間が閾値時間を超えているかどうかを判定し、第1の時間が閾値時間を超えているとの判定に従って、(例えば、決定ユニット1714によって)第2のストロークではなく第1のストロークに基づいて第1の文字を決定し、第1の時間が閾値時間未満であるとの判定に従って、(例えば、決定ユニット1714によって)第1のストローク及び第2のストロークに基づいて第1の文字を決定し、(例えば、表示有効化ユニット1710によって)メッセージエリアで第1の文字の表示を有効化する、ように構成される。
【0321】
いくつかの実施形態では、処理ユニット1708は、更に第1の時間が閾値時間を超えているとの判定に従って、(例えば、決定ユニット1714によって)第2のストロークに基づいて第2の文字を決定し、(例えば、表示有効化ユニット1710によって)メッセージエリアで第1の文字と共に第2の文字の表示を有効化する、ように更に構成される。
【0322】
いくつかの実施形態では、第1の文字及び第2の文字のそれぞれの表示は、スペースによって離れている。
【0323】
いくつかの実施形態では、処理ユニット1708は、(例えば、決定ユニット1714によって)第1の文字に関連するコンテキストを決定し、(例えば、決定ユニット1714によって)更にコンテキストに基づいて第2の文字を決定する、ように更に構成される。
【0324】
いくつかの実施形態では、第1の文字は、表音文字である。
【0325】
いくつかの実施形態では、第1の文字は、表語文字である。
【0326】
図16を参照して上述された動作は、
図1A~
図1B又は
図17に示される構成要素によって、任意選択的に実施される。例えば、受付動作1604は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190によって実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136-1に配信する。アプリケーション136-1のそれぞれのイベント認識部180は、そのイベント情報を、それぞれのイベント定義186と比較して、タッチ感知面の第1の場所での第1の接触が、ユーザインタフェース上のアフォーダンスのアクティブ化などの、既定のイベント又はサブイベントに対応するかどうかを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられた、イベント処理部190をアクティブ化させる。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176若しくはオブジェクト更新部177を任意選択的に利用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が
図1A~
図1Bに示される構成要素に基づいてどのように実施されるかは明らかであろう。
【0327】
上記の説明は、説明のため、特定の実施形態について述べられたものである。しかし、上述の例示的な説明は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上述の教示を考慮すれば、多くの修正及び変形が可能である。実施形態は、技術の原理及びそれらの実際の適用を最もうまく説明するために選定され、説明された。これにより、他の当業者は、技術及び様々な実施形態を、企図される特定の用途に適した様々な修正を加えて最もうまく利用することが可能になる。
【0328】
添付図面を参照して、本開示及び実施例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。このような変更及び修正は、請求項によって定義されるとおりの本開示及び実施例の範囲内に含まれるものと理解されるべきである。