以下の説明は、例示的な方法、パラメータなどについて記載する。しかしながら、そのような説明は、本開示の範囲に対する限定として意図されるものではなく、むしろ例示的な実施形態の説明として提供されることを認識されたい。
ハンドジェスチャを使用してユーザインタフェースをナビゲートするための効率的な方法及びインタフェースを提供する電子デバイスが必要とされている。例えば、ユーザは、自分のデバイスのディスプレイに触れることなく、ユーザインタフェースをナビゲートしたい場合がある。そのような技術は、ユーザインタフェースをナビゲートするユーザの認識的及び/又は身体的負担を軽減し、それによって生産性を高めることができる。更に、そのような技術は、普通なら冗長なユーザ入力に浪費されるプロセッサ及びバッテリの電力を低減することができる。
以下、図1A~図1B、図2、図3、図4A~図4B、及び図5A~図5Bは、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための技術を実行する例示的なデバイスの説明を提供する。図6は、いくつかの実施形態に係る、ハンドジェスチャの例示的なセットを示す。図7A~図7AAは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図8A~図8Jは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図9A~図9Hは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図10A~図10Fは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図11A~図11Hは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図12A~図12Jは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図13A~図13Gは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図14は、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。図15は、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための方法を示すフロー図である。図16は、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための方法を示すフロー図である。図6、図7A~図7AA、図8A~図8J、図9A~図9H、図10A~図10F、図11A~図11H、図12A~図12J、図13A~図13G、及び図14のユーザインタフェースは、図15及び図16のプロセスを含む、以下で説明するプロセスを示すために使用される。
また、1つ以上のステップが1つ以上の条件を満たしていることを前提とする本明細書に記載の方法では、繰り返しの過程で、本方法におけるステップの前提である全ての条件が本方法の様々な繰り返しにおいて満たされるように、記載の方法を何回も繰り返すことができることを理解されたい。例えば、ある方法が、条件が満たされた場合に第1のステップを実行し、条件が満たされなかった場合に第2のステップを実行することを必要とする場合、当業者であれば、条件が満たされた場合と満たされなかった場合の両方が満たされるまで、請求されたステップを順不同に繰り返すことを理解できるであろう。したがって、1つ以上の条件が満たされることを条件とする1つ以上のステップで記述された方法は、その方法で記述された各条件が満たされるまで繰り返される方法に置き換えることができる。しかしながら、これは、システム又はコンピュータ可読媒体が、対応する1つ以上の条件が満たされていることに基づいて条件付き動作を実行する命令を含み、したがって、方法におけるステップの前提である全ての条件が満たされるまで方法におけるステップを明確に繰り返さずにコンティンジェンシが満たされたか否かを判定できるシステム又はコンピュータ可読媒体のクレームには必要とされない。当業者はまた、条件付きステップを備えた方法と同様に、システム又はコンピュータ可読記憶媒体が全ての条件付きステップが実行されたことを確保するのに必要な回数だけ方法ステップを繰り返すことができることを理解するであろう。
以下の説明では、様々な要素について説明するために、「第1の」、「第2の」などの用語を使用するが、これらの要素は、それらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、記載する様々な実施形態の範囲から逸脱することなく、第1のタッチを第2のタッチと呼ぶこともでき、同様に第2のタッチを第1のタッチと呼ぶこともできる。第1のタッチ及び第2のタッチはどちらもタッチであるが、これらは同じタッチではない。
本明細書に記載する様々な実施形態の説明で使用される術語は、特定の実施形態を説明することのみを目的とし、限定的であることは意図されていない。記載する様々な実施形態の説明及び添付の特許請求の範囲では、単数形の「a(1つ、一)」、「an(1つ、一)」、及び「the(その、この)」は、文脈上別途明白に記載しない限り、複数形も同様に含むことが意図される。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上のいずれか及び全ての考えられる組み合わせを指し、且つこれを含むことを理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」、及び/又は「comprising(含む、備える)」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
「~の場合(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])」を意味すると解釈される。
電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用する関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、PDA機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、カリフォルニア州クパチーノのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)のデバイスが挙げられるが、これらに限定されない。任意選択的に、タッチセンシティブ面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するラップトップコンピュータ又はタブレットコンピュータなどの他のポータブル電子デバイスも使用される。また、いくつかの実施形態では、デバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するデスクトップコンピュータであることも理解されたい。いくつかの実施形態では、電子デバイスは、表示生成構成要素と通信している(例えば、有線通信を介して、無線通信を介して)コンピュータシステムである。表示生成構成要素は、CRTディスプレイを介した表示、LEDディスプレイを介した表示、又は画像投影を介した表示などの視覚的な出力を提供するように構成されている。いくつかの実施形態では、表示生成構成要素は、コンピュータシステムと一体化される。いくつかの実施形態では、表示生成構成要素は、コンピュータシステムとは別個である。本明細書で使用するとき、「表示する」コンテンツは、コンテンツを視覚的に生成するために、有線又は無線接続で、データ(例えば、画像データ又はビデオデータ)を、一体型又は外部の表示生成構成要素に送信することによって、コンテンツ(例えば、ディスプレイコントローラ156によってレンダリング又はデコードされたビデオデータ)を表示させることを含む。
以下の論考では、ディスプレイ及びタッチ感知面を含む電子デバイスについて説明する。しかしながら、電子デバイスは、任意選択的に、物理キーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理ユーザインタフェースデバイスを含むことを理解されたい。
デバイスは、通常、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーション毎に、及び/又は特定のアプリケーション内で、任意選択的に、調整及び/又は変更される。このように、デバイスの共通の物理アーキテクチャ(タッチ感知面など)は、任意選択的に、ユーザにとって直観的且つ透明なユーザインタフェースを備える様々なアプリケーションをサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図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上の接触の強度を検出する1つ以上の接触強度センサ165(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)を含む。デバイス100は、任意選択的に、デバイス100上で触覚出力を生成する(例えばデバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上で触覚出力を生成する)1つ以上の触覚出力生成器167を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン103を介して通信する。
本明細書及び特許請求において使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触)の力若しくは圧力(単位面積当たりの力)、又はタッチ感知面上の接触の力若しくは圧力に対する代理(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して、判定(又は測定)される。例えば、タッチ感知面の下又はそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値が、接触の推定される力を決定するために組み合わされる(例えば、加重平均される)。同様に、スタイラスの感圧性先端部が、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。一部の実装形態では、接触の力又は圧力の代替測定値が、強度閾値を上回っているかどうかを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触力又は圧力の代理測定値は、力又は圧力の推定値に変換され、力又は圧力の推定値が、強度閾値を上回っているかどうかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定される圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを表示する実装面積が限られている低減されたサイズのデバイス上で、ユーザが他の方法ではアクセス不可能であり得る追加のデバイス機能にユーザがアクセスすること(例えば、タッチ感知ディスプレイ上で)、及び/又は、ユーザ入力を受け取ること(例えば、タッチ感知ディスプレイ、タッチ感知面、又は、ノブ若しくはボタンなどの物理的/機械的コントロールを介して)が可能となる。
本明細書及び特許請求の範囲で使用されるように、用語「触覚出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触覚出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押圧された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触覚出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触覚出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一例に過ぎず、デバイス100は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの両方の組み合わせで実装される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。メモリコントローラ122は、任意選択的に、デバイス100の他の構成要素によるメモリ102へのアクセスを制御する。
周辺機器インタフェース118は、デバイスの入力及び出力周辺機器をCPU120及びメモリ102に結合するために使用することができる。1つ以上のプロセッサ120は、メモリ102に記憶された様々なソフトウェアプログラム((例えば、命令を含む)コンピュータプログラムなど)及び/又は命令セットを動作させる又は実行して、デバイス100のための様々な機能を実施し、データを処理する。いくつかの実施形態では、周辺機器インタフェース118、CPU120、及びメモリコントローラ122は、任意選択的に、チップ104などの単一のチップ上に実装される。いくつかの他の実施形態では、それらは別々のチップ上に任意選択的に実装される。
RF(radio frequency、無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどが挙げられる。RF回路108は、任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネット、イントラネット、並びに/又はセルラ電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。RF回路108は、任意選択的に、短距離通信無線機などによって近距離通信(near field communication、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+、デュアルセルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離通信(NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Bluetoothローエネルギ(Bluetooth Low Energy、BTLE)、ワイヤレスフィデリティ(Wireless Fidelity、Wi-Fi)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、及び/若しくはIEEE802.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)、又は本明細書の出願日の時点でまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含む、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。また、オーディオ回路110は、マイクロフォン113によって音波から変換された電気信号を受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に送信する。オーディオデータは、任意選択的に、周辺機器インタフェース118によって、メモリ102及び/若しくはRF回路108から取得され、且つ/又はメモリ102及び/若しくはRF回路108に伝送される。いくつかの実施形態では、オーディオ回路110はまた、ヘッドセットジャック(例えば、図2の212)を含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を備えるヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、タッチスクリーン112及び他の入力コントロールデバイス116などのデバイス100上の入出力周辺機器を、周辺機器インタフェース118に結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光学センサコントローラ158、深度カメラコントローラ169、強度センサコントローラ159、触覚フィードバックコントローラ161、及び、他の入力デバイス若しくはコントロールデバイス用の1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力コントロールデバイス116からの電気信号の受信/他の入力コントロールデバイス116への電気信号の送信を行う。他の入力コントロールデバイス116は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの実施形態では、入力コントローラ(単数又は複数)160は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される(又はいずれにも結合されない)。1つ以上のボタン(例えば、図2の208)は、任意選択的に、スピーカ111及び/又はマイクロフォン113の音量制御のためのアップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、図2の206)を含む。いくつかの実施形態では、電子デバイスは、1つ以上の入力デバイスと通信する(例えば、有線通信を介した無線通信を介して)コンピュータシステムである。いくつかの実施形態では、1つ以上の入力デバイスは、タッチ感知面(例えば、タッチ感知ディスプレイの一部としてのトラックパッド)を含む。いくつかの実施形態では、1つ以上の入力デバイスは、入力としてのユーザのジェスチャ(例えば、ハンドジェスチャ及び/又はエアジェスチャ)を追跡するためなど、1つ以上のカメラセンサ(例えば、1つ以上の光学センサ164及び/又は1つ以上の深度カメラセンサ175)を含む。いくつかの実施形態では、1つ以上の入力デバイスは、コンピュータシステムと一体化される。いくつかの実施形態では、1つ以上の入力デバイスは、コンピュータシステムとは別個である。いくつかの実施形態では、エアジェスチャは、ユーザがデバイスの一部である入力要素に触れることなく(又はデバイスの一部である入力要素から独立して)検出されるジェスチャであり、絶対的な基準に対するユーザの身体の動き(例えば、地面に対するユーザの腕の角度、又は地面に対するユーザの手の距離)、ユーザの身体の別の部分に対するユーザの身体の動き(例えば、ユーザの肩に対するユーザの手の動き、ユーザの一方の手に対するユーザの他方の手の動き、及び/又はユーザの手の別の指若しくは部分に対するユーザの指の動き)、及び/又は、ユーザの身体の一部の絶対的な動き(例えば、所定の量及び/又は速さによる所定のポーズでの手の動きを含むタップジェスチャ、又はユーザの身体の一部の所定の速さ又は量の回転を含むシェイクジェスチャ)を含む、ユーザの身体の一部の検出された動きに基づく。
全体が参照により本明細書に組み込まれる、2005年12月23日出願の米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」、米国特許第7,657,849号に記載されているように、プッシュボタンの素早い押圧は、任意選択的に、タッチスクリーン112のロックを解放し、又は任意選択的に、タッチスクリーン上のジェスチャを使用してデバイスをロック解除するプロセスを開始する。プッシュボタン(例えば、206)のより長い押圧は、任意選択的に、デバイス100への電力をオン又はオフにする。ボタンのうちの1つ以上の機能性は、任意選択的に、ユーザによってカスタマイズ可能である。タッチスクリーン112は、仮想又はソフトボタン及び1つ以上のソフトキーボードを実装するために使用される。
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112からの電気信号の受信、及び/又はタッチスクリーン112への電気信号の送信を行う。タッチスクリーン112は、ユーザに対して視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、動画、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、任意選択的に、ユーザインタフェースオブジェクトに対応する。
タッチスクリーン112は、触覚及び/又は触知接触に基づくユーザからの入力を受け入れるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン112及びディスプレイコントローラ156は、(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン112上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン112に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。例示的な実施形態では、タッチスクリーン112とユーザとの間の接触点は、ユーザの指に対応する。
タッチスクリーン112は、任意選択的に、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術、又はLED(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術も使用される。タッチスクリーン112及びディスプレイコントローラ156は、任意選択的に、それだけに限定されるものではないが、容量性、抵抗性、赤外線、及び表面音波の技術、並びにタッチスクリーン112との1つ以上の接触点を判定する他の近接センサアレイ又は他の要素を含む、現在知られている又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びそのあらゆる移動又は中断を検出する。例示的な実施形態では、カリフォルニア州クパチーノのApple Inc.からのiPhone(登録商標)及びiPod Touch(登録商標)に見られるものなどの、投影型相互静電容量感知技術が使用される。
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、任意選択的に、それぞれ全体が参照により本明細書に組み込まれる、米国特許第6,323,846号(Westermanら)、同第6,570,557号(Westermanら)、及び/若しくは同第6,677,932号(Westerman)、並びに/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似している。しかし、タッチスクリーン112はデバイス100からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
タッチスクリーン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」で説明されている。これらの出願は全て、全体が参照により本明細書に組み込まれる。
タッチスクリーン112は、任意選択的に、100dpiを超える動画解像度を有する。いくつかの実施形態では、タッチスクリーンは、約160dpiの動画解像度を有する。ユーザは、任意選択的に、スタイラス、指などの任意の適した物体又は付属物を使用して、タッチスクリーン112に接触する。いくつかの実施形態では、ユーザインタフェースは、指ベースの接触及びジェスチャを主に使用して動作するように設計されるが、これは、タッチスクリーン上の指の接触面積がより大きいため、スタイラスベースの入力ほど正確でない可能性がある。いくつかの実施形態では、デバイスは、指による粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッドを含む。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、任意選択的に、タッチスクリーン112とは別個のタッチ感知面又はタッチスクリーンによって形成されるタッチ感知面の拡張部である。
デバイス100は、様々な構成要素に電力を供給する電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状況インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
また、デバイス100は、任意選択的に、1つ以上の光学センサ164を含む。図1Aは、I/Oサブシステム106内の光学センサコントローラ158に結合された光学センサを示す。光学センサ164は、任意選択的に、電荷結合デバイス(charge-coupled device、CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor、CMOS)フォトトランジスタを含む。光学センサ164は、1つ以上のレンズを通って投影された環境からの光を受信し、その光を、画像を表すデータに変換する。光学センサ164は、撮像モジュール143(カメラモジュールとも呼ばれる)と連携して、任意選択的に、静止画像又は動画をキャプチャする。いくつかの実施形態では、光学センサは、デバイスの前面にあるタッチスクリーンディスプレイ112とは反対側のデバイス100の裏面に位置し、したがってタッチスクリーンディスプレイは、静止画像及び/又は動画の取得のためのビューファインダとして使用することが可能である。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見ている間に、ユーザの画像が、任意選択的に、テレビ会議のために入手されるように、光学センサはデバイスの前面に配置される。いくつかの実施形態では、光学センサ164の位置は、ユーザによって(例えば、デバイス筐体内でレンズ及びセンサを回転させることによって)変更することができ、したがって単一の光学センサ164が、タッチスクリーンディスプレイと共に、テレビ会議にも静止画像及び/又は動画の取得にも使用される。
デバイス100は、任意選択的に、1つ以上の深度カメラセンサ175もまた含む。図1Aは、I/Oサブシステム106内の深度カメラコントローラ169に結合された深度カメラセンサを示す。深度カメラセンサ175は、環境からデータを受信して、視点(例えば、深度カメラセンサ)からのシーン内の対象物(例えば、顔面)の3次元モデルを作成する。いくつかの実施形態では、撮像モジュール143(カメラモジュールとも呼ばれる)と連携して、深度カメラセンサ175は、任意選択的に、撮像モジュール143によってキャプチャされた画像の異なる部分の深度マップを決定するために使用される。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見る間に、任意選択的に、深度情報を有するユーザの画像をテレビ会議のために取得し、また、深度マップデータを有する自撮り画像をキャプチャするために、デバイス100の前面に深度カメラセンサが配置されている。いくつかの実施形態では、深度カメラセンサ175は、デバイスの背面に、又はデバイス100の背面及び前面に配置される。いくつかの実施形態では、深度カメラセンサ175の位置は、ユーザによって(例えば、デバイス筐体内でレンズ及びセンサを回転させることによって)変更することができ、したがって深度カメラセンサ175が、タッチスクリーンディスプレイと共に、テレビ会議にも静止画像及び/又は動画の取得にも使用される。
デバイス100はまた、任意選択的に、1つ以上の接触強度センサ165を含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159に結合された接触強度センサを示す。接触強度センサ165は、任意選択的に、1つ以上のピエゾ抵抗ひずみゲージ、容量性力センサ、電気力センサ、圧電力センサ、光学力センサ、容量性タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用されるセンサ)を含む。接触強度センサ165は、接触強度情報(例えば、圧力情報、又は圧力情報に対するプロキシ)を環境から受信する。いくつかの実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えばタッチ感知ディスプレイシステム112)と並置される、又はそれに近接される。いくつかの実施形態では、少なくとも1つの接触強度センサは、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置される。
また、デバイス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をオフにして無効化する。
デバイス100はまた、任意選択的に、1つ以上の触覚出力生成器167を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に結合された触覚出力生成器を示す。触覚出力生成器167は、任意選択的に、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触覚出力生成構成要素(例えば、デバイス上で電気信号を触覚出力に変換する構成要素)などのエネルギを直線の動きに変換する電気機械デバイスを含む。接触強度センサ165は、触知フィードバック生成命令を触覚フィードバックモジュール133から受信し、デバイス100のユーザが感知することが可能な触覚出力をデバイス100上に生成する。いくつかの実施形態では、少なくとも1つの触覚出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)と並置される、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に移動させることによって、触覚出力を生成する。いくつかの実施形態では、少なくとも1つの触覚出力生成器センサは、デバイス100の前面に配置されたタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置される。
また、デバイス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又は他のグローバルナビゲーションシステム)受信機を任意選択的に含む。
いくつかの実施形態では、メモリ102内に記憶されているソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、テキスト入力モジュール(又は命令セット)134、全地球測位システム(Global Positioning System、GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、いくつかの実施形態では、メモリ102(図1A)又は370(図3)は、図1A及び図3に示すように、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ112の様々な領域を占めているかを示す表示状態、デバイスの様々なセンサ及び入力コントロールデバイス116から取得した情報を含むセンサ状態、並びにデバイスの位置、及び/又は姿勢に関する位置情報のうちの1つ以上を含む。
オペレーティングシステム126(例えば、Darwin、RTXC、LINUX、UNIX(登録商標)、OS X、iOS、WINDOWS(登録商標)、又はVxWorksなどの組込み型オペレーティングシステム)は、全般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理する様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに結合するように適合されている。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じ若しくは同様であり、且つ/又はそれに適合しているマルチピン(例えば、30ピン)コネクタである。
接触/動きモジュール130は、任意選択的に、タッチスクリーン112及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を(ディスプレイコントローラ156と連携して)検出する。接触/動きモジュール130は、接触が生じたかどうかを判定すること(例えば、指ダウンイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するかどうかを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したかどうかを判定すること(例えば、指アップイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
いくつかの実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたかどうかを判定するために(例えば、ユーザがアイコン上で「クリック」したかどうかを判定するために)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、強度閾値の少なくとも1つのサブセットは、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって決定されるのではなく、デバイス100の物理ハードウェアを変更することなく調整することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく、広範囲の既定閾値のうちのいずれかに設定することができる。加えて、いくつかの実装形態では、デバイスのユーザに、(例えば、個々の強度閾値を調整すること、及び/又は複数の強度閾値をシステムレベルのクリック「強度」パラメータによって一度に調整することによって)強度閾値のセットのうちの1つ以上を調整するソフトウェア設定が提供される。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指タップジェスチャを検出することは、指ダウンイベントを検出し、それに続いて指ダウンイベントと同じ位置(又は実質的に同じ位置)(例えば、アイコンの位置)で指アップ(リフトオフ)イベントを検出することを含む。別の例として、タッチ感知面上で指スワイプジェスチャを検出することは、指ダウンイベントを検出し、それに続いて1つ以上の指ドラッグイベントを検出し、その後それに続いて指アップ(リフトオフ)イベントを検出することを含む。
グラフィックモジュール132は、表示されるグラフィックの視覚的な影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚的特性)を変化させる構成要素を含む、タッチスクリーン112又は他のディスプレイ上にグラフィックをレンダリング及び表示する様々な既知のソフトウェア構成要素を含む。本明細書では、「グラフィック」という用語は、それだけに限定されるものではないが、文字、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、動画、アニメーションなどを含む、ユーザに表示することができる任意のオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力するスクリーンの画像データを生成する。
触覚フィードバックモジュール133は、触覚出力生成器(単数又は複数)167によって使用される命令を生成するための様々なソフトウェア構成要素を含み、ユーザのデバイス100との対話に応じて、デバイス100上の1つ以上の位置での触覚出力を生成する。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、様々なアプリケーション内で使用するためにこの情報を提供する(例えば、場所ベースのダイアリングで使用するために電話138へ、ピクチャ/ビデオメタデータとしてカメラ143へ、及び気象ウィジェット、ローカルイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの位置ベースのサービスを提供するアプリケーションへ)。
アプリケーション136は、任意選択的に、以下のモジュール(又は命令セット)又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(アドレス帳又は連絡先リストと呼ばれることもある)、
●電話モジュール138、
●テレビ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(Instant messaging、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。
任意選択的にメモリ102に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連動して、連絡先モジュール137は、任意選択的に、アドレス帳に名前(単数又は複数)を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話138、テレビ会議モジュール139、電子メール140、又はIM141による通信を開始及び/又は促進することなどを含む。アドレス帳又は連絡先リスト(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192内に記憶される)を管理するために使用される。
電話モジュール138は、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、任意選択的に、電話番号に対応する一連の文字の入力、連絡先モジュール137内の1つ以上の電話番号へのアクセス、入力された電話番号の修正、特定の電話番号のダイヤル、通話の実行、並びに通話終了時の接続解除及び通話停止のために使用される。前述したように、無線通信は、任意選択的に、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
テレビ会議モジュール139は、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、光学センサ164、光学センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先モジュール137、及び電話モジュール138と連携して、ユーザの命令に従ってユーザと1人以上の他の参加者との間のテレビ会議を開始、実行、及び終了するための実行可能な命令を含む。
電子メールクライアントモジュール140は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、ユーザの命令に応じて電子メールを作成、送信、受信、及び管理するための実行可能な命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又は動画画像を有する電子メールの作成及び送信を非常に容易にする。
インスタントメッセージングモジュール141は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、インスタントメッセージに対応する一連の文字の入力、以前に入力された文字の修正、(例えば、電話通信ベースのインスタントメッセージ向けのショートメッセージサービス(Short Message Service、SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコル、又はインターネットベースのインスタントメッセージ向けのXMPP、SIMPLE、若しくはIMPSを使用する)特定のインスタントメッセージの送信、インスタントメッセージの受信、及び受信したインスタントメッセージの閲覧のための実行可能な命令を含む。いくつかの実施形態では、送信される及び/又は受信されるインスタントメッセージは、任意選択的に、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるようなグラフィック、写真、オーディオファイル、動画ファイル、及び/又は他の添付ファイルを含む。本明細書では、「インスタントメッセージング」とは、電話通信ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)と、インターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)との両方を指す。
トレーニングサポートモジュール142は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及び音楽プレーヤモジュールと連携して、トレーニング(例えば、時間、距離、及び/又はカロリー燃焼の目標を有する)を作成し、トレーニングセンサ(スポーツデバイス)と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、並びに、トレーニングデータを表示、記憶、及び送信するための実行可能な命令を含む。
カメラモジュール143は、タッチスクリーン112、ディスプレイコントローラ156、光学センサ(単数又は複数)164、光学センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、及び画像管理モジュール144と連携して、静止画像若しくは(動画ストリームを含む)動画のキャプチャ及びメモリ102内への記憶、静止画像若しくは動画の特性の修正、又はメモリ102からの静止画像若しくは動画の削除のための実行可能な命令を含む。
画像管理モジュール144は、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びカメラモジュール143と連携して、静止画像及び/若しくは動画の配置、修正(例えば、編集)、又はその他の操作、ラベル付け、削除、(例えば、デジタルスライドショー若しくはアルバムにおける)提示、及び記憶のための実行可能な命令を含む。
ブラウザモジュール147は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、ウェブページ又はその一部分、並びにウェブページにリンクされた添付ファイル及び他のファイルの検索、リンク、受信、及び表示を含む、ユーザの命令に従ってインターネットをブラウジングするための実行可能な命令を含む。
カレンダーモジュール148は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と連携して、ユーザの命令に従って、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダーアイテム、to-doリストなど)を作成、表示、修正、及び記憶するための実行可能な命令を含む。
ウィジェットモジュール149は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連携して、任意選択的に、ユーザによってダウンロード及び使用されるミニアプリケーション(例えば、気象ウィジェット149-1、株価ウィジェット149-2、計算機ウィジェット149-3、アラーム時計ウィジェット149-4、及び辞書ウィジェット149-5)、又はユーザによって作成されたミニアプリケーション(例えば、ユーザ作成ウィジェット149-6)である。いくつかの実施形態では、ウィジェットは、HTML(Hypertext Markup Language、ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets、カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。いくつかの実施形態では、ウィジェットは、XML(Extensible Markup Language、拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!ウィジェット)を含む。
ウィジェットクリエータモジュール150は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連携して、任意選択的に、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットにする)ために、ユーザによって使用される。
検索モジュール151は、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、ユーザの命令に従って1つ以上の検索基準(例えば、1つ以上のユーザ指定検索語)と一致するメモリ102内の文字、音楽、サウンド、画像、動画、及び/又は他のファイルを検索するための実行可能な命令を含む。
動画及び音楽プレーヤモジュール152は、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と連携して、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽及び他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びに動画を(例えば、タッチスクリーン112上又は外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能な命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
メモモジュール153は、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、ユーザの命令に従ってメモ、to-doリストなどを作成及び管理するための実行可能な命令を含む。
地図モジュール154は、RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連携して、任意選択的に、ユーザの命令に従って、地図及び地図に関連付けられたデータ(例えば、運転の道順、特定の位置又はその付近の店舗及び他の見どころに関するデータ、並びに他の位置ベースのデータ)を受信、表示、修正、及び記憶するために使用される。
オンライン動画モジュール155は、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と連携して、ユーザが特定のオンライン動画へのアクセス、特定のオンライン動画のブラウジング、(例えば、ストリーミング及び/又はダウンロードによる)受信、(例えば、タッチスクリーン上又は外部ポート124を介して接続された外部ディスプレイ上の)再生、特定のオンライン動画へのリンクを有する電子メールの送信、並びにH.264などの1つ以上のファイル形式のオンライン動画の他の管理を行うことを可能にする命令を含む。いくつかの実施形態では、特定のオンライン動画へのリンクを送信するために、電子メールクライアントモジュール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」を参照されたい。
上記で特定したモジュール及びアプリケーションはそれぞれ、前述した1つ以上の機能及び本出願に記載した方法(例えば、本明細書に記載したコンピュータにより実装される方法及び他の情報処理方法)を実行する実行可能な命令のセットに対応する。これらのモジュール(例えば、命令セット)は、それぞれのソフトウェアプログラム((例えば、命令を含む)コンピュータプログラムなど)、手順、又はモジュールとして実装される必要はなく、したがって様々な実施形態では、これらのモジュールの様々なサブセットが、任意選択的に組み合わされ、又は他の方法で再構成される。例えば、動画プレーヤモジュールは、任意選択的に、音楽プレーヤモジュールと組み合わされて、単一のモジュール(例えば、図1Aの動画及び音楽プレーヤモジュール152)にされる。いくつかの実施形態では、メモリ102は、任意選択で、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ102は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、そのデバイスにおける既定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを介して実行されるデバイスである。デバイス100が動作するための主要な入力コントロールデバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、任意選択的に、デバイス100上の物理的な入力コントロールデバイス(プッシュボタン、ダイヤルなど)の数が削減される。
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス100をナビゲートする。このような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又はその他の物理入力コントロールデバイスである。
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1A)又は370(図3)は、イベントソート部170(例えば、オペレーティングシステム126内)と、特定のアプリケーション136-1(例えば、前述のアプリケーション137~151、155、380~390のうちのいずれか)とを含む。
イベントソート部170は、イベント情報を受信し、イベント情報を配信するアプリケーション136-1、及びアプリケーション136-1のアプリケーションビュー191を判定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態では、アプリケーション136-1は、アプリケーションがアクティブ又は実行中であるときにタッチ感知ディスプレイ112に表示される現在のアプリケーションビュー(単数又は複数)を示すアプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、どのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を判定するためにイベントソート部170によって使用される。
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136-1が実行を再開するときに使用すべき再開情報、アプリケーション136-1によって表示されている情報を示す又は表示する準備ができたユーザインタフェース状態情報、ユーザがアプリケーション136-1の前の状態又はビューに戻ることを可能にする状態キュー、及びユーザによって行われた前のアクションのリドゥ/アンドゥキューのうちの1つ以上などの追加情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、タッチ感知ディスプレイ112でのマルチタッチジェスチャの一部としてのユーザタッチ)に関する情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介した)マイクロフォン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイ112又はタッチ感知面からの情報を含む。
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。それに応じて、周辺機器インタフェース118は、イベント情報を送信する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、所定のノイズ閾値を上回る及び/又は所定の持続時間を超える入力の受信)があるときのみイベント情報を送信する。
いくつかの実施形態では、イベントソート部170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173を含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイ112が2つ以上のビューを表示しているときに、サブイベントが1つ以上のビュー内のどこで起きたかを判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(特定のアプリケーションの)アプリケーションビューは、任意選択的に、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルビューは、任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは、任意選択的に、タッチによるジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて決定される。
ヒットビュー判定モジュール172は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するとき、ヒットビュー判定モジュール172は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始サブイベント(例えば、イベント又は潜在的イベントを形成する一連のサブイベントにおける第1のサブイベント)が発生する最も低いレベルのビューである。ヒットビューがヒットビュー判定モジュール172によって特定されると、ヒットビューは、通常、ヒットビューとして特定されたタッチ又は入力ソースと同じタッチ又は入力ソースに関係する全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)が特定の一連のサブイベントを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみが特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含む全てのビューがアクティブに関わりがあるビューであると判定し、したがって、全てのアクティブに関わりがあるビューが、特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューに関連付けられたエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えばイベント認識部180)にディスパッチする。アクティブイベント認識部判定モジュール173を含む実施形態では、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、特定のイベント受信部182によって取得されるイベント情報をイベントキューに記憶する。
いくつかの実施形態では、オペレーティングシステム126は、イベントソート部170を含む。あるいは、アプリケーション136-1がイベントソート部170を含む。更に他の実施形態では、イベントソート部170は、独立型のモジュールであり、又は接触/動きモジュール130などのメモリ102内に記憶されている別のモジュールの一部分である。
いくつかの実施形態では、アプリケーション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は、任意選択的に、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用し又は呼び出して、アプリケーション内部状態192を更新する。あるいは、アプリケーションビュー191のうちの1つ以上が、1つ以上の特定のイベント処理部190を含む。また、いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178のうちの1つ以上は、特定のアプリケーションビュー191に含まれる。
特定のイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信し、イベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態では、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択的にサブイベント配信命令を含む)の少なくともサブセットも含む。
イベント受信部182は、イベントソート部170からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた任意選択的に、サブイベントの速さ及び方向を含む。いくつかの実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへ、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ぶ)についての対応する情報を含む。
イベント比較部184は、イベント情報を、定義済みのイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えばイベント1(187-1)及びイベント2(187-2)などのイベント(例えば、既定の一連のサブイベント)の定義を含む。いくつかの実施形態では、イベント(187)内のサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチの取り消し、及び複数のタッチを含む。一実施例では、イベント1(187-1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、所定の段階に対する表示オブジェクト上の第1のタッチ(タッチ開始)、所定の段階に対する第1のリフトオフ(タッチ終了)、所定の段階に対する表示オブジェクト上の第2のタッチ(タッチ開始)、及び所定の段階に対する第2のリフトオフ(タッチ終了)を含む。別の実施例では、イベント2(187-2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、所定の段階に対する表示オブジェクト上のタッチ(又は接触)、タッチ感知ディスプレイ112にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。いくつかの実施形態では、イベントは、1つ以上の関連付けられたイベント処理部190に関する情報も含む。
いくつかの実施形態では、イベント定義187は、特定のユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部184は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、タッチ感知ディスプレイ112に3つのユーザインタフェースオブジェクトが表示されているアプリケーションビュー内で、タッチ感知ディスプレイ112上でタッチが検出されると、イベント比較部184は、ヒットテストを実行して、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定する。表示された各オブジェクトが、特定のイベント処理部190に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられたイベント処理部を選択する。
いくつかの実施形態では、特定のイベント187の定義は、一連のサブイベントがイベント認識部のイベントタイプに対応するかどうかが判定されるまで、イベント情報の伝送を遅らせる遅延アクションも含む。
特定のイベント認識部180は、一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判断した場合、特定のイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
いくつかの実施形態では、特定のイベント認識部180は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ183を含む。いくつかの実施形態では、メタデータ183は、イベント認識部が互いにどのように対話するか、又はイベント認識部が互いにどのように対話することが可能となるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ183は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
いくつかの実施形態では、特定のイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントに関連付けられたイベント処理部190をアクティブ化する。いくつかの実施形態では、特定のイベント認識部180は、イベントに関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、特定のヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。いくつかの実施形態では、イベント認識部180は、認識したイベントに関連付けられたフラグを投入し、そのフラグに関連付けられたイベント処理部190は、そのフラグを捕らえ、既定のプロセスを実行する。
いくつかの実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定のプロセスを実行する。
いくつかの実施形態では、データ更新部176は、アプリケーション136-1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新し、又は動画プレーヤモジュールで使用される動画ファイルを記憶する。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
いくつかの実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含む又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、特定のアプリケーション136-1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の記載は、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、それらの全てがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された目の動き、バイオメトリック入力、並びに/又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図2は、いくつかの実施形態に係る、タッチスクリーン112を有するポータブル多機能デバイス100を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)200内に1つ以上のグラフィックを表示する。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、1本以上の指202(図には正確な縮尺では描かれていない)又は1つ以上のスタイラス203(図には正確な縮尺では描かれていない)を使用して、グラフィック上でジェスチャを実施することによって、それらのグラフィックのうちの1つ以上を選択することが可能となる。いくつかの実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、デバイス100と接触した指の、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、ローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択的に含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス100はまた、任意選択的に、「ホーム」ボタン又はメニューボタン204などの1つ以上の物理ボタンを含む。前述したように、メニューボタン204は、任意選択的にデバイス100上で実行される1組のアプリケーション内の任意のアプリケーション136にナビゲートするために、任意選択的に使用される。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーン112に表示されるGUI内のソフトキーとして実装される。
いくつかの実施形態では、デバイス100は、タッチスクリーン112、メニューボタン204、デバイスの電源をオン/オフにしてデバイスをロックするプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、任意選択的に、ボタンを押し下げて、既定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン/オフするため、ボタンを押し下げて、既定の時間が経過する前にボタンを解放することによってデバイスをロックするため、及び/又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用される。代替の実施形態では、デバイス100は、マイクロフォン113を介して、いくつかの機能をアクティブ化又は非アクティブ化するための口頭入力もまた受け入れる。デバイス100は、任意選択的に、タッチスクリーン112上の接触の強度を検出する1つ以上の接触強度センサ165、及び/又はデバイス100のユーザに対する触覚出力を生成する1つ以上の触覚出力生成器167もまた含む。
図3は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、通常、1つ以上の処理ユニット(CPU)310、1つ以上のネットワーク又は他の通信インタフェース360、メモリ370、及びこれらの構成要素を相互接続する1つ以上の通信バス320を含む。通信バス320は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。デバイス300は、ディスプレイ340を含む入出力(I/O)インタフェース330を含み、ディスプレイ340は、通常、タッチスクリーンディスプレイである。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は、任意選択的に、これらのモジュールを記憶しない。
図3の上記で特定した要素はそれぞれ、任意選択的に、前述したメモリデバイスのうちの1つ以上の中に記憶される。上記で特定したモジュールはそれぞれ、前述した機能を実行する命令セットに対応する。上記で特定したモジュール又はコンピュータプログラム(例えば、命令セット又は命令を含む)は、別個のソフトウェアプログラム((例えば、命令を含む)コンピュータプログラムなど)、手順、又はモジュールとして実装される必要はなく、したがって様々な実施形態では、これらのモジュールの様々なサブセットが、任意選択的に組み合わされ、又は他の方法で再構成される。いくつかの実施形態では、メモリ370は、任意選択的に、上記で特定したモジュール及びデータ構造のサブセットを記憶する。更に、メモリ370は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
次に、任意選択的に、例えばポータブル多機能デバイス100に実装されるユーザインタフェースの実施形態に注意を向ける。
図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。
図4Aに示すアイコンラベルは、単なる例示であることに留意されたい。例えば、動画及び音楽プレーヤモジュール152のアイコン422は、「音楽」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、特定のアプリケーションアイコンに関するラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450(例えば、タッチスクリーンディスプレイ112)とは別個のタッチ感知面451(例えば、図3のタブレット又はタッチパッド355)を有するデバイス(例えば、図3のデバイス300)上の例示的なユーザインタフェースを示す。デバイス300はまた、任意選択的に、タッチ感知面451上の接触の強度を検出する1つ以上の接触強度センサ(例えば、センサ359のうちの1つ以上)、及び/又はデバイス300のユーザに対して触覚出力を生成する1つ以上の触覚出力生成器357を含む。
以下の例のうちのいくつかは、タッチスクリーンディスプレイ112(タッチ感知面及びディスプレイが組み合わされている)上の入力を参照して与えられるが、いくつかの実施形態では、デバイスは、図4Bに示すように、ディスプレイとは別個のタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面(例えば、図4Bの451)は、ディスプレイ(例えば、450)上の一次軸(例えば、図4Bの453)に対応する一次軸(例えば、図4Bの452)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bでは、460は468に対応し、462は470に対応する)で、タッチ感知面451との接触(例えば、図4Bの460及び462)を検出する。このようにして、タッチ感知面(例えば、図4Bの451)上でデバイスによって検出されるユーザ入力(例えば、接触460及び462、並びにこれらの移動)は、タッチ感知面がディスプレイとは別個であるとき、多機能デバイスのディスプレイ(例えば、図4Bの450)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
加えて、以下の例は、主に指入力(例えば、指接触、指タップジェスチャ、指スワイプジェスチャ)を参照して与えられる一方、いくつかの実施形態では、指入力のうちの1つ以上が別の入力デバイスからの入力(例えば、マウスベースの入力又はスタイラス入力)に置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに、)マウスクリックであって、その後に(例えば、接触の移動の代わりに)スワイプの経路に沿ったカーソルの移動を伴うマウスクリックによって置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置上に位置する間は、(例えば、接触を検出して、それに続いて接触の検出を停止する代わりに)マウスクリックによって置き換えられる。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
図5Aは、例示的なパーソナル電子デバイス500を示す。デバイス500は、本体502を含む。いくつかの実施形態では、デバイス500は、デバイス100及び300(例えば、図1A~図4B)に関して説明された特徴のうちのいくつか又は全てを含むことができる。いくつかの実施形態では、デバイス500は、タッチ感知ディスプレイスクリーン504、以下ではタッチスクリーン504を有する。あるいは、又はタッチスクリーン504に加えて、デバイス500は、ディスプレイ及びタッチ感知面を有する。デバイス100及び300と同様に、いくつかの実施形態では、タッチスクリーン504(又はタッチ感知面)は、任意選択的に、加えられている接触(例えば、タッチ)の強度を検出する1つ以上の強度センサを含む。タッチスクリーン504(又はタッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス500のユーザインタフェースは、タッチ(複数)に、その強度に基づいて応答することができ、これは、異なる強度のタッチが、デバイス500上で異なるユーザインタフェース動作を呼び出すことができることを意味する。
タッチ強度を検出し処理する例示的な技術は、例えば、それぞれ全体が参照により本明細書に組み込まれる関連出願である、国際公開第WO/2013/169849号として公開された、2013年5月8日出願の国際特許出願第PCT/US2013/040061号、「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」、及び国際公開第WO/2014/105276号として公開された、2013年11月11日出願の国際特許出願第PCT/US2013/069483号、「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」を参照されたい。
いくつかの実施形態では、デバイス500は、1つ以上の入力機構506及び508を有する。入力機構506及び508は、含まれる場合、物理的であり得る。物理的入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。いくつかの実施形態では、デバイス500は、1つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合、例えば帽子、眼鏡類、イアリング、ネックレス、シャツ、ジャケット、ブレスレット、ウォッチのバンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどにデバイス500を取り付けることを可能にすることができる。これらのアタッチメント機構は、ユーザがデバイス500を着用することを可能にする。
図5Bは、例示的なパーソナル電子デバイス500を示す。いくつかの実施形態では、デバイス500は、図1A、図1B、及び図3に関して説明した構成要素のうちのいくつか又は全てを含むことができる。デバイス500は、I/Oセクション514を1つ以上のコンピュータプロセッサ516及びメモリ518に動作可能に結合するバス512を有する。I/Oセクション514は、ディスプレイ504に接続することができ、ディスプレイ504は、タッチ感知構成要素522と、任意選択で強度センサ524(例えば、接触強度センサ)とを有することができる。加えて、I/Oセクション514は、Wi-Fi、Bluetooth、近距離通信(near field communication、NFC)、セルラ、及び/又は他の無線通信技術を使用してアプリケーション及びオペレーティングシステムデータを受信する通信ユニット530と接続することができる。デバイス500は、入力機構506及び/又は508を含むことができる。入力機構506は、任意選択的に、例えば、回転可能な入力デバイスであるか、又は押下可能且つ回転可能な入力デバイスである。いくつかの実施例では、入力機構508は、任意選択的にボタンである。
いくつかの実施例では、入力機構508は、任意選択的にマイクロフォンである。パーソナル電子デバイス500は、任意選択的に、GPSセンサ532、加速度計534、方向センサ540(例えば、コンパス)、ジャイロスコープ536、動きセンサ538、及び/又はそれらの組み合わせなどの様々なセンサを含み、それらは全て、I/Oセクション514に動作可能に接続することができる。
パーソナル電子デバイス500のメモリ518は、コンピュータ実行可能命令を記憶するための1つ以上の非一時的コンピュータ可読記憶媒体を含み得、それらの命令は、1つ以上のコンピュータプロセッサ516によって実行されると、例えば、コンピュータプロセッサに、プロセス1500及びプロセス1600(図15~図16)を含めた、以下に説明する技術を実行させることができる。コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、又は命令実行システム、装置、若しくはデバイスに関連して、使用されるコンピュータ実行可能命令を、有形に含み又は記憶することができる任意の媒体であり得る。いくつかの実施例では、記憶媒体は、一時的コンピュータ可読記憶媒体である。いくつかの実施例では、記憶媒体は、非一時的コンピュータ可読記憶媒体である。非一時的コンピュータ可読記憶媒体は、それらに限定されるものではないが、磁気記憶装置、光学記憶装置、及び/又は半導体記憶装置を含むことができる。そのような記憶装置の例としては、磁気ディスク、CD、DVD、又はBlu-ray(登録商標)技術に基づく光学ディスク、並びにフラッシュ、ソリッドステートドライブなどの永続性ソリッドステートメモリなどが挙げられる。パーソナル電子デバイス500は、図5Bの構成要素及び構成に限定されるものではなく、他の又は追加の構成要素を複数の構成で含むことができる。
本明細書で使用されるとき、「アフォーダンス」という用語は、任意選択的にデバイス100、300、及び/又は500(図1A、図3、及び図5A~図5B)のディスプレイスクリーンに表示される、ユーザ対話グラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及び文字(例えば、ハイパーリンク)はそれぞれ、任意選択的に、アフォーダンスを構成する。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装形態では、カーソルが「フォーカスセレクタ」として作用し、したがってカーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上に位置する間に、入力(例えば、押圧入力)がタッチ感知面(例えば、図3のタッチパッド355又は図4Bのタッチ感知面451)上で検出されたとき、特定のユーザインタフェース要素は、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接対話を可能にするタッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイシステム112又は図4Aのタッチスクリーン112)を含むいくつかの実装形態では、タッチスクリーン上の検出された接触が「フォーカスセレクタ」として作用し、したがってタッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置で入力(例えば、接触による押圧入力)が検出されたとき、特定のユーザインタフェース要素が、検出された入力に従って調整される。いくつかの実装形態では、(例えば、フォーカスを1つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによって)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスがユーザインタフェースの1つの領域からユーザインタフェースの別の領域に動かされ、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが取る具体的な形態に関わらず、フォーカスセレクタは、一般に、ユーザが意図するユーザインタフェースとの対話を(例えば、ユーザがそれを通じて対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって)通信するためにユーザによって制御されるユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、特定のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その特定のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲において使用されるとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する所定の時間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均(mean)値、接触の強度の平均(average)値、接触の強度の上位10パーセンタイル値、接触の強度の最大の2分の1の値、接触の強度の最大の90パーセントの値などのうちの1つ以上に基づいている。いくつかの実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。いくつかの実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、任意選択的に、第1の強度閾値及び第2の強度閾値を含む。この例では、第1の閾値を超えない特性強度を有する接触は第1の動作をもたらし、第1の強度閾値を上回るが第2の強度閾値を超えない特性強度を有する接触は第2の動作をもたらし、第2の閾値を超える特性強度を有する接触は第3の動作をもたらす。いくつかの実施形態では、特性強度と1つ以上の閾値との間の比較は、第1の動作を実行するべきか、それとも第2の動作を実行するべきかを判定するために使用されるのではなく、1つ以上の動作を実行するべきか否か(例えば、特定の動作を実行するべきか、それとも特定の動作を実行するのを取り止めるべきか)を判定するために使用される。
図6は、いくつかの実施形態に係る、ハンドジェスチャの例示的なセットを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
図6は、コンピュータシステム600によって検出することができるハンドジェスチャの例示的なセットを示す。コンピュータシステム600は、入力機構602a(例えば、ウォッチの竜頭)、入力機構602b(例えば、サイドボタン)、及びディスプレイスクリーン602cを含む。いくつかの実施形態では、コンピュータシステム600は、デバイス100、300、及び/又は500の1つ以上の構成要素を含む。いくつかの実施形態では、コンピュータシステム600は、ウォッチなどのウェアラブルデバイスである。いくつかの実施形態では、入力機構602a及び602bは、図5Aに関連して上述した入力機構506及び608の1つ以上の構成要素及び/又は特性を含むことができる。いくつかの実施形態では、ディスプレイスクリーン602cはタッチ感知ディスプレイであり、タッチスクリーン504に関連して上述したような1つ以上の構成要素及び/又は特性を含む。
図6に示すように、コンピュータシステム600は、ユーザの手首の周りに装着されており、手622から離れている。コンピュータシステム600は、コンピュータシステム600の様々なハンドジェスチャ及び/又は動き(例えば、傾きなど)を検出するために、1つ以上の加速度計、ジャイロスコープ、及び/又はバイオメトリックセンサを含む。図6において、バイオメトリックセンサのうちの1つ以上は、コンピュータシステム600が様々なハンドジェスチャを検出するために利用する光学センサ及び/又は心拍数センサを含む。いくつかの実施形態では、コンピュータシステム600は、光学/心拍数センサとは異なる1つ以上のセンサを使用して、ハンドジェスチャを検出することができる。
図6は、コンピュータシステム600によって(例えば、光学/心拍数センサを介して)検出され得る例示的なハンドジェスチャを示す。図6に示すように、ハンドジェスチャは、ニュートラルジェスチャ/ポジション610、クレンチジェスチャ620、ダブルクレンチジェスチャ630、ピンチジェスチャ640、及びダブルピンチジェスチャ650を含む。これらのハンドジェスチャ(例えば、610、620、630、640、及び650)は、本出願を通して議論されるが、ハンドジェスチャ(例えば、マルチフィンガータップハンドジェスチャ及び/又はトリプル(クアドルプル、クインタプル)クレンチ/ピンチジェスチャ)及びこれらのハンドジェスチャの1つ以上の組み合わせは、コンピュータシステム600によって(例えば、光学/心拍数センサを介して)検出可能である、及び/又は以下に説明されるような1つ以上の動作を行うために使用されるものとして考えられる。したがって、本明細書で提供されるハンドジェスチャは、例示的な目的のみのためであり、本明細書で説明される実施形態は、これらの特定のハンドジェスチャに限定されない。また、本明細書で説明されるハンドジェスチャは、コンピュータシステム600の1つ以上のカメラに向けられない(例えば、カメラによって捕捉されない)。また、本明細書で説明されるハンドジェスチャは、(例えば、ハンドジェスチャがコンピュータシステム600によって検出されるために)ディスプレイスクリーン602cに接触せず、及び/又はディスプレイスクリーン602cの前で実行されない。
図6に示すように、ニュートラルハンドジェスチャ/位置610は、手622の指先のいずれもが手622のいずれの部分にも触れていないハンドジェスチャ/位置である。クレンチジェスチャ620は、ユーザが握りこぶしを形成しているときにユーザの手のひらがユーザの手の別の部分に触れるように、手622の1つ以上の指がユーザの手の別の部分に触れているハンドジェスチャである。ダブルクレンチジェスチャ630は、ニュートラルジェスチャ/位置610とクレンチジェスチャ620との組み合わせ(及び/又はシーケンス)であり、手622の指が閉じられて第1のクレンチジェスチャ(例えば、第1の部分630a)を形成し、開かれてニュートラルジェスチャ/位置(例えば、第2の部分630b)を形成し、再び閉じられて第2のクレンチジェスチャ(例えば、第3の部分630c)を形成する。したがって、ダブルクレンチジェスチャは、所定の期間(例えば、0~2秒)内に検出されるクレンチジェスチャの複数(例えば、2つ)のインスタンス(例えば、第1の部分630a及び第3の部分630c)を含むジェスチャである。ピンチジェスチャ640は、手622の指のうちの1本以上(例えば、2本の指)が互いに触れているハンドジェスチャである。ピンチジェスチャを行うときには握りこぶしは形成されないが、クレンチジェスチャを行うときには最初が形成されるので、ピンチジェスチャはクレンチジェスチャとは異なる。ダブルピンチジェスチャ650は、ニュートラルジェスチャ/位置610とピンチジェスチャ640との組み合わせ(及び/又はシーケンス)であり、手622の指がタッチして第1のピンチジェスチャ(例えば、第1の部分650a)を形成し、開かれてニュートラルジェスチャ/位置(例えば、第2の部分650b)を形成し、再び閉じられて第2のピンチジェスチャ(例えば、第3の部分650c)を形成する。したがって、ダブルピンチジェスチャは、所定の期間(例えば、0~2秒)内に検出された期間で検出されたピンチジェスチャの複数(例えば、2つ)のインスタンス(例えば、第1の部分650a及び第3の部分650c)を含むジェスチャである。図6に示すように、ダブルクレンチジェスチャ630及びクレンチジェスチャ620は、ピンチジェスチャ640の複数のインスタンスを含まず、ダブルピンチジェスチャ650及びピンチジェスチャ640は、クレンチジェスチャ620の複数のインスタンスを含まない。いくつかの実施形態では、2つのピンチジェスチャが所定の期間内で検出されると、コンピュータシステム600は、2つのジェスチャをダブルピンチジェスチャであるとして登録(又は検出)する。いくつかの実施形態では、2つのピンチジェスチャが所定の期間内では検出されないとき、コンピュータシステム600は、2つのジェスチャを(例えば、ダブルピンチジェスチャを登録せずに)2つの個別のピンチジェスチャとして登録(又は検出)する。いくつかの実施形態では、2つのクレンチジェスチャが所定の期間内で検出されると、コンピュータシステム600は、2つのジェスチャをダブルクレンチジェスチャであるとして登録(又は検出)する。いくつかの実施形態では、2つのクレンチジェスチャが所定の期間内では検出されないとき、コンピュータシステム600は、2つのジェスチャを(例えば、ダブルクレンチジェスチャを登録せずに)2つの個別のクレンチジェスチャとして登録(又は検出)する。
図7A~図7AAは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
図7A~図7Gは、ハンドジェスチャを使用して着信アラート(例えば、タイマアラート)に応答するための例示的なユーザインタフェースを示す。図7Aは、現在時刻(例えば、10:09)を含む時計ユーザインタフェース710をディスプレイスクリーン602c上に表示するコンピュータシステム600を示す。コンピュータシステム600が時計ユーザインタフェース710を表示している間、手622はニュートラル位置(例えば、図6の610)にある。図7Aにおいて、コンピュータシステム600は、タイマアプリケーション(例えば、コンピュータシステム600にインストールされている)から着信アラートを受信する。図7Bに示すように、タイマアプリケーションから着信アラートを受信したことに応じて、コンピュータシステム600は、タイマユーザインタフェース712を表示する。タイマユーザインタフェース712は、中止制御712a(例えば、アクティブ化されると、コンピュータシステム600に着信アラートに関連する可聴音の出力を中止させる)と、反復制御712b(例えば、アクティブ化されると、コンピュータシステム600に着信アラートに関連するタイマを反復させる)と、タイマが終了したというインジケーション(例えば、「タイマ終了」)とを含む。図7Cにおいて、コンピュータシステム600はピンチジェスチャ750cを検出する。しかしながら、図7Dに示すように、コンピュータシステム600は、コンピュータシステム600がハンドジェスチャナビゲーションモード(例えば、及び/又はアクセシビリティモード)で動作していないので、タイマユーザインタフェース712の表示を維持し、ピンチジェスチャ750cに応じていかなる動作も実行しない。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステム600がハンドジェスチャナビゲーションモードで動作していないので、ピンチジェスチャ750cを検出しない。
図7Dにおいて、コンピュータシステム600は、ダブルクレンチジェスチャ750dを検出する。図7Eにおいて、ダブルクレンチジェスチャ750dの検出に応じて、コンピュータシステム600は、ハンドジェスチャナビゲーションモードで動作し始める。図7Eにおいて、コンピュータシステム600は、ピンチジェスチャ750e(例えば、第2のピンチジェスチャ)を検出する。図7Fに示すように、ピンチジェスチャ750eの検出に応じて、コンピュータシステム600は、コンピュータシステム600がハンドジェスチャナビゲーションモードで動作しているので、中止制御712aの周りにフォーカスインジケータを表示する。コンピュータシステム600は、中止制御712aの周りにフォーカスインジケータを表示して、コンピュータシステム600が特定のハンドジェスチャを検出したことに応じて中止制御712aをアクティブ化することができることを示す。対照的に、コンピュータシステム600は、図7Fの反復制御712bの周りにフォーカスインジケータを表示していない。したがって、反復制御712bは、コンピュータシステム600が特定のハンドジェスチャを検出したことに応じて(例えば、反復制御712bがフォーカスインジケータと共に表示される前に)アクティブ化され得ない。図7Fにおいて、コンピュータシステム600は、クレンチジェスチャ750fを検出する。図7Gにおいて、クレンチジェスチャ750fの検出に応じて、コンピュータシステム600は、中止制御712aをアクティブ化する。中止制御712aをアクティブ化すると、コンピュータシステム600は、タイマユーザインタフェース712の表示を停止し、着信アラートに関連する可聴音の出力を停止し、(例えば、図7Gに示すように)時計ユーザインタフェース710を再表示する。
図7G~図7Jは、ハンドジェスチャを使用して着信アラート(例えば、着信呼)に応答するための例示的なユーザインタフェースを示す。上述したように、図7Gは、ハンドジェスチャナビゲーションモードで動作している間に時計ユーザインタフェース710を表示するコンピュータシステム600を示す。図7Gにおいて、コンピュータシステム600は、着信電話呼に対応するアラートを受信する。図7Hに示すように、アラートの受信に応じて、コンピュータシステム600は、コンピュータシステム600がジョン・アップルシードから着信呼を受信していることを示す呼識別子714a(例えば、「ジョン・アップルシード着信呼」)を含む電話ユーザインタフェース714を表示する。電話ユーザインタフェース714はまた、拒否制御714b(例えば、アクティブ化されると、コンピュータシステム600に電話呼を拒否させる)、応答制御714c(例えば、アクティブ化されると、コンピュータシステム600に電話呼に応答させる)、及び追加オプション制御714d(例えば、アクティブ化されると、コンピュータシステム600に着信電話呼に応答するための追加オプションを表示させる)を含む。図7Hに示すように、コンピュータシステム600は、ハンドジェスチャ通知716を表示し、これは、ユーザが、(例えば、電話に応答するために複数のジェスチャ(例えば、図7C~図7Gに関連して説明した1つ以上の技法を使用して、応答制御714cにナビゲートするための1つ以上のピンチジェスチャ及び応答制御714cにナビゲートするためのクレンチジェスチャ)を提供する代わりに)ダブルクランブルジェスチャを提供することによって電話に応答できることを示す。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステム600がハンドジェスチャナビゲーションモードで動作している、及び/又はコンピュータシステム600が、特定のタイプの動作(例えば、電話呼に応答すること、アラームを中止すること、及び/又はテキストメッセージに応答すること)が単一のハンドジェスチャ(例えば、所定のハンドジェスチャ)を介して完了され得る使用コンテキストで動作しているという決定が行われるため、ハンドジェスチャ通知716を表示する。いくつかの実施形態では、コンピュータシステム600は、他の及び/又は異なるハンドジェスチャ通知(例えば、ハンドジェスチャ716からの)を表示して、1つ以上の他のジェスチャを使用して動作を実行できることをユーザに知らせる。
図7Iにおいて、コンピュータシステム600は、ダブルクレンチジェスチャ750iを検出する。図7Jに示すように、ダブルクレンチジェスチャ750iの検出に応じて、コンピュータシステム600は、呼識別子714aを、着信電話呼が応答されたことを示す経過時間インジケータ714eに置き換え、(例えば、アクティブ化されると、コンピュータシステム600の1つ以上のスピーカの音量レベルを調整させる)音量制御714fを表示する。言い換えれば、ダブルクレンチジェスチャ750iを検出したことに応じて、コンピュータシステム600は、着信電話呼に応答する。いくつかの実施形態では、コンピュータシステム600は、着信アラートが受信されていない(及び/又は所定の期間内に受信されていない)間にダブルクレンチジェスチャを検出したことに応じて、着信アラートが受信されている(及び/又は所定の期間内に受信された)間に実行される(例えば、図7I~図7Lに関連して説明したような)動作とは異なる動作(例えば、図7D~図7E及び図7L~図7Mに関連して説明したような)を実行する。
図7I~図7Uは、ハンドジェスチャ及び移動カーソルを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。特に、図7I~7Uは、ハンドジェスチャ及び移動カーソルを使用してトレーニングトラッカを終了する例示的なシナリオを示す。図7Kは、トレーニングメトリックのリストを含むトレーニングユーザインタフェース718を表示するコンピュータシステム600を示す。トレーニングユーザインタフェース718を表示している間に、コンピュータシステム600は、図7Lにおいて、ダブルクレンチジェスチャ750lを検出する。図7Mに示すように、ダブルクレンチジェスチャ750lの検出に応じて、コンピュータシステム600は、デジタルハードウェア動作制御732a、移動カーソル制御732b、対話制御732c、及び追加オプション制御732dを含むメニュー732を表示する。メニュー732は、現在フォーカスされている制御(例えば、図7Mのデジタルハードウェア動作制御732aの周りのブラックボックス)を識別する制御識別子708(「DIGITAL CROWN」)を含む。デジタルハードウェア動作制御732aのアクティブ化を検出したことに応じて、コンピュータシステム600は、デジタルハードウェア動作モード(例えば、異なるハンドジェスチャナビゲーションモード)で動作し始める。対話制御732cのアクティブ化を検出したことに応じて、コンピュータシステム600は、メニュー732を、(例えば、図7Zに関連して以下で説明するような)アクティブ化されたときにコンピュータシステム600上の位置で検出されている様々なジェスチャに対応する異なる動作をコンピュータシステム600に実行させる制御を有するメニューに置き換える。追加オプション制御732dのアクティブ化を検出したことに応じて、コンピュータシステム600は、メニュー732を、(例えば、図7Zに関連して以下で説明するような)追加の制御を含むメニューに置き換える。
図7Mに示すように、ダブルクレンチジェスチャ750lの検出に応じて、コンピュータシステム600は、デジタルハードウェア動作制御732aの周りにフォーカスインジケータを表示して、コンピュータシステム600が1つ以上のハンドジェスチャを検出したことに応じて、デジタルハードウェア動作制御732aをアクティブ化することができることを示す。図7Mにおいて、コンピュータシステム600は、ピンチジェスチャ750mを検出する。図7Nに示すように、ピンチジェスチャ750mの検出に応じて、コンピュータシステム600は、フォーカスインジケータを右に移動させ、フォーカスインジケータが移動カーソル制御732bの周りにあり、もはやデジタルハードウェア動作制御732aの周りにないようにする。特に、ピンチジェスチャ750mの検出に応じて、コンピュータシステム600は、ユーザインタフェース上でフォーカスインジケータを(例えば、位置に関して)1つの制御から次の制御に移動させる。図7Nにおいて、コンピュータシステム600は、フォーカスインジケータが移動カーソル制御732bの周りに表示されている間に、クレンチジェスチャ750nを検出する。
図7Oに示すように、クレンチジェスチャ750nの検出に応じて、コンピュータシステム600は、メニュー732の表示を停止し、トレーニングユーザインタフェース718上の位置にカーソル742を表示する。図7Oにおいて、クレンチジェスチャ750nの検出に応じて、コンピュータシステム600は、移動カーソル動作モード(例えば、別のハンドジェスチャ動作モード)で動作し始める。図7Pにおいて、コンピュータシステム600は、コンピュータシステム600が左(例えば、750p)に傾けられている(例えば、動かされている)ことを(例えば、1つ以上の加速度計及び/又はジャイロスコープを介して、光学/心拍数センサとは異なるセンサを介して、及び/又は1つ以上のハンドジェスチャを検出するセンサとは異なるセンサを介して)検出する。図7Pにおいて、コンピュータシステム600が左に傾けられていることを検出したことに応じて、コンピュータシステム600は、コンピュータシステム600によって検出されている傾きの量及び/又は傾きの速度に基づいて、カーソル742を左に移動させる。図7Pに示すように、カーソル742は、トレーニングユーザインタフェース718の左端に向かって移動される。図7Pにおいて、カーソル742が(例えば、所定の期間にわたって)トレーニングユーザインタフェース718の左端に(例えば、及び/又はその近くに)位置しているという決定がなされる。図7Q~図7Rに示すように、カーソル742がトレーニングユーザインタフェース718の左端に位置していると決定されたので、コンピュータシステム600は、トレーニングユーザインタフェース718をディスプレイスクリーン602cの右端からスライドさせ、トレーニング制御ユーザインタフェースをディスプレイスクリーンの左端からディスプレイスクリーン602c上にスライドさせる(例えば右にスライドさせる)アニメーションを表示する。したがって、カーソル742が(例えば、及び/又は近くに)位置付けられているという決定がなされるので、コンピュータシステム600は、現在表示されているユーザインタフェースを別のユーザインタフェースに置き換える。
図7Rに示すように、トレーニング制御ユーザインタフェース720は、ロック制御720a(例えば、アクティブ化されると、コンピュータシステム600上で検出されたタッチ入力をコンピュータシステム600に無視させる)、新規制御720b(例えば、アクティブ化されると、コンピュータシステム600に新規トレーニングトラッカを開始させる)、終了制御720c(例えば、アクティブ化されると、コンピュータシステム600に、現在トレーニング活動を追跡しているトレーニングトラッカを中止させる)、及び一時停止制御730d(例えば、アクティブ化されると、コンピュータシステム600に、現在トレーニング活動を追跡しているトレーニングトラッカを一時停止させる)を含む。図7Rに示すように、手622はニュートラル位置(例えば、図6の610)にあり、カーソル742は終了制御720cの上に配置されている。図7Sでは、カーソル742が最初に終了制御720cの上に(及び/又はカーソル742の現在位置に)位置付けられてから一定期間が経過している(例えば、手622はニュートラル位置のままである)。図7Sに示すように、コンピュータシステム600は、インジケーション744と共にカーソル742を表示する。インジケーション744は、終了制御720cをアクティブ化すること、及び/又はカーソル742の位置に対応する動作を実行するための1つ以上の制御を含むメニュー(例えば、図7Mのメニュー732)を表示することなど、カーソル742の位置に対応する動作(例えば、アクティブ化動作)が実行される前の時間量を示す。したがって、カーソル742が制御などのユーザインタフェースオブジェクトに対応する位置に表示されている間に、コンピュータシステム600は、インジケーション744のサイズのアニメーションを表示し、及び/又はある期間(例えば、動作が実行される前の残り時間を示す期間)にわたってカーソル742を塞ぐ。図7Sにおいて、カーソル742のおよそ半分を塞ぐインジケーション744は、コンピュータシステム600がカーソル742の位置に対応する動作を実行することができる前に、およそ半分の時間が経過したことを示す(例えば、カーソル742が終了制御720cの上に位置付けられてから)。図7Q~図7Rを振り返ると、コンピュータシステム600が特定の位置に表示された時間の長さに関係なく、コンピュータシステム600がユーザインタフェース上及び/又はディスプレイの端に表示されなかった間に、コンピュータシステム600はカーソル742を有するインジケーションを表示しなかった。したがって、いくつかの実施形態では、コンピュータシステム600は、移動カーソル742がユーザインタフェースオブジェクト(例えば、選択可能及び/又は(アクティブ化されることが可能な)ユーザインタフェースオブジェクト、ディスプレイスクリーン602c上で検出される1つ以上のジェスチャを介してアクティブ化され得るユーザインタフェースオブジェクト)の上にあるときにのみ、インジケーション744を含むアニメーションを表示する。
図7Sでは、カーソル742が最初に終了制御720cの上に位置付けられてからより多くの時間が経過している(例えば、手622はニュートラル位置のままである)。図7Tに示すように、コンピュータシステム600は、インジケーション744がカーソル742の全てを塞ぐように、インジケーション744を更新している。図7Tにおいて、カーソル742が所定の期間(例えば、1~5秒)にわたって終了制御720cの上に位置付けられたという決定が行われる。図7Uでは、カーソル742が所定の期間にわたって終了制御720cの上に位置付けられたという決定が行われるので、コンピュータシステム600は、終了制御720cをアクティブ化する。終了制御720cがアクティブ化されると、コンピュータシステム600は、トレーニングトラッカが終了したことを示す完了ユーザインタフェース770を表示する。
図7U~図7AAは、ハンドジェスチャ及び移動カーソルを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。特に、図7U~図7AAは、コンピュータシステム600がシェイクジェスチャの検出に応じて移動カーソル動作モードに入る例示的なシナリオを示す(例えば、図7Nに関連して上述したように、1つ以上のハンドジェスチャを介してメニュー732上の移動カーソル制御732bをアクティブ化する代わりに)。図7Uは、現在時刻(例えば、10:09)を含む時計ユーザインタフェース710を表示するコンピュータシステム600を示す。図7Wにおいて、コンピュータシステム600は、(例えば、1つ以上の加速度計及び/又はジャイロスコープを介して)シェイクされている(又はシェイクされた)ことを検出する(例えば、750w)。図7Xにおいて、コンピュータシステム600がシェイクされている(又はシェイクされた)ことを検出したことに応じて、コンピュータシステム600は、移動カーソルモードで動作し始める(例えば、移動カーソルモードで動作していない状態から移動カーソルモードで動作する状態に遷移する)。コンピュータシステム600がシェイクされている(又はシェイクされた)ことを検出したことに応じて、コンピュータシステム600は、カーソル742を表示する。図7Yにおいて、コンピュータシステム600は、コンピュータシステム600が右(例えば、750y)に傾けられている(例えば、動かされている)ことを検出する。図7Yにおいて、コンピュータシステム600が右に傾けられていることを検出したことに応じて、コンピュータシステム600は、コンピュータシステム600によって検出されている傾きの量及び/又は傾きの速度に基づいて、カーソル742を右に移動させる。図7Yに示すように、カーソル742は、時計ユーザインタフェース710の右端に向かって移動される。図7Yにおいて、カーソル742が時計ユーザインタフェース710の右端(例えば、及び/又はその近く)に位置付けられているという決定がなされる。図7Z~図7AAに示すように、カーソル742がトレーニングユーザインタフェース718の左端に位置していると決定されたので、コンピュータシステム600は、時計ユーザインタフェースをディスプレイスクリーン602cの左端から(例えばカーソル742が位置している端から離れるように)スライドさせるアニメーションを表示し、アナログ時計ユーザインタフェース780をディスプレイスクリーン602cの右からスライドさせてディスプレイスクリーン602cの左端に向かって移動させるように表示する。
図8A~図8Jは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
特に、図8A~図8Jは、(例えば、図7I~図7Uに関連して上述したようにユーザインタフェースオブジェクトをアクティブ化する代わりに)カーソル742がユーザインタフェースオブジェクトの上に位置付けられた(例えば、表示された)ことに応じて、コンピュータシステム600がメニュー732を表示する例示的なシナリオを示す。図8Aは、アプリケーション制御810a~810d(例えば、アクティブ化されると、各々がコンピュータシステム600にアプリケーションを起動させる)を含む時計ユーザインタフェース810を表示するコンピュータシステム600を示す。図8Aにおいて、コンピュータシステム600は、(例えば、図7U~7AAに関連して上述したような1つ以上の技術を使用して)シェイクされている(又はシェイクされた)ことを検出する(例えば、850a)。図8Bにおいて、コンピュータシステム600がシェイクされている(又はシェイクされた)ことを検出したことに応じて、コンピュータシステム600は、移動カーソルモードで動作し始め、時計ユーザインタフェース810上にカーソル742を表示する。
図8Cにおいて、カーソル742は、所定の期間にわたって同じ位置(例えば、図8Bにおいて表示された位置)に表示されている。しかしながら、図8Cでは、(例えば、図7I~図7Uに関連して説明された1つ以上の技術を使用して)カーソル742がユーザインタフェースオブジェクト(例えば、選択可能なオブジェクト及び/又はアクティブ化され得るユーザインタフェースオブジェクト及び/又はコンピュータシステム600がユーザインタフェースオブジェクト上で1つ以上の入力を検出したとき、及び一部の実施形態ではコンピュータシステムが通常動作モードで動作しているとき及び/又はハンドジェスチャを検出していないときにアクティブ化され得るユーザインタフェースオブジェクト)に対応する位置に配置されていないため、コンピュータシステム600は、カーソル742が埋まるアニメーションを表示しない。図8Cにおいて、コンピュータシステム600は、(例えば、図7I~7Uに関連して説明される1つ以上の技術を使用して)下向きに傾けられていることを検出する(例えば、850c)。図8Dに示すように、コンピュータシステム600が下方に傾けられていることを検出したことに応じて、コンピュータシステム600は、カーソル742をアプリケーションアイコン810dの上に移動させる。
図8E~図8Gに示すように、コンピュータシステム600は、カーソル742がアプリケーションアイコン810d(例えば、選択可能ユーザインタフェースオブジェクト)の上に表示されるので(例えば、図7I~図7Uに関連して上述した1つ以上の技術を使用して)、ある期間にわたってカーソル742を埋めるインジケーション744のアニメーションカーソルを表示する。図8Gに示すように、インジケーション744はカーソル742を完全に埋めている。図8Gにおいて、カーソル742がアプリケーションアイコン810d上に所定期間(例えば、1~5秒)配置されたと決定された上で、カーソル742が表示されたと決定される。
図8Hに示すように、カーソル742が所定の期間にわたってアプリケーションアイコン810d上に位置付けられたという決定が行われるので、コンピュータシステム600は、メニュー732を表示する(例えば、いくつかの実施形態では、アプリケーションアイコン810dをアクティブ化することなく、(例えば、アプリケーションアイコン810d及び/又はアプリケーションアイコン810dの位置を使用し操作を実行することができるように)アプリケーションアイコン810d及び/又はアプリケーションアイコン810dの位置を選択する)。また、図8Hにおいて、コンピュータシステム600は、対話制御732c上に位置決めされたカーソル742を表示している。いくつかの実施形態では、1つ以上の設定は、カーソル742が所定の期間にわたって特定のユーザインタフェースオブジェクトの上に位置決めされたと決定されたときにコンピュータシステム600がユーザインタフェースオブジェクトをアクティブ化するかどうか、カーソル742が所定の期間にわたって特定のユーザインタフェースオブジェクトの上に位置決めされたと決定されたときにコンピュータシステム600がメニューを表示するかどうか、又は両方を行うかどうかを制御する。いくつかの実施形態では、コンピュータシステム600は、(カーソル742がその上をホバーしていたユーザインタフェースオブジェクトを覆い隠さないように)カーソル742がアプリケーションアイコン810dの上に位置決めされた場所から更に離れたディスプレイ上の位置にメニュー732を表示する。
図8Iに示すように、コンピュータシステム600は、(例えば、図8E~8Gに関連して説明したような1つ以上の技術を使用して)カーソル742を埋めたインジケーション744を表示する。図8Iにおいて、カーソル742が所定の期間にわたって対話制御732c上で検出されたという決定が行われる。図8Jにおいて、カーソル742が所定の期間にわたってカーソル742上で検出されたという決定が行われるので、コンピュータシステム600は、対話制御732cをアクティブ化する。対話制御732cのアクティブ化に応じて、コンピュータシステム600は、タップ制御832aを含む追加の制御を表示する。特に、メニュー732が表示されている間に所定の時間にわたってカーソル742が選択可能ユーザインタフェースオブジェクト上で検出されたと決定されると、コンピュータシステム600は、ユーザインタフェースオブジェクトをアクティブ化する(そして、コンピュータシステム600の1つ以上の設定にかかわらず、メニュー732を再表示しない)。
図8Jにおいて、コンピュータシステム600は、タップ制御832a上にカーソルを表示する。いくつかの実施形態では、カーソル742がタップ制御832a上で検出されたと決定されると、コンピュータシステム600はタップ制御832aをアクティブ化する。いくつかの実施形態では、タップ制御832aのアクティブ化を検出したことに応じて、コンピュータシステム600は、(例えば、図8G~図8Iにおいて)メニュー732を表示させたカーソル742が表示された位置でタップジェスチャが検出された場合に実行されたであろう動作を検出及び/又は実行する。例えば、図8Jにおいて、タップ制御832aのアクティブ化を検出したことに応じて、コンピュータシステム600は、アプリケーションアイコン810dに対応するアプリケーション(例えば、図10Fのユーザインタフェース)を起動する。いくつかの実施形態では、コンピュータシステム600が、メニュー732を表示させた位置にカーソル742が表示された位置で特定のジェスチャ(例えば、長押しジェスチャ、ドラッグジェスチャ)が検出された場合に実行されたであろう動作(例えば、タップジェスチャが検出された場合とは異なる動作)(例えば、時計の文字盤メニューを表示させるジェスチャ、時計ユーザインタフェース810上のある位置から別の位置にアプリケーションアイコンを移動させるジェスチャ、時計ユーザインタフェース810からアプリケーションアイコンを削除させるジェスチャ)を実行する場合、他のジェスチャ制御を表示及びアクティブ化することができる。
図9A~図9Hは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
特に、図9A~9Hは、コンピュータシステム600が、(例えば、図7A~7Gに関連して上述したものと同様の技術を使用して)ハンドジェスチャの検出に応じてユーザインタフェースを通じてナビゲートする例示的なシナリオを示す。図9Aは、ハンドジェスチャナビゲーションモードで動作していない間にメディアユーザインタフェース910を表示するコンピュータシステム600を示す。メディアユーザインタフェース910は、バック制御910a(例えば、アクティブ化されると、コンピュータシステム600に、以前に表示されたユーザインタフェースを表示させる)、リバース制御910b(例えば、アクティブ化されると、コンピュータシステム600を、メディアアイテムのリストにある以前のメディアアイテムを再生するように構成する)、一時停止制御910c(例えば、アクティブ化されると、コンピュータシステム600に、メディアアイテムの再生を一時停止させる)、フォワード制御910d(例えば、アクティブ化されると、コンピュータシステム600を、メディアアイテムのリストにある次のメディアアイテムを再生するように構成する)、追加オプション制御910e(例えば、アクティブ化されると、コンピュータシステム600に、現在図9A表示されていない1つ以上の追加の制御を表示させる)、キュー制御910f(例えば、アクティブ化されると、コンピュータシステム600に、キューに入れられたメディアアイテムのリストを表示させる)、及び接続制御910g(例えば、アクティブ化されると、コンピュータシステム600に、コンピュータシステム600を1つ以上の外部コンピュータシステムに接続するためのユーザインタフェースを表示させる)を含む。図9Aにおいて、コンピュータシステム600は、ダブルクレンチジェスチャ950aを検出する。
図9Bにおいて、ダブルクレンチジェスチャ950aの検出に応じて、コンピュータシステム600は、(例えば、図7D~図7Eに関連して上述したような1つ以上の技術を使用して)ハンドジェスチャナビゲーションモードで動作し始める。図9Bに示すように、ダブルクレンチジェスチャ950aの検出に応じて、コンピュータシステム600は、(例えば、図7Dに関連して上述したような1つ以上の技術を使用して)フォーカスインジケータをフォワード制御910dの周りに表示する。いくつかの実施形態では、コンピュータシステム600は、ダブルクレンチジェスチャ950aの検出に応じて、メディアユーザインタフェース910上のフォワード制御910d(例えば、制御910a~910d又は910e~910g)とは異なる及び/又はフォワード制御でない制御の周りにフォーカスインジケータを表示する。
図9Bにおいて、コンピュータシステム600は、ダブルピンチジェスチャ950bを検出する。図9Cに示すように、ダブルピンチジェスチャ950bの検出に応じて、コンピュータシステム600は、フォーカスインジケータを左に移動させ、フォーカスインジケータが一時停止制御910cの周りに表示され、フォワード制御910dの周りに表示されないようにする。図9Cにおいて、ダブルピンチジェスチャ950bの検出に応じて、コンピュータシステム600は、コンピュータシステム600がフォワード制御910dについてメディアユーザインタフェース910上の前の制御であると決定した制御の周りにフォーカスインジケータを移動させる。いくつかの実施形態では、コンピュータシステム600は、フォワード制御910d(例えば、フォーカスインジケータが周りにあった以前の制御)の位置からメディアユーザインタフェース910上の開始行(例えば、メディアユーザインタフェース910の上部付近及び/若しくは上部の行上の位置、並びに/又はメディアユーザインタフェース910の左/右に最も遠く、上部付近にある選択可能ユーザインタフェースオブジェクト(例えば、制御)を有する行上の位置)に向かって進む、メディアユーザインタフェース910上の方向にある制御を識別することによって、以前の制御を決定する。いくつかの実施形態では、図9Cにおいて、一時停止制御910cは、フォワード制御910dに隣接しており(例えば、2つの制御の間に別の制御がない状態で隣接している)、フォワード制御910d(又は、いくつかの実施形態では、他の隣接制御(例えば、キュー制御910f、追加オプション制御910e))よりもメディアユーザインタフェース910の開始行に近いので、一時停止制御910cは、フォワード制御910dの前の制御であると決定される。図9Cにおいて、コンピュータシステム600は、クレンチジェスチャ950cを検出する。
図9Dにおいて、クレンチジェスチャ950cの検出に応じて、コンピュータシステム600は、一時停止制御910cをアクティブ化し、メディア(例えば、「ポップスター」による「大事なこと」)の再生を一時停止する。図9Dに示すように、クレンチジェスチャ950cの検出に応じて、一時停止制御910cは、再生制御910h(例えば、アクティブ化されると、メディアアイテムの再生を開始する)に置き換えられる。図9Dに示すように、クレンチジェスチャ950cの検出に応じて、コンピュータシステム600は、メディアユーザインタフェース910上の同じ位置にフォーカスインジケータを維持する。したがって、いくつかの実施形態では、コンピュータシステム600は、クレンチジェスチャ950cを検出したとき、及び/又はハンドジェスチャの検出に応じて制御をアクティブ化するとき、制御が別の制御と置き換えられるかどうかにかかわらず、フォーカス制御を移動させない。図9Eにおいて、コンピュータシステム600は、ピンチジェスチャ950eを検出する。
図9Fに示すように、ピンチジェスチャ950eの検出に応じて、コンピュータシステム600は、フォーカスインジケータを右に移動させ、フォーカスインジケータがフォワード制御910dの周りに表示され、再生制御910hの周りに表示されないようにする。図9Fにおいて、ピンチジェスチャ950eの検出に応じて、コンピュータシステム600は、コンピュータシステム600が再生制御910hに関連してメディアユーザインタフェース910上の次の制御であると決定した制御の周りにフォーカスインジケータを移動させる。いくつかの実施形態では、コンピュータシステム600は、フォワード制御910d(例えば、フォーカスインジケータが周りにあった以前の制御)の位置からメディアユーザインタフェース910上の終了行(例えば、メディアユーザインタフェース910の下部付近及び/若しくは下部の行上の位置、並びに/又はメディアユーザインタフェース910の左/右に最も遠く、上部付近にある選択可能ユーザインタフェースオブジェクト(例えば、制御)を有する行上の位置)に向かって進む、メディアユーザインタフェース910上の方向にある制御を識別することによって、次の制御を決定する。いくつかの実施形態では、図9Fにおいて、フォワード制御910dは、フォワード制御910dに隣接しており(例えば、2つの制御の間に別の制御がない状態で隣接している)、再生制御910hよりもメディアユーザインタフェース910の開始行に近いので、フォワード制御910dは、再生制御910hの次の制御であると決定される。
特に、図9Bのダブルピンチジェスチャ950bは、図9Eのピンチジェスチャ950eの複数のインスタンスを含む。更に、コンピュータシステム600は、ピンチジェスチャ950eの検出に応じてコンピュータシステム600が実行した動作に対して、ダブルピンチジェスチャ950bの検出に応じて反対の動作(例えば、前の制御へのナビゲーション)を実行する。したがって、いくつかの実施形態では、コンピュータシステム600は、互いの複数のインスタンスを含むジェスチャの検出に応じて反対の動作を実行する。いくつかの実施形態では、反対のジェスチャは、異なるジェスチャのつながり(例えば、それらの間の類似性)のために、ユーザがユーザインタフェースをより容易にナビゲートするのを助ける。図9Fに戻ると、コンピュータシステム600は、ピンチジェスチャ950fを検出する。
図9Gに示すように、ピンチジェスチャ950fの検出に応じて、コンピュータシステム600は、フォーカスインジケータを下方に移動させ、フォーカスインジケータが追加オプション制御910eの周りに表示され、フォワード制御910dの周りに表示されないようにする。ここで、コンピュータシステム600は、追加オプション制御910eが次の制御であるため、フォーカスインジケータを下方に移動させる。図9Gにおいて、コンピュータシステム600は、接続制御910gがフォワード制御910dに隣接していない(例えば、接続制御910gが次の制御であると決定されない)ので、接続制御910gの周りにフォーカスインジケータを表示しない。いくつかの実施形態では、コンピュータシステム600は、特定のユーザインタフェース上の制御の特定のレイアウトに基づくパターンで、ユーザインタフェースの周りにフォーカスを移動させる。図9Aに戻ると、いくつかの実施形態では、コンピュータシステム600は、制御の識別順序(910a、910b、910c、910d、910e、910f、及び910gを連続的に(又は逆に))でメディアユーザインタフェース910の周りにフォーカスインジケータを移動させる。いくつかの実施形態では、フォーカスインジケータが最後の制御(例えば、910g)の周りにあるとき、コンピュータシステム600は、ピンチジェスチャ(又は次の制御を移動させるジェスチャ)の検出に応じて、フォーカスインジケータを第1の制御(例えば、910a)の周りに移動させる。いくつかの実施形態では、フォーカスインジケータが第1の制御(例えば、910a)の周りにあるとき、コンピュータシステム600は、ダブルピンチジェスチャ(又は前の制御を移動させるジェスチャ)の検出に応じて、フォーカスインジケータを最後の制御(例えば、910g)の周りに移動させる。図9Gに戻ると、コンピュータシステム600は、フォーカスインジケータが追加オプション制御910eの周りにある間に、クレンチジェスチャ950gを検出する。
図9Hに示すように、クレンチジェスチャ950gの検出に応じて、コンピュータシステム600は、追加オプションユーザインタフェース920を表示し、メディアユーザインタフェース910の表示を停止する。図9Hに示すように、クレンチジェスチャ950gの検出に応じて、コンピュータシステム600は、追加オプションユーザインタフェース920の制御(例えば、開始行の位置の制御)の周りにフォーカスインジケータを表示する。いくつかの実施形態では、追加オプションユーザインタフェース920の周りにフォーカスインジケータを移動させるための1つ以上のハンドジェスチャ(例えば、ピンチジェスチャ及び/又はダブルピンチジェスチャ)の検出に応じて、コンピュータシステム600は、追加オプションユーザインタフェース920に含まれる異なる制御の周りにフォーカスインジケータを移動させる。いくつかの実施形態では、コンピュータシステム600は、(例えば、図9A~図9Gに関連して上述したように)コンピュータシステム600がメディアユーザインタフェース910に含まれる制御の周りにフォーカスインジケータを移動させたパターン(例えば、蛇行パターン)とは異なるパターン(例えば、垂直パターン)で、追加オプションユーザインタフェース920に含まれる異なる制御の周りにフォーカスインジケータを移動させる。
図10A~図10Fは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
特に、図10A~10Fは、コンピュータシステム600が、(例えば、図7A~7Gに関連して上述したものと同様の技術を使用して)ハンドジェスチャの検出に応じてユーザインタフェースを通じてナビゲートする例示的なシナリオを示す。図10Aは、ハンドジェスチャナビゲーションモードで動作していない間にメディアユーザインタフェース1010を表示するコンピュータシステム600を示す。メディアユーザインタフェース1010は、アプリケーションアイコン1010a~1010d(例えば、アクティブ化されると、コンピュータシステム600に、アクティブ化された特定のアプリケーションアイコンのためのユーザインタフェースを表示させる)を含む。図10Aにおいて、コンピュータシステム600は、(例えば、図7A~図7G及び図9A~図9Hに関連して上述したように)ハンドナビゲーション動作モードで動作している。いくつかの実施形態では、コンピュータシステム600は、図7A~7G及び9A~9Hに関連して上述した1つ以上の技術を使用して、メディアユーザインタフェース1010を通じてナビゲートする。図10Bにおいて、コンピュータシステム600は、ダブルクレンチジェスチャ1050bを検出する。
図10Cに示すように、ダブルクレンチジェスチャ1050bの検出に応じて、コンピュータシステム600は、(例えば、図7Dに関連して上述したようは)制御732a~732dを含むメニュー732を表示する。メニュー732は、現在フォーカスされている制御(例えば、図10Cのデジタルハードウェア動作制御732aの周りのブラックボックス)を識別する制御識別子708(「DIGITAL CROWN」)を含む。図10Cに示すように、コンピュータシステム600は、デジタルハードウェア動作制御732a及びアプリケーションアイコン1010cの両方の周囲にフォーカスインジケータを表示するが、これは、ダブルクレンチジェスチャ1050bが検出される前にアプリケーションアイコン1010cが選択されたため、及び/又はコンピュータシステム600がアプリケーションアイコン1010cの位置で動作(例えば、図8Jに関連して上述したようなアプリケーションアイコン1010cのアクティブ化)を実行できるためである。図10Cにおいて、コンピュータシステムは、ダブルクレンチジェスチャ1050cを検出する。
図10Dに示すように、ダブルクレンチジェスチャ1050cの検出に応じて、コンピュータシステム600は(例えば、コンピュータシステム600がハンドジェスチャナビゲーションモードで動作し続けている間)メニュー732の表示を停止する。図10Dにおいて、コンピュータシステム600は、ピンチジェスチャ1050dを検出する。図10Eに示すように、ピンチジェスチャ1050dの検出に応じて、コンピュータシステム600は、フォーカスインジケータを下方及び左に移動させ、フォーカスインジケータがアプリケーションアイコン1010dの周りに表示され、アプリケーションアイコン1010cの周りに表示されないようにする。コンピュータシステム600は、(例えば、ピンチジェスチャ1050dの検出に応じて)アプリケーションアイコン1010dが次の制御であったという決定が行われたので、フォーカスインジケータをアプリケーションアイコン1010dの周りに表示する。いくつかの実施形態では、この決定は、図9A~9Hに関連して上述した1つ以上の技術を使用して行われた。図10Eにおいて、コンピュータシステム600は、クレンチジェスチャ1050eを検出する。図10Fにおいて、クレンチジェスチャ1050eの検出に応じて、コンピュータシステム600は、アプリケーションアイコン1010dをアクティブ化し、アプリケーションアイコン1010d(例えば、呼吸アプリケーションアイコン)に対応するアプリケーション(例えば、呼吸アプリケーション)を表示する。
図11A~図11Hは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。特に、図11A~11Hは、コンピュータシステム600が、1つ以上のハンドジェスチャの検出に応じて、ユーザインタフェースを自動的にスクロールし、異なる動作を実行する例示的なシナリオを示す。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステムがデジタルハードウェア動作モード(例えば、ハンドジェスチャナビゲーションモード)で動作しているときに、図11A~図11Hに関連して説明したような1つ以上の技術を使用して、ユーザインタフェースを自動的にスクロールする。いくつかの実施形態では、コンピュータシステム600は、デジタルハードウェア動作制御732aのアクティブ化に応じて、デジタルハードウェア動作モードで動作し始める。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステム600が入力機構上の入力(例えば、回転可能な入力)を検出したことに応じて、実行される動作(単数又は複数)と同様の動作(単数又は複数)でユーザインタフェースを自動的にスクロールし、及び/又は同じ動作を実行する。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステムが(例えば、1412に関連して後述するように)自動スクロールモードで動作しているとき、ユーザインタフェースを自動的にスクロールする。
図11Aは、テキストメッセージユーザインタフェース1110を表示するコンピュータシステム600を示す。テキストメッセージユーザインタフェース1110は、テキストメッセージ領域1120と、アニメーション画像制御1110aを含む1つ以上の制御とを含む。図11Aに示すように、テキストメッセージ領域1120は、テキストメッセージ1120a(「どこにいる?」)を含む。図11Aに示すように、コンピュータシステム600は、テキストメッセージユーザインタフェース1110の下部に表示されるアニメーション画像制御1110aの周りにフォーカスインジケータを表示している。図11Aにおいて、コンピュータシステム600は、ダブルクレンチジェスチャ1150aを検出する。
図11Bに示すように、ダブルクレンチジェスチャ1150aの検出に応じて、コンピュータシステム600は、デジタルハードウェア動作制御732aを含むメニュー732を表示する。図11Bにおいて、コンピュータシステム600は、テキストメッセージユーザインタフェース1110の上部にメニュー732を表示する。いくつかの実施形態では、フォーカスインジケータがアニメーション画像制御1110aの周りに表示され、アニメーション画像制御1110aがテキストメッセージユーザインタフェース1110の下部に表示されるので、コンピュータシステム600は、テキストメッセージユーザインタフェース1110の上部にメニュー732を表示する。いくつかの実施形態では、コンピュータシステム600は、選択された制御(例えば、その周りにフォーカスインジケータを有する制御)がメディアユーザインタフェース1110の下部に表示されていないという判定に応じて、メニュー732を下部(又はユーザインタフェースの別の領域)に表示する。図11Bにおいて、コンピュータシステム600は、フォーカスインジケータがデジタルハードウェア動作制御732aの周りに表示されている間に、ダブルクレンチジェスチャ1150bを検出する。
図11Cに示すように、ダブルクレンチジェスチャ1150bの検出に応じて、コンピュータシステム600は、デジタルハードウェア動作モード(例えば、及び/又は自動スクロールモード)で動作し始める。デジタルハードウェア動作モードで動作している間に、コンピュータシステム600は、あたかも1つ以上の入力(例えば、回転入力、押圧入力、スライド入力)がコンピュータシステム600の入力機構で受信されたかのように動作を実行する。図11Cのユーザインタフェースを表示した後しばらくして、コンピュータシステム600は、入力及び/又はハンドジェスチャを検出することなく(例えば、手622はニュートラル位置にある)、入力機構602aで検出されている1つ以上の入力と一致する動作を実行する。図11Dに示すように、動作を実行するとき、コンピュータシステム600は、フォーカスインジケータを、(例えば、入力機構602a上で入力が検出されることなく)アニメーション画像制御1110aの周囲から言語制御1110bの周囲に移動させ、これは、入力機構602aで検出されている入力と一致する動作である。図11Dのユーザインタフェースを表示した後しばらくして、コンピュータシステム600は、入力及び/又はハンドジェスチャを検出することなく(例えば、手622はニュートラル位置にある)、入力機構602aで検出されている1つ以上の入力と一致する別の動作を実行する。図11Eに示すように、動作を実行するとき、コンピュータシステム600は、テキストメッセージユーザインタフェース1110をスクロールし、フォーカスインジケータを言語制御1110bの周りから応答制御1110cの周りに移動させる。図11Eのユーザインタフェースを表示した後しばらくして、コンピュータシステム600は、入力及び/又はハンドジェスチャを検出することなく(例えば、手622はニュートラル位置にある)、入力機構602aで検出されている1つ以上の入力と一致する別の動作を実行し、コンピュータシステム600は、テキストメッセージユーザインタフェース1110をスクロールし(例えば、新しい制御が表示される)、フォーカスインジケータを応答制御1110cの周りから応答制御1110eの周りに移動させる。図11Fにおいて、コンピュータシステム600は、フォーカスインジケータが応答制御1110eの周りに表示されている間にピンチジェスチャ1150fを検出する。図11Gに示すように、ピンチジェスチャ1150fの検出に応じて、コンピュータシステム600は、入力機構602aで検出されている1つ以上の入力と一致する動作を自動的に実行することを停止する(例えば、及び/又はスクロールを一時停止する)。いくつかの実施形態では、追加のピンチジェスチャの検出に応じて、コンピュータシステム600は、入力機構602aで検出されている1つ以上の入力と一致する動作の実行を再開する。
図11Gにおいて、コンピュータシステム600は、フォーカスインジケータが応答制御1110eの周りに表示されている間に、クレンチジェスチャ1150gを検出する。図11Gに示すように、クレンチジェスチャ1150gの検出に応じて、応答制御1110eがアクティブ化される。図11Gにおいて、クレンチジェスチャ1150gの検出に応じて、コンピュータシステム600は、テキストメッセージ領域1120内の応答制御1110eに対応する応答メッセージ1120b(「途中です」)を挿入する。いくつかの実施形態では、コンピュータシステム600は、1つ以上の外部コンピュータシステムに、テキストメッセージ会話の一部である返信メッセージ1120bを送信する。
図12A~図12Jは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
特に、図12A~12Jは、コンピュータシステム600が、1つ以上のハンドジェスチャの検出に応じて、ユーザインタフェースを自動的にスクロールし、異なる動作を実行する例示的なシナリオを示す。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステムがデジタルハードウェア動作モード(例えば、ハンドジェスチャナビゲーションモード)で動作しているときに、図12A~図12Jに関連して説明したような1つ以上の技術を使用して、ユーザインタフェースを自動的にスクロールする。いくつかの実施形態では、コンピュータシステム600は、デジタルハードウェア動作制御732aのアクティブ化に応じて、デジタルハードウェア動作モードで動作し始める。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステム600が入力機構上の入力(例えば、回転可能な入力)を検出したことに応じて、実行される動作(単数又は複数)と同様の動作(単数又は複数)でユーザインタフェースを自動的にスクロールし、及び/又は同じ動作を実行する。いくつかの実施形態では、コンピュータシステム600は、コンピュータシステムが(例えば、1412に関連して後述するように)自動スクロールモードで動作しているとき、ユーザインタフェースを自動的にスクロールする。
図12Aは、時計文字盤ユーザインタフェース1210を表示するコンピュータシステム600を示す。時計文字盤ユーザインタフェース1210は、選択可能な制御1210a~1210eを含む。図12Aにおいて、コンピュータシステム600は自動スクロールモードで動作している。図12A~図12Cに示すように、コンピュータシステム600は、自動的に(例えば、ニュートラル位置にある手622によって示すように)、フォーカスインジケータを選択可能制御1210a~1210cの間で(例えば、コンピュータシステム600が入力を検出することなく)(例えば、第1の速度で)移動させる。図12Cにおいて、コンピュータシステム600は、フォーカスインジケータが選択可能制御1210cの周りに表示されている間にピンチジェスチャ1250cを検出する。図12Dに示すように、ピンチジェスチャ1250cの検出に応じて、コンピュータシステム600は、選択可能制御間でフォーカスインジケータを自動的に移動させることを中止し、(例えば、ニュートラル位置にある手622によって示すように)選択可能制御1210cの周りにフォーカスインジケータを表示し続ける。図12Eにおいて、コンピュータシステム600は、フォーカスインジケータが選択可能制御1210cの周りに表示されている間にピンチジェスチャ1250eを検出する。図12F~図12Gに示すように、ピンチジェスチャ1250eの検出に応じて、コンピュータシステム600は、フォーカスインジケータの移動を再開する(例えば、フォーカスインジケータを選択可能制御1210dの周りに表示し、次いで選択可能制御1210eの周りに表示する)。
図12Hにおいて、コンピュータシステム600は、フォーカスインジケータを左に移動させ、フォーカスインジケータが選択可能制御1210dの周りに表示され、1210eの周りに表示されないようにする。図12Hにおいて、1210eが時計文字盤ユーザインタフェース1210上の最後の選択可能制御であると決定されているので、コンピュータシステム600は、フォーカスインジケータを選択可能制御1210eから選択可能制御1210dに移動させる。したがって、図12Hにおいて、コンピュータシステム600は、時計文字盤ユーザインタフェース1210の選択可能ユーザインタフェースオブジェクトの周りのフォーカスインジケータの移動方向を反転させる。いくつかの実施形態では、コンピュータシステム600は、所定の時間が経過したときに、選択可能制御1210cの周りにフォーカスインジケータを表示する。図12Hにおいて、コンピュータシステム600は、ダブルピンチジェスチャ1250hを検出する。図12Gにおいて、ダブルピンチジェスチャ1250hの検出に応じて、コンピュータシステム600は、時計文字盤ユーザインタフェース1210の選択可能ユーザインタフェースオブジェクトの周りのフォーカスインジケータの移動方向を反転させる。図12Iに示すように、ダブルピンチジェスチャ1250hの検出に応じて、コンピュータシステム600は、(例えば、ダブルピンチジェスチャ1250hが検出されなかった場合にコンピュータシステム600がフォーカスインジケータを表示していたであろう選択可能制御1210cの周りにフォーカスインジケータを表示する代わりに)選択可能制御1210eの周りにフォーカスインジケータを表示する。図12Iにおいて、コンピュータシステム600は、フォーカスインジケータが選択可能制御1210eの周りに表示されている間に、クレンチジェスチャ1250iを検出する。図12Jに示すように、クレンチジェスチャ1250jの検出に応じて、コンピュータシステム600は、選択可能制御1210eをアクティブ化する。図12Jに示すように、クレンチジェスチャ1250jの検出に応じて、コンピュータシステム600は、選択可能制御1210eに対応するアプリケーションのユーザインタフェースであるカレンダーアプリケーションユーザインタフェース1220を表示する。
図13A~図13Gは、いくつかの実施形態に係る、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15~図16のプロセスを含む後述のプロセスを例示するために使用される。
特に、図13A~13Gは、(例えば、図7A~7AA、図8A~8J、図9A~9H、図10A~10F、図11A~11H、及び図12A~12Jに関連して上述したような)1つ以上のハンドジェスチャナビゲーションモードを制御するための1つ以上の例示的な設定を示す。図13Aは、アクセシビリティ設定制御1312a、1312b、及び1312cを含む1つ以上の設定を表示するコンピュータシステム600を示す。いくつかの実施形態では、アクセシビリティ設定制御1312a上の入力を検出したことに応じて、コンピュータシステム600は、(例えば、図13Bに示すように)アクセシビリティ設定1322a~1322fのうちの1つ以上を表示する。
図13Bに示すように、アクセシビリティ設定1312a~1312fは、ハンドジェスチャナビゲーション制御1322hを含む。いくつかの実施形態では、ハンドジェスチャナビゲーション制御1322hがオフ(例えば、非アクティブ)であるとき、コンピュータシステム600は、ハンドジェスチャの検出に応じて動作を実行しない。いくつかの実施形態では、ハンドジェスチャナビゲーション制御1322hがオン(例えば、アクティブ)であるとき、コンピュータシステム600は、ハンドジェスチャの検出に応じて動作を実行する。いくつかの実施形態では、ハンドジェスチャナビゲーション制御1322hに対するジェスチャを検出したことに応じて、コンピュータシステム600は、図13Cのユーザインタフェースを表示する。
図13Cに示すように、コンピュータシステム600は、ハンドジェスチャナビゲーション制御1314a~1314hを表示する。ハンドジェスチャナビゲーション制御は、メイン設定制御1314a、ハンドジェスチャ制御1314b、移動カーソル制御1314c、移動スタイル制御1314d、及び1つ以上の外観設定制御1314e~1314g、ハンドジェスチャ確認制御1314hを含む。メイン設定制御1314aに対する入力を検出したことに応じて、コンピュータシステム600は、(例えば、ハンドジェスチャナビゲーション制御1322hに関連して上述したように)ハンドジェスチャナビゲーションモードをオン/オフする。ハンドジェスチャ制御1314bに対する入力を検出したことに応じて、コンピュータシステム600は、ハンドジェスチャ制御1314bをオン/オフに切り替える。ハンドジェスチャ制御1314bがオンであるとき、コンピュータシステム600は、ハンドジェスチャの検出に応じて1つ以上の動作を実行するように構成される。ハンドジェスチャ制御1314bがオフであるとき、コンピュータシステム600は、ハンドジェスチャの検出に応じて1つ以上の動作を実行するように構成されない。移動カーソル制御1314cに対する入力の検出に応じて、コンピュータシステム600は、移動カーソル制御をオン/オフに切り替える。移動カーソル制御1314cがオンであるとき、コンピュータシステム600は、(例えば、図7I~7U及び図8A~8Jに関連して上述したように)移動カーソルモードで動作するように構成することができる。移動カーソル制御1314cがオフであるとき、コンピュータシステム600は、(例えば、シェイクジェスチャに応じて、及び/又は図7Nのメニュー732の移動カーソル制御732b上の入力の検出に応じて)移動カーソルモードで動作するように構成することができない。移動スタイル制御1314dに対する入力を検出したことに応じて、コンピュータシステム600は、異なる移動オプション間で移動スタイル制御1314dを切り替える。異なる移動オプションは、(例えば、表示されたユーザインタフェース上のフォーカスインジケータの)自動移動及び手動移動のうちの1つ以上を含む。1つ以上の外観設定制御1314e~1314gに対する入力を検出したことに応じて、コンピュータシステム600は、表示される1つ以上のユーザインタフェースオブジェクトの色及び/又は制御など、(例えば、図7Nに関連して説明したような)メニュー732、(例えば、図7A~7AAに関連して説明したような)カーソル742、及び(例えば、図7A~7AAに関連して説明したような)インジケーション744の1つ以上の外観を変更する。ハンドジェスチャ確認制御1314hの検出に対する入力に応じて、コンピュータシステム600は、ハンドジェスチャ確認制御1314hをオン/オフに切り替える。ハンドジェスチャ確認制御1314hがオンであるとき、コンピュータシステム600は、1つ以上のハンドジェスチャの検出に応じて、1つ以上の動作(例えば、支払取引)を確認するように構成される。ハンドジェスチャ確認制御1314hがオフであるとき、コンピュータシステム600は、1つ以上のハンドジェスチャの検出に応じて1つ以上の動作を確認するように構成されない。
図13Dに示すように、コンピュータシステム600は、特定のハンドジェスチャの検出に応じてコンピュータシステム600が実行する1つ以上の動作を変更するための1つ以上の設定制御(例えば、設定制御1316a~1313e)を表示する。いくつかの実施形態では、学習制御1316eに対する1つ以上のジェスチャの検出に応じて、コンピュータシステム600は、図13Eのユーザインタフェースを表示する。
図13Eに示すように、コンピュータシステム600は、ユーザインタフェース1318を表示する。ユーザインタフェース1318は、ユーザが1つ以上のジェスチャをどのように行うことができるかを示す1つ以上の命令(例えば、グラフィカル表現を伴う)を含むことができる。いくつかの実施形態では、図13Cにおいて、コンピュータシステム600は、移動カーソル制御1314cに対するジェスチャを検出したことに応じて、図13Fのユーザインタフェースを表示する。いくつかの実施形態では、ユーザインタフェース1318を表示している間に、コンピュータシステム600は、学習モードセッション中にユーザがジェスチャを正しく及び/又は誤って実行したかどうかに関するフィードバックを提供する。
図13Fに示すように、コンピュータシステム1300は、感度(例えば、1322b)(例えば、コンピュータシステム600の動き(例えば、傾き)の検出に応じて移動カーソルがどのように及び/又はどれだけ移動するか)、アクティブ時間(例えば、1322c)(例えば、動作を実行するために移動カーソルがユーザインタフェースオブジェクト上に位置しなければならない所定の時間量及び/又はインジケーション(例えば、図7Nのインジケーション744)が表す時間量)、移動許容範囲(例えば、1322d)(例えば、移動カーソルがユーザインタフェースオブジェクトに対応する位置から移動した後に、インジケーション744がリセットされる及び/又はアニメーションの表示が停止される前に、動作が実行されなければならない時間量)、及び滞留制御(例えば、1322e)(例えば、動作を実行するために及び/又はコンピュータシステムが1つ以上のシェイク入力を介して移動カーソルモードで動作を開始できるかどうかのために移動ユーザがユーザインタフェースオブジェクト上に位置しなければならない所定の時間量)などの移動カーソルモードの1つ以上の態様を制御するための1つ以上の制御を表示する。図13Gにおいて、コンピュータシステム600は、移動カーソルの色(例えば、1324a~1324c)を変更するための1つ以上の設定を表示する。
図14は、(例えば、図7Nに関連して上述したように)メニュー732上に表示することができる複数のメニュー制御を示す。メニュー732は、図14に関連して説明した制御の階層などの制御の階層を含むことができる。いくつかの実施形態では、相互作用制御1410に対する入力の検出に応じて、コンピュータシステム600は、(例えば、832aに関連して上述したような)タップ制御ジェスチャ1410a、(例えば、移動カーソル制御732bに関連して上述したような)移動カーソル制御1410b、(例えば、デジタルハードウェア動作732aに関連して上述したような)デジタルハードウェア動作制御1410のうちの1つ以上を表示する。いくつかの実施形態では、システム制御1414に対する入力の検出に応じて、コンピュータシステム600は、アイコングリッド1414a(例えば、アクティブ化されると、複数のアプリケーションアイコンを含むグリッドを表示する)、制御センター1414b(例えば、アクティブ化されると、Wi-Fi設定を切り替えるためのWi-Fi制御、Bluetooth設定を切り替えるためのBluetooth制御、音出力を切り替えるためのミュート制御などの1つ以上のデバイス制御を表示する)、設定1414c(例えば、アクティブ化されると、図13A~図13Gに関連して上述したように構成されたコンピュータシステムの1つ以上の設定を表示する)、及びドック制御1414d(例えば、アクティブ化されると、1つ以上のアプリケーション(例えば、開いているアプリケーション及び/又はバックグラウンドで実行されているアプリケーション)にナビゲートするための1つ以上の制御を表示する)のうちの1つ以上を表示する。いくつかの実施形態では、追加オプション制御1416(例えば、732d)に対する入力を検出したことに応じて、コンピュータシステム600は、ウォレット制御1416a(例えば、アクティブ化されると、コンピュータシステム600に、支払取引を開始するための1つ以上のユーザインタフェースオブジェクトを表示させる)、サイドボタン1416b(例えば、アクティブ化されると、コンピュータシステム600に、コンピュータシステム600をオフにするなど、入力機構602bが押下されることと一致する1つ以上の動作を実行させる)、及びジェスチャモード1416c(例えば、アクティブ化されると、コンピュータシステム60にジェスチャモードで動作を開始させる)を表示する。いくつかの実施形態では、自動スクロール制御1412に対する入力を検出したことに応じて、コンピュータシステム600は、(例えば、図11A~11H及び図12A~12Jに関連して上述したように)自動スクロールモードで動作し始める。いくつかの実施形態では、終了制御1418に対する入力を検出したことに応じて、コンピュータシステム600は、図7Nに関連して上述したように)メニュー732の表示を停止する。いくつかの実施形態では、メニュー732は、図14に示されていない1つ以上の制御を含む。いくつかの実施形態では、メニュー732の制御は、図14に記載されるものとは異なる階層にある。
図15は、いくつかの実施形態に係る、コンピュータシステムを使用する方法1500を示すフロー図である。方法1500は、表示生成構成要素(例えば、ディスプレイコントローラ、タッチ感知ディスプレイシステム)及び光学センサ(例えば、聴力速度センサ)と通信するコンピュータシステム(例えば、100、300、500)(例えば、ウェアラブルデバイス(例えば、スマートウォッチ))において実行される。いくつかの実施形態では、コンピュータシステムは、1つ以上のセンサ(例えば、1つ以上のバイオメトリックセンサ(例えば、光学センサ(例えば、心拍数センサ)、カメラ)、ジャイロスコープ、加速度計))と通信する。いくつかの実施形態では、コンピュータシステムは、1つ以上の入力デバイス(例えば、タッチ感知面、マイクロフォン)と通信する。いくつかの実施形態では、コンピュータシステムは、1つ以上の出力デバイス(例えば、1つ以上のスピーカ、1つ以上のマイクロフォン)と通信する。方法1500のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
後述するように、方法1500は、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための直感的な方法を提供する。本方法は、ハンドジェスチャを使用してユーザインタフェースをナビゲートする際のユーザの認識的負担を軽減し、それにより、より効率的なヒューマン-マシンインタフェースを作り出す。バッテリ動作式コンピューティングデバイスの場合、ユーザがより高速且つ効率的にユーザインタフェースをナビゲートすることが可能になることにより、電力が節約され、バッテリ充電の間隔が長くなる。
コンピュータシステムは、表示生成構成要素を介して、第1のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)と、第2のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)と、第3のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)と、(例えば、第2のユーザインタフェースオブジェクト及び第3のユーザインタフェースオブジェクトが選択されたことを示すことなく)、第1のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)が選択されているというインジケーション(例えば、視覚インジケーション(例えば(例えば、その境界を)強調表示する、テキスト表示する、拡大する)(例えば、712a~712b、910a~910h、又は1010a~1010dの周囲にあるものとして説明されるフォーカスインジケータ)とを含むユーザインタフェースを表示する(1502)。いくつかの実施形態では、第1のユーザインタフェースオブジェクト、第2のユーザインタフェースオブジェクト、及び第3のユーザインタフェースオブジェクトは、互いに異なる。いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、第2のユーザインタフェースオブジェクトと第3のユーザインタフェースオブジェクトとの間に表示される。いくつかの実施形態では、第1のユーザインタフェースオブジェクト、第2のユーザインタフェースオブジェクト、及び第3のユーザインタフェースオブジェクトは、異なるユーザインタフェースオブジェクトである。
いくつかの実施形態では、第1のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)(例えば、コンピュータシステムが第1の動作モード(例えば、第1のアクセシビリティモード)にある間))、第2のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)、第3のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)、及び第1のユーザインタフェースオブジェクトが選択されたことのインジケーション(例えば、712a~712b、910a~910h、又は1010a~1010d付近にあるものと説明されるフォーカスインジケータ)を含むユーザインタフェースを表示している間に、コンピュータシステムは、少なくとも光学センサ(例えば、及び/又はジャイロスコープ、加速度計などの1つ以上の他のセンサ)を介して(例えば、使用して)、ハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)(例えば、第1のハンドジェスチャ)、(例えば、デバイスと接触しない(例えば、ユーザインタフェース上のオブジェクト及び/又はデバイスと通信する任意のデバイスに向けられない))、(例えば、デバイスの1つ以上のカメラによって検出されないハンドジェスチャ)(例えば、ユーザの手首が単一の位置に位置している及び/又は移動していない間に発生するハンドジェスチャ、コンピュータシステムが手首(例えば、ユーザの手首)に装着されている間に検出されるハンドジェスチャを検出する(1504)。
いくつかの実施形態では、少なくとも前記光学センサを介して、ハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)(及び第1のユーザインタフェースオブジェクト、第2のユーザインタフェースオブジェクト、第3のユーザインタフェースオブジェクトを含むユーザインタフェースを表示している間)(例えば、コンピュータシステムが第1の動作モードで動作している間)及びハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)が第1のタイプのジェスチャ(例えば、610、620、630、640、650)であるという判定に従って(例えば、ハンドジェスチャのタイプ)(例えば、フィンガータップ/ピンチジェスチャ(例えば、2本以上の指が互いに触れるジェスチャ)(及びいくつかの実施形態では、第1のタイプのジェスチャは、非フィンガータップ/ピンチジェスチャ(例えば、クレンチジェスチャ(例えば、拳を握るジェスチャ)、複数のクレンチジェスチャ(例えば、複数のクレンチジェスチャを含むジェスチャ)、指を広げるジェスチャ(例えば、1本以上の指が手の一部に触れないジェスチャ)、複数の指を広げるジェスチャ(例えば、複数の広げるジェスチャを含むジェスチャ)、及び/又はそれらの任意の組み合わせ)に応じて(1506)、コンピュータシステムは、表示生成構成要素を介して、第2のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)が選択されているというインジケーション(例えば、712a~712b、910a~910h、又は1010a~1010dの周囲にあるものとして説明されるフォーカスインジケータ)(例えば、視覚インジケーション(例えば、(例えば、その境界を)強調表示する、テキスト表示する、拡大する)(例えば、選択された新しいユーザインタフェースオブジェクト)を表示する(1508)(例えば、第1のユーザインタフェースオブジェクトが選択されたことを示すインジケーションを停止する及び/又は第3のユーザインタフェースオブジェクトが選択されたというインジケーションを表示することなく)(例えば、第1のユーザインタフェースオブジェクト及び第3のユーザインタフェースオブジェクトが選択されたことを示すことなく)。いくつかの実施形態では、第2のユーザインタフェースオブジェクトが以前に表示されなかったというインジケーションは、第1のユーザインタフェースオブジェクトが表示されたという第1のインジケーションの前に行われる。いくつかの実施形態では、ハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクト(例えば、第1のユーザインタフェースオブジェクトが選択されているというインジケーション)から(例えば、第1のユーザインタフェースオブジェクトの周囲、隣(例えば、上に、下に、隣に)表示されていることから)、第2のユーザインタフェースオブジェクト(例えば、第2のユーザインタフェースオブジェクトが選択されているというインジケーション)に(例えば、第2のユーザインタフェースオブジェクトの周囲、隣(例えば、上に、下に、隣に)表示されていることに)インジケーションを移動させる。
いくつかの実施形態では、少なくとも前記光学センサを介して、ハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)(及び第1のユーザインタフェースオブジェクト、第2のユーザインタフェースオブジェクト、第3のユーザインタフェースオブジェクトを含むユーザインタフェースを表示している間)(例えば、コンピュータシステムが第1の動作モードで動作している間)及びハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)が第1のタイプのジェスチャとは異なる第2のタイプのジェスチャ(例えば、610、620、630、640、650)であるという判定に従って(例えば、ハンドジェスチャのタイプ)(例えば、マルチフィンガータップ/ピンチジェスチャ(例えば、2本以上の指が互いに複数回触れるジェスチャ)(及びいくつかの実施形態では、第1のタイプのジェスチャは、非フィンガータップ/ピンチジェスチャ(例えば、クレンチジェスチャ(例えば、拳を握るジェスチャ)、複数のクレンチジェスチャ(例えば、複数のクレンチジェスチャを含むジェスチャ)、指を広げるジェスチャ(例えば、1本以上の指が手の一部に触れないジェスチャ)、複数の指を広げるジェスチャ(例えば、複数の広げるジェスチャを含むジェスチャ)、及び/又はそれらの任意の組み合わせ)に応じて(1506)、コンピュータシステムは、表示生成構成要素を介して、第3のユーザインタフェースオブジェクト(例えば、712a~712b、910a~910h、又は1010a~1010d)が選択されているというインジケーション(例えば、712a~712b、910a~910h、又は1010a~1010dの周囲にあるものとして説明されるフォーカスインジケータ)(例えば、視覚インジケーション(例えば、(例えば、その境界を)強調表示する、テキスト表示する、拡大する)(例えば、選択された以前のユーザインタフェースオブジェクト)を表示する(1510)(例えば、第1のユーザインタフェースオブジェクト及び第2のユーザインタフェースオブジェクトが選択されたことを示すことなく)(例えば、第1のユーザインタフェースオブジェクトが選択されたというインジケーションの表示を停止する及び/又は第2のユーザインタフェースオブジェクトが選択されたというインジケーションを表示することなく)。いくつかの実施形態では、第3のユーザインタフェースオブジェクトが以前に表示されたというインジケーションは、第1のユーザインタフェースオブジェクトが表示されたという第1のインジケーションの前に行われる。いくつかの実施形態では、ハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクト(例えば、第1のユーザインタフェースオブジェクトが選択されているというインジケーション)から(例えば、第1のユーザインタフェースオブジェクトの周囲、隣(例えば、上に、下に、隣に)表示されていることから)、第3のユーザインタフェースオブジェクト(例えば、第2のユーザインタフェースオブジェクトが選択されているというインジケーション)に(例えば、第3のユーザインタフェースオブジェクトの周囲、隣(例えば、上に、下に、隣に)表示されていることに)、インジケーションを移動させる。いくつかの実施形態では、第1のユーザインタフェースオブジェクトが選択されているというインジケーション、第2のユーザインタフェースオブジェクトが選択されているというインジケーション、及び/又は第3のユーザインタフェースオブジェクトが選択されているというインジケーションのうちの少なくとも2つは、異なるサイズである。検出されたハンドジェスチャのタイプに基づいて、第2のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するか、第3のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態ではハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)は、光学センサを介して検出されたデータを使用して決定される心拍数データに基づいて検出される。いくつかの実施形態では第2のタイプのジェスチャ(例えば、630又は650)は、第1のタイプのジェスチャ(例えば、620又は640)の複数のインスタンス例えば、複数の指タップ/ピンチ、複数の指を広げるジェスチャ、及び/又は複数のクレンチジェスチャ)であるタイプのジェスチャである。いくつかの実施形態では、第2のタイプのジェスチャは、第1のタイプのジェスチャの少なくとも1つのインスタンスを含む。第2のタイプのジェスチャが、第1のタイプのジェスチャの複数のインスタンスであるタイプのジェスチャである場合に、検出されたハンドジェスチャのタイプに基づいて、第2のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するか、又は第3のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザが、コンピュータシステムに触れることなく、類似のハンドジェスチャ(例えば、一方のハンドジェスチャが他方のハンドジェスチャを含む場合)を使用して、類似のアクションを異なるように実行する(例えば、右へのオブジェクトの選択対左へのオブジェクトの選択)ようにユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では少なくとも光学センサを介してハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出したことに応じて、且つハンドジェスチャが第1のタイプのジェスチャ及び第2のタイプのジェスチャとは異なる第3のタイプのジェスチャ(例えば、620、630、640、又は650)(例えば、ハンドジェスチャのタイプ)であるという判定に従って、コンピュータシステムは、(例えば、表示生成構成要素を介して)第1のユーザインタフェースオブジェクトの選択に対応する動作(例えば、アクション)を実行する(例えば、再生/一時停止ボタンの選択、メニュー上での対話の選択、キャンセルボタンの選択、着信電話呼に対する応答/拒否ボタンの選択)(例えば、1つ以上の選択可能オプションを含むメニューを表示することなく)。いくつかの実施形態では、少なくとも光学センサを介してハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出したことに応じて、且つハンドジェスチャが第1のタイプのジェスチャ、第2のタイプのジェスチャ、及び第3のタイプのジェスチャとは異なる第4のタイプのジェスチャ(例えば、620、630、640、又は650)(例えば、ハンドジェスチャのタイプ)であるという判定に従って、コンピュータシステムは、表示生成構成要素を介して、1つ以上の選択可能オプション(例えば、方法1600に関連して以下に説明されるようなもの)を含むメニューを(例えば、第1のユーザインタフェースオブジェクトの選択に対応するオプションを実行せずに)表示する。検出されたハンドジェスチャのタイプに基づいて、第1のユーザインタフェースオブジェクトの選択に対応する動作を実行するか、又は1つ以上の選択可能オプションを含むメニューを表示するかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、ハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出する前に、コンピュータシステム(例えば、600)は、第1の動作モード例えば、コンピュータシステムが、第1のタイプ、第2のタイプ、第3のタイプ、及び/又は第4のタイプのジェスチャのうちの1つ以上を検出したことに応じて、上述した動作(すなわち、動作)を実行する動作モード)(例えば、図7A~図7Iに関連して上述したように)にある。いくつかの実施形態では、第1のユーザインタフェースオブジェクト(例えば、1412又は736a)の選択に対応する動作(例えば、図11A~図11H及び図12A~図12Jに関連して上述したような)を実行することの一部として、コンピュータシステムは、コンピュータシステムを(例えば、600)第1の動作モードから第2の動作モード(例えば、図7I~図7Uに関連して上述したような)に遷移させる(例えば、カーソルがディスプレイを横切って自動的に移動するモード、ユーザインタフェースがある方向(例えば、上、下、右、左、斜め)に自動的にスクロールされるモード、第1のタイプ、第2のタイプ、第3のタイプ、及び/又は第4のタイプのジェスチャのうちの1つ以上の検出が、コンピュータシステムに、コンピュータシステムが第1の動作モードで動作しているときに実行する動作とは異なる動作を実行させるモードなど)。
いくつかの実施形態では、コンピュータシステム(例えば、600)が第2の動作モードにある間に、コンピュータシステムは、少なくとも光学センサを介して、第2のハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出する。いくつかの実施形態では、少なくとも光学センサを介して第2のハンドジェスチャを検出したことに応じて(例えば、コンピュータシステムが第2の動作モードにあり、第1の動作モードにない間)、第2のハンドジェスチャがジェスチャの第1のタイプ(例えば、620、630、640、又は650)であると決定したことに従って、コンピュータシステムは、第1の自動スクロール動作のアクティブ状態(例えば、再開状態)と非アクティブ状態(例えば、一時停止状態)とを切り替える(例えば、図12C~図12Eに関連して上述したように)(例えば、自動スクロール動作の方向を反転させることなく)(例えば、1つ以上のユーザインタフェースオブジェクトが自動的に(例えば、ユーザ入力なしに)順番に選択される動作)(例えば、自動スクロール動作のアクティブ状態と非アクティブ状態とを切り替えることは、第2のユーザインタフェースオブジェクトが選択されているというインジケーションを表示することとは異なる動作である)。いくつかの実施形態では、ハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、且つスクロール動作が非アクティブ状態(例えば、一時停止状態、スクロール一時停止状態、スクロールオフ状態)であるという判定に従って、コンピュータシステムは、自動スクロール動作を非アクティブ状態からアクティブ状態に遷移させる(例えば、スクロール動作を再開する)。いくつかの実施形態では、ハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、且つスクロール動作がアクティブ状態(例えば、スクロールオン状態、再開状態)にあるという判定に従って、コンピュータシステムは、自動スクロール動作をアクティブ状態から非アクティブ状態に遷移させる(例えば、スクロール動作を一時停止させる)。いくつかの実施形態では、自動スクロール動作がアクティブであるという判定に従って、コンピュータシステムは、自動スクロール動作がアクティブであることを示す通知を表示する。いくつかの実施形態では、自動スクロール動作が非アクティブであるという判定に従って、コンピュータシステムは、自動スクロール動作が非アクティブであることを示す通知を表示し、及び/又は自動スクロール動作がアクティブであることを示す通知の表示を停止する。いくつかの実施形態では、少なくとも光学センサを介して第2のハンドジェスチャを検出したことに応じて(例えば、コンピュータシステムが第2の動作モードにあり、第1の動作モードにない間)、第2のハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1の自動スクロール動作の第1の方向を反転させる(例えば、自動スクロール動作のアクティブ状態と非アクティブ状態とを切り替えることなく)(例えば、自動スクロール動作の第1の方向を反転させることは、第3のユーザインタフェースオブジェクトが選択されているというインジケーションを表示することとは異なる動作ある)。いくつかの実施形態では、自動スクロール動作の方向を反転させることの一部として、コンピュータシステムは、ユーザインタフェースが以前に選択された順序とは逆の順序でユーザインタフェースオブジェクトを選択し、及び/又はある方向にスクロールしているインタフェースを反転させる。検出されたハンドジェスチャのタイプに基づいて、第1の自動スクロール動作のアクティブ状態と非アクティブ状態とを切り替えるか、又は自動スクロール動作の第1の方向を反転させるかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、少なくとも光学センサを介して、第2のハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出したことに応じて、第2のハンドジェスチャが第3のタイプのジェスチャ(例えば、610、620、630、640、又は650)であるという判定に従って、コンピュータシステムは、第2の動作例えば、自動スクロール動作の速度を変更すること)を実行する。第2のハンドジェスチャが第4のタイプのジェスチャ(例えば、610、620、630、640、又は650)であるという判定に従って、コンピュータシステムは、第2の動作とは異なる第3の動作を実行する(例えば、第2のハンドジェスチャが検出されたときにスクロール動作によって強調表示されたユーザインタフェースオブジェクトの現在位置にあるユーザインタフェースを選択し、自動スクロールモードを終了する)。検出されたハンドジェスチャのタイプに基づいて第1の動作を実行するか第2の動作を実行するかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、コンピュータシステム(例えば、600)が第2の動作モードにある間に、コンピュータシステムは、(例えば、図12G~12Hに関連して上述したように)複数のインタフェースオブジェクトのシーケンスを第2の方向にスクロールする第2の自動スクロール動作を実行する。いくつかの実施形態では、第2の自動スクロール動作を実行している間に、コンピュータシステムは、複数のユーザインタフェースオブジェクトのシーケンスの終了を検出する(例えば、スクロール位置がシーケンス内の最後のユーザインタフェースオブジェクトにあるか又はその近くにあることを検出する、及び/又はユーザインタフェースの境界を検出する)(図12G~図12Hに関連して上述したように)。いくつかの実施形態では、複数のユーザインタフェースオブジェクトのシーケンスの終了を検出したことに応じて、コンピュータシステムは、第2の方向とは異なる(例えば、反対の)第3の方向に複数のインタフェースオブジェクトのシーケンスをスクロールする第3の自動スクロール動作を実行する(例えば、図12G~図12Hに関連して上述したように)。複数のユーザインタフェースオブジェクトのシーケンスの終了を検出したことに応じて、第2の方向とは異なる第3の方向に複数のインタフェースオブジェクトのシーケンスをスクロールする第3の自動スクロール動作を自動的に実行することにより、コンピュータシステムは、自動ナビゲーションがユーザインタフェース上のユーザインタフェースオブジェクトを循環したときに、ユーザが追加の入力を提供して自動ナビゲーションを再開/リセットすることなく、ユーザインタフェースを自動的にナビゲートする方法をユーザに提供することができる。
いくつかの実施形態では、少なくとも光学センサを介して、第2のハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出したことに応じて、及び第2のハンドジェスチャが第4のタイプのジェスチャ(例えば、610、620、630、640、又は650)であるという判定に従って、コンピュータシステムは、コンピュータシステムを第2の動作モードから第3の動作モードに遷移させる(及び/又は第2の動作モードを終了/出る)。いくつかの実施形態では、第3の動作モードは第1の動作モードである。第2のハンドジェスチャが第4のタイプのジェスチャであるという判定に従ってコンピュータシステムを第2の動作モードから第3の動作モードに遷移させることは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、第2のハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)が第1のタイプのジェスチャ(例えば、610、620、630、640、又は650)であるという判定に従って、コンピュータシステムは、自動スクロール動作の状態(例えば、スクロールが一時停止している、スクロールを中止している)を示す通知(例えば、716)を表示する。第2のハンドジェスチャが第1のタイプのジェスチャであるという判定に従って自動スクロール動作の状態を示す通知を表示することは、検出されているハンドジェスチャに応じて動作が実行されたという視覚的フィードバックをユーザに提供し、これは、コンピュータシステムに不必要な動作及び/又は意図しない動作を実行させ得る複数のジェスチャをユーザが誤って実行することを防止することができる。
いくつかの実施形態では、第3のタイプのジェスチャ(例えば、610、620、630、640、又は650)は、第4のタイプのジェスチャ(例えば、610、620、630、640、又は650)の複数のインスタンス(例えば、複数の指タップ/ピンチ、複数の指を広げるジェスチャ、及び/又は複数のクレンチジェスチャ)であるタイプのジェスチャである。いくつかの実施形態では、第3のタイプのジェスチャは、第4のタイプのジェスチャの少なくとも1つのインスタンスを含む。いくつかの実施形態では、第4のタイプのジェスチャ(例えば、610、620、630、640、又は650)は、第1のタイプのジェスチャ(例えば、610、620、630、640、又は650)(及び/又は第2のタイプのジェスチャ)の複数のインスタンスを含まず、第3のタイプのジェスチャ(例えば、610、620、630、640、又は650)は、第2のタイプのジェスチャ(例えば、610、620、630、640、又は650)(及び/又は第1のタイプのジェスチャ)(例えば、図6に関連して上述したように)の複数のインスタンスを含まない。いくつかの実施形態では、第4のタイプのジェスチャは、第1のタイプのジェスチャ及び/又は第2のタイプのジェスチャを含まない。いくつかの実施形態では、第3のタイプのジェスチャは、第1のタイプのジェスチャ及び/又は第2のタイプのジェスチャを含まない。
いくつかの実施形態では、少なくとも光学センサを介して、第2のハンドジェスチャ(例えば、750e、750f、750i、750l、750m、750n、950a、950b、950c、950e、950f、950g、1050b、1050c、1050d、又は1050e)を検出したことに応じて、及び通知(例えば、電話呼、電子メール、テキストメッセージ、ボイスメールメッセージに対応する通知)が閾値期間内に受信されたという判定に従って、及び第2のハンドジェスチャが第4のタイプのジェスチャであるという判定に従って、コンピュータシステムは、通知に関連するアクション(例えば、電話呼に応答する、通知に対応するテキストメッセージ及び/又は電子メールに応答する/開く、ボイスメールメッセージを再生する)(例えば、図7Hに関連して上述したように)を実行する。通知が閾値期間内に受信されたという判定に従って、及び第2のハンドジェスチャが第4のタイプであるという判定に従って、通知に関連するアクションを実行することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートする(例えば、コンピュータシステムに通知に関連するアクションを実行させる)のを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、1つ以上の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)は、1つ以上のハンドジェスチャがコンピュータシステムに実行させることができる動作を変更するための第1の選択可能ユーザインタフェースオブジェクト(例えば、732a~732d、832a、又は1410~1418)を含む。いくつかの実施形態では、第1の選択可能ユーザインタフェースオブジェクトの選択は、コンピュータシステムに複数の設定を表示させる。いくつかの実施形態では、各設定は、(例えば、図8A~8Jに関連して上述したように)1つ以上のハンドジェスチャがコンピュータシステムによって検出されたときに、1つ以上のハンドジェスチャがコンピュータシステムに実行させることができる動作を制御する。1つ以上のハンドジェスチャがコンピュータシステムに実行させることができる動作を変更するための第1の選択可能ユーザインタフェースオブジェクト第1の選択可能ユーザインタフェースオブジェクトを含むメニューを表示することは、コンピュータシステムが、より複雑なハンドジェスチャを必要とせずに動作を実行するオプションをユーザに提供することを可能にし、これは、動作を実行するために使用されるハンドジェスチャの数を低減し、動作を実行させるハンドジェスチャをユーザがカスタマイズすることを可能にする。
いくつかの実施形態では、1つ以上の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)は、コンピュータシステムを第4の動作モードに遷移させるための第2の選択可能オプションと、コンピュータシステムを第4の動作モードとは異なる第5の動作モードに遷移させるための第3の選択可能オプションとを含む。いくつかの実施形態では、第2の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)の選択は、コンピュータシステムを第4の動作モード(例えば、自動スクロールモード、カーソルモード(例えば、方法1600に関連して本明細書で説明されるような)に遷移させる。いくつかの実施形態では、第3の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)の選択は、コンピュータシステムを第5の動作モード(例えば、自動スクロールモード、カーソルモード(例えば、方法1600に関連して本明細書で説明されるような)に遷移させる。コンピュータシステムを第4の動作モードに遷移させるための第2の選択可能オプションと、コンピュータシステムを第4の動作モードとは異なる第5の動作モードに遷移させるための第3の選択可能オプションとを含むメニューを表示することは、ユーザがコンピュータシステムを異なる動作モードに(例えば、より複雑なハンドジェスチャを提供することなく)遷移させることを可能にすることによって、ユーザにコンピュータシステムに対するより多くの制御を提供し、また、動作を実行するために使用されるハンドジェスチャの数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)は、1つ以上の追加の選択可能オプション(例えば、選択可能ユーザインタフェースオブジェクトの位置(例えば、第2の位置)で入力が検出されたときに実行される動作に対応する動作を実行するオプションに対応するオプション、コンピュータシステムをオン/オフすること、異なるメニュー及び/又はユーザインタフェースを表示することなどの動作を実行するためのオプション、コンピュータシステムと通信する1つ以上の入力デバイスを介した入力の検出に応じて実行される動作に対応するオプション)を表示するための第4の選択可能オプション(例えば、1416)を含む。いくつかの実施形態では、第4の選択可能オプションの選択は、コンピュータシステム(例えば、600)に、第4の選択可能オプションの選択の前に以前に表示されなかった1つ以上の追加の選択可能オプション(例えば、選択されると、各々がコンピュータシステムに1つ以上の動作(例えば、異なる動作)を実行させる)を表示させる。いくつかの実施形態では、第4の選択可能オプションの検出に応じて、コンピュータシステムは、第4の選択可能オプションの選択が検出される前に表示されていた1つ以上の選択可能オプションの表示を停止する。1つ以上の追加オプションを表示するための第4の選択可能オプションを含むメニューを表示することは、以前に表示されなかった追加の選択可能オプションを表示することをユーザが選択できるようにすることによって、コンピュータシステムに対するより多くの制御をユーザに提供し、追加の動作を実行するために使用されるハンドジェスチャの数を低減し、メニューが最初に表示されるときに表示される選択可能なユーザインタフェースオプションの数を低減し、これはユーザインタフェースをきれいにする。
いくつかの実施形態では、特定のユーザインタフェースオブジェクト(例えば、選択されたユーザインタフェースオブジェクト、フォーカスインジケータによって囲まれたユーザインタフェースオブジェクト)がユーザインタフェース上の第1の位置にあるという判定に従って、第1の位置にあり(例えば、図11Bに関連して上述したように)、特定のユーザインタフェースオブジェクトがユーザインタフェース上の第1の位置になく、(例えば、図11Bに関連して上述したように)第1の位置とは異なる第2の位置にあるという判定に従って、メニューが表示される。特定のユーザインタフェースオブジェクトが表示される場所に基づいて、ある位置にメニューを表示するように自動的に選択することは、コンピュータシステムが、ユーザにとって関心があり得るユーザインタフェースオブジェクト(例えば、選択されたユーザインタフェースオブジェクト)の位置にメニューを表示することを回避することを可能にし、また、ユーザインタフェースオブジェクトの表示に影響を及ぼすことからメニューを移動させるためにユーザが行う必要があるであろう入力の数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプション(例えば、732a~732d、832a、又は1410~1418)(例えば、1つ以上の選択可能オプションを含むメニュー、1つ以上の選択可能オプションを含む第2のメニュー)を含む第3のメニュー(例えば、732)を表示している間に、コンピュータシステムは、少なくとも光学センサを介して、第3のハンドジェスチャを検出する(例えば、図10A~図10Eに関連して上述したように)。いくつかの実施形態では、少なくとも光学センサを介して第3のハンドジェスチャ(例えば、図10A~図10Eに関連して上述したように)を検出したことに応じて、及び第3のハンドジェスチャが第4のタイプのジェスチャであるという判定に従って、コンピュータシステムは、1つ以上の選択可能オプションを含む第3のメニューの表示を停止する。第3のハンドジェスチャが第4のタイプのジェスチャであるという判定に従って、1つ以上の選択可能オプションを含むメニューの表示を停止することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートするのを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、第1のユーザインタフェースオブジェクト(例えば、732a~732d、832a、又は1410~1418)を含むユーザインタフェースを表示した後に、コンピュータシステムは、少なくとも光学センサを介して、第4のハンドジェスチャを検出する。いくつかの実施形態では、少なくとも光学センサを介して第4のハンドジェスチャを検出したことに応じて、及び第4のハンドジェスチャが第1のタイプのジェスチャ及び第2のタイプのジェスチャ(及び/又は第1のタイプのジェスチャ)とは異なる第5のタイプのジェスチャである(例えば、いくつかの実施形態では、第5のタイプのジェスチャは第4のタイプのジェスチャと同じジェスチャである)という判定に従って、コンピュータシステムは、コンピュータシステムを非アクティブ状態(例えば、スリープ状態、ハイバネート状態、低電力モード状態、表示生成構成要素がアクティブ状態の表示生成構成要素よりも輝度が低い状態)からアクティブ(例えば、ウェイク状態、全電力状態)状態に遷移させる(又はコンピュータシステムをアクティブ状態から非アクティブ状態に遷移させる)(例えば、図14(例えば、1416b)に関連して上述したように)。第4のハンドジェスチャが第5のタイプのジェスチャであるという判定に従って、コンピュータシステムを非アクティブ状態からアクティブ状態に遷移させることは、ユーザに、コンピュータシステムに触れることなく、システムのより多くの制御を提供し、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、表示生成構成要素を介して、第2のユーザインタフェースオブジェクトが選択されているというインジケーションを表示している間に、コンピュータシステムは、少なくとも光学センサを介して、第5のハンドジェスチャを検出する。いくつかの実施形態では、少なくとも光学センサを介して第4のハンドジェスチャを検出したことに応じて、第5のハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、コンピュータシステムは、表示生成構成要素を介して、第4の第1のユーザインタフェースオブジェクト(例えば、選択された次のユーザインタフェースオブジェクト)が選択されているというインジケーションを表示し、第5のハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、コンピュータシステムは、表示生成構成要素を介して、第1のユーザインタフェースオブジェクト(例えば、選択された前のユーザインタフェースオブジェクト)が選択されているというインジケーションを表示する。いくつかの実施形態では、表示生成構成要素を介して、第3のユーザインタフェースオブジェクトが選択されているというインジケーションを表示している間に、コンピュータシステムは、少なくとも光学センサを介して、特定のハンドジェスチャを検出する。いくつかの実施形態では、特定のハンドジェスチャを検出したことに応じて、及び特定のハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1、第2、及び第3のユーザインタフェースオブジェクトとは異なる第4のユーザインタフェースオブジェクトが選択されているというインジケーションを表示する。いくつかの実施形態では、特定のハンドジェスチャを検出したことに応じて、及び特定のハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示する。第2のユーザインタフェースオブジェクトが選択されているというインジケーションがある間に、検出されたハンドジェスチャのタイプに基づいて、第4の第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するか、又は第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示するかを選択することは、ユーザにシステムのより多くの制御を提供し、ユーザがコンピュータシステムに触れることなくユーザインタフェースをナビゲートする(例えば、同じ方法でユーザインタフェースを一貫してナビゲートする)のを助け、これは、一部のユーザにとってユーザインタフェースのより効率的な制御につながり得る。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを含むユーザインタフェースを表示している間に、コンピュータシステムは、コンピュータシステムを第1の動作モードから第4の動作モード(例えば、図13A~図13G及び図14に関連して上述したような)(例えば、ハンドジェスチャの検出に応じてコンピュータシステムが動作を実行しない動作モード及び/又はコンピュータシステムが1つ以上のハンドジェスチャを検出しないモード)に遷移させる要求を検出する。いくつかの実施形態では、コンピュータシステムを第1の動作モードから第4の動作モードに遷移させる要求を検出したことに応じて、コンピュータシステムは、コンピュータシステムを第1の動作モードから第4の動作モードに遷移させる(例えば、図7A~図7Cに関連して上述したように)。いくつかの実施形態では、コンピュータシステムが第4の動作モードにあり、第1のユーザインタフェースオブジェクトと、第2のユーザインタフェースオブジェクトと、第3のユーザインタフェースオブジェクトと、第1のユーザインタフェースオブジェクトが選択されているというインジケーションとを含むユーザインタフェースを表示している間に、コンピュータシステムは、少なくとも光学センサを介して、第6のハンドジェスチャ(例えば、図7A~図7Cに関連して上述したように)を検出する。いくつかの実施形態では、少なくとも光学センサを介して、第6のハンドジェスチャを検出したことに応じて(例えば、コンピュータシステムが第4の動作モードにある間)、(例えば、図7A~図7Cに関連して上述したように)ハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示し続け(表示生成構成要素を介して、第2のユーザインタフェースオブジェクトが選択されているというインジケーション及び/又は第3のユーザインタフェースオブジェクトが選択されているというインジケーションを表示することなく、及び/又は動作を実行することなく)(例えば、図7A~図7Cに関連して上述したように)、ハンドジェスチャが第2のタイプのジェスチャであるという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示し続ける(表示生成構成要素を介して、第3のユーザインタフェースオブジェクトが選択されているというインジケーション及び/又は第2のユーザインタフェースオブジェクトが選択されているというインジケーションを表示することなく、及び/又は動作を実行することなく)(例えば、図7A~図7Cに関連して上述したように)。ハンドジェスチャが第1のタイプのジェスチャであるという判定に従って、及びハンドジェスチャが第1のタイプのジェスチャであるという判定に従って(例えば、コンピュータシステムが第4の動作モードにある間)、第1のユーザインタフェースオブジェクトが選択されているというインジケーションを表示し続けることは、ユーザに、コンピュータシステムのハンドジェスチャの検出及び/又はハンドジェスチャの検出に応じた動作の実行を制御するためのシステムの更なる制御を提供する。
方法1500(例えば、図15)に関して上述したプロセスの詳細はまた、本明細書に記載の方法に類似する方式でも適用可能であることに留意されたい。例えば、方法1500は、方法1600を参照して本明細書に記載する様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、方法1500は、コンピュータシステムが方法1600の技術を使用して動作する動作モードでの動作からコンピュータシステムが切り替えられるときに実行することができる。簡潔にするために、これらの詳細は、以下で繰り返さない。
図16は、いくつかの実施形態に係る、コンピュータシステムを使用してナビゲートする方法を示すフロー図である。方法1600は、表示生成構成要素(例えば、ディスプレイコントローラ、タッチ感知ディスプレイシステム)と通信するコンピュータシステム(例えば、100、300、500)(例えば、ウェアラブルデバイス(例えば、スマートウォッチ))において実行される。いくつかの実施形態では、コンピュータシステムは、1つ以上のセンサ(例えば、1つ以上のバイオメトリックセンサ(例えば、心拍数センサ、カメラ)、ジャイロスコープ、加速度計))と通信する。いくつかの実施形態では、コンピュータシステムは、1つ以上の入力デバイス(例えば、タッチ感知面、マイクロフォン)と通信する。いくつかの実施形態では、コンピュータシステムは、1つ以上の出力デバイス(例えば、1つ以上のスピーカ、1つ以上のマイクロフォン)と通信する。方法1500のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
後述するように、方法1600は、ハンドジェスチャを使用してユーザインタフェースをナビゲートするための直感的な方法を提供する。本方法は、ハンドジェスチャを使用してユーザインタフェースをナビゲートする際のユーザの認識的負担を軽減し、それにより、より効率的なヒューマン-マシンインタフェースを作り出す。バッテリ動作式コンピューティングデバイスの場合、ユーザがより高速且つ効率的にユーザインタフェースをナビゲートすることが可能になることにより、電力が節約され、バッテリ充電の間隔が長くなる。
コンピュータシステムは、表示生成構成要素を介して、ユーザインタフェース上の第1の位置(例えば、ユーザインタフェースオブジェクトの位置とは異なる位置)に表示される選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)及びカーソル(例えば、742)(例えば、ユーザインタフェースオブジェクト、非選択可能ユーザインタフェースオブジェクト)を含むユーザインタフェース(例えば、710、720、810、又は780)を表示する(1602)。
選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)及びカーソル(例えば、742)をユーザインタフェース(例えば、710、720、810、又は780)上の第1の位置に表示している間に、コンピュータシステムは、ユーザインタフェース上の第1の位置から第2の位置(例えば、第1の位置とは異なる位置)へと(例えば、ハンドジェスチャ(例えば、方法1500に関連して上述したような手首の傾斜及び/又は1つ以上の他のハンドジェスチャ)を介してカーソル(例えば、742)を移動させる要求を検出する(1604)。いくつかの実施形態では、カーソルを移動させる要求は、コンピュータシステムの動き、コンピュータシステムに関連付けられた1つ以上のデバイス(例えば、マウス)の動き、及び/又はコンピュータシステムの表示生成構成要素上で検出された1つ以上の入力/ジェスチャ(例えば、スワイプジェスチャ)に基づいて検出される。
カーソルを第1の位置から第2の位置に移動させる要求(例えば、図7Y又は7Zの750p、850c、850d、又は傾斜)を検出したことに応じて(1606)、コンピュータシステムは、カーソルを第2の位置に表示する(1608)(例えば、カーソルを第1の位置から第2の位置に移動させる)。いくつかの実施形態では、第2の位置にカーソルを表示することの一部として、コンピュータシステムは、カーソルを第1の位置から第2の位置に移動させる。いくつかの実施形態では、コンピュータシステムは、コンピュータシステムが移動された方向に従ってカーソルを移動させる。
カーソルを第1の位置から第2の位置に移動させる要求(例えば、図7Y又は7Zの750p、850c、850d、又は傾斜)を検出したことに応じて(1606)、コンピュータシステムは、第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応する(及び/又はディスプレイの領域(例えば、エッジ)に対応する)という判定に従って、動作(例えば、視覚インジケーション(例えば、オブジェクト)のアニメーション充填、色の変化、点滅、カウントダウン/アップ、サイズの増減、フェードイン/フェードアウト)を実行するためにカーソル(例えば、742)を第2の位置に配置される必要がある時間の長さの視覚インジケーション(例えば、744)を提供するアニメーションを表示し(1610)、視覚インジケーション(例えば、742)は、ある期間(例えば、閾値期間以下の期間)にわたって更新される(例えば、カーソル/視覚インジケーションが第2の位置に表示されている間)(例えば、選択可能ユーザインタフェースオブジェクトを選択することを含むアクションを実行することなく)。いくつかの実施形態では、アニメーションを表示している間(例えば、期間未満の間)、コンピュータシステムは、カーソルを移動させる要求を検出し、第2の要求を検出したことに応じて、コンピュータシステムはアニメーションの表示を停止する。いくつかの実施形態では、アニメーションを表示した後に、コンピュータシステムはカーソルを再表示する。いくつかの実施形態では、カーソルは視覚インジケーションであり、及び/又は視覚インジケーションを含む。
カーソルを第1の位置から第2の位置に移動させる要求(例えば、図7Y又は7Zにおける750p、850c、850d、又は傾斜)を検出したことに応じて(1606)、コンピュータシステムは、第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応していない(及び/又はディスプレイの領域(例えば、エッジ)に対応していない)という判定に従って、コンピュータシステムは、(例えば、表示(例えば、744))を提供するアニメーションを表示することを取り止める(1612)。(及び、カーソルを表示し続ける)(例えば、選択可能ユーザインタフェースオブジェクトを選択することを含むアクションを実行することなく)。いくつかの実施形態では、視覚インジケーションを提供するアニメーションを表示することの一部として、コンピュータシステムは、カーソルの表示を視覚インジケーションに置き換える。いくつかの実施形態では、アニメーションを表示している間に、コンピュータシステムは、カーソルを第2の位置から第3の位置に移動させる要求を検出し、カーソルを第3の位置から第2の位置に移動させる要求を検出したことに応じて、カーソルを第3の位置に表示する(例えば、を表示することなく、及び/又は視覚インジケーションをカーソルで置き換えることなく)。いくつかの実施形態では、第3の位置は、第2の位置及び/又は第1の位置とは異なる。
いくつかの実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求(例えば、図7Y又は7Zの750p、850c、850d、又は傾斜)を検出したことに応じて、及び第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応しており、カーソル(例えば、742)が第1の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒))(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されているという判定に従って、コンピュータシステムは、動作を実行する(例えば、図7I~7Uに関連して説明したように、図8A~8Jに関連して上述したように)。いくつかの実施形態では、動作の実行の一部として、コンピュータシステムは、選択可能ユーザインタフェースオブジェクトを選択する(例えば、図7I~図7Uに関連して説明したように、図8A~図8Jに関連して上述したように)(例えば、選択可能ユーザインタフェースオブジェクトを強調表示すること、選択可能ユーザインタフェースオブジェクトに対応するメニューを起動すること、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動すること)。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、選択可能ユーザインタフェースオブジェクトを選択することを含む動作を自動的に実行することは、コンピュータシステムが、所定の条件が満たされたときにユーザインタフェースオブジェクトを自動的に選択することを可能にする。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、選択可能ユーザインタフェースオブジェクトを選択することを含む動作を実行することは、カーソルが特定の期間にわたって特定の位置に(例えば、ユーザによって)位置付けられたときにユーザインタフェースオブジェクトを選択する能力をユーザに与えることによって、コンピュータシステムに対するより多くの制御をユーザに提供する。
一部の実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求を検出したことに応じて、及び第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応しており、カーソル(例えば、742)が第2の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されるという判定に従って、コンピュータシステムは、(例えば、図7I~図7Uに関連して説明したような)動作を実行する。いくつかの実施形態では、動作を実行することは、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動することを含む(例えば、図7I~7Uに関連して説明したように)。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動することを含む動作を自動的に実行することは、コンピュータシステムが、所定の条件が満たされたときに、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを自動的に起動することを可能にする。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動することを含む動作を実行することは、カーソルが特定の期間にわたって特定の位置に(例えば、ユーザによって)位置付けられたときに、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動する能力をユーザに与えることによって、コンピュータシステムに対するより多くの制御をユーザに提供する。
いくつかの実施形態では、カーソルを第1の位置から第2の位置に移動させる要求を検出したことに応じて、及び第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応していないという判定に従って、動作(例えば、図8Cに関連して上述したような)の実行を取り止める(例えば、表示生成構成要素を介して、第2の位置で1つ以上の動作を実行するための1つ以上のユーザインタフェースオブジェクトを含むメニューを表示することを取り止める、選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動することを取り止める)。いくつかの実施形態では、第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応せず、カーソルが閾値期間より長く表示されている及び/又は表示されていないという判定に従って、コンピュータシステムは、動作の実行を見合わせる。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応していないという判定に従って動作を実行しないことを選択することは、所定の条件が満たされないときに動作を実行しない能力をコンピュータシステムに与え、コンピュータシステムが不必要な及び/又は意図しない動作を実行することを回避するのに役立つ。
いくつかの実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求を検出したことに応じて、及びカーソル(例えば、742)が第3の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されていないという判定に従って、コンピュータシステムは、(例えば、図8Dに示すように)動作の実行を見合わせる。いくつかの実施形態では、第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応する及び/又は対応せず、カーソルが閾値期間より長く第2の位置に表示されていないという判定に従って、コンピュータシステムは、動作の実行を見合わせる。カーソルが第3の閾値期間より長く第2の位置に表示されていないという判定に従って動作を実行しないことを選択することは、所定の条件が満たされないときに動作を実行しない能力をコンピュータシステムに与え、コンピュータシステムが不必要な及び/又は意図しない動作を実行することを回避するのに役立つ。
いくつかの実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求を検出したことに応じて、及び第2の位置が表示生成構成要素の領域(例えば、図7Qの742又は図7Yの742)内にある位置に対応する(例えば、そこである)、及びカーソルが、第4の閾値期間を越えて(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されるという判定に従って、コンピュータシステムは、ユーザインタフェース(例えば、710又は718)とは異なる第2のユーザインタフェース(例えば、780又は720)を表示すること(及び、ユーザインタフェースの表示を停止すること)を含む第2の動作を実行する(カーソルの表示を継続しながら)(メニューを表示せずに)(例えば、動作(例えば、ユーザインタフェースオブジェクトを選択すること)とは異なる)。いくつかの実施形態ではユーザインタフェースとは異なる第2のユーザインタフェースを表示することの一部として、コンピュータシステムは、ユーザインタフェースを置き換える第2のユーザインタフェースのアニメーション(例えば、スライドアニメーション、フェードアニメーション、ディゾルブアニメーション、及び/又はスライドアニメーション)を表示する。いくつかの実施形態ではアニメーションは、ユーザインタフェースをスクリーンから領域に向かってスライドさせること、及び/又はスクリーン上の第2のユーザインタフェースオブジェクトを領域に向かってスライドさせることを含む。いくつかの実施形態では、第2の位置がディスプレイの領域内にある位置に対応しており、カーソルが閾値期間より長く第2の位置に表示されていないという判定に従って、コンピュータシステムは、第2のユーザインタフェースを表示することを含む第2の動作の実行を取り止める、及び/又はユーザインタフェースの表示を継続する。いくつかの実施形態では第2の閾値期間は、閾値期間と同じ期間である。いくつかの実施形態では第2の閾値期間は、閾値期間とは異なる閾値期間である。いくつかの実施形態では、領域は、1つ以上の選択可能ユーザインタフェースオブジェクトを含まない。いくつかの実施形態では、第2の位置が領域内にある位置に対応する(例えば、そこである)という判定に従って、コンピュータシステムは、アニメーションを表示する。いくつかの実施形態では、第2の位置が領域内にある位置に対応する(例えば、そこである)という判定に従って、コンピュータシステムは、アニメーションを表示することを取り止める。いくつかの実施形態では、第2の位置が領域内にある位置に対応していない(例えば、そこである)という判定に従って、コンピュータシステムは、アニメーションを表示する。いくつかの実施形態では、第2の位置が領域内にある位置に対応していない(例えば、そこである)という判定に従って、コンピュータシステムは、アニメーションを表示することを取り止める。第2の位置が表示生成構成要素の領域内にある位置に対応しており、カーソルが第4の閾値期間より長く第2の位置に表示されるという判定に従って、ユーザインタフェースとは異なる第2のユーザインタフェースを表示することを含む第2の動作を自動的に実行することは、カーソルが表示生成構成要素の特定の領域内にあるときに、コンピュータシステムが別のユーザインタフェースを表示することを可能にする。第2の位置が表示生成構成要素の領域内にある位置に対応しており、カーソルが第4の閾値期間より長く第2の位置に表示されるという判定に従って、ユーザインタフェースとは異なる第2のユーザインタフェースを表示することを含む第2の動作を実行することは、所定の条件が満たされたときに別のユーザインタフェースを表示する能力をユーザに与えることによって、コンピュータシステムに対するより多くの制御をユーザに提供する。
一部の実施形態では、第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応しており、カーソル(例えば、742)が第5の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、第2の位置にカーソルを表示している間)(例えば、アニメーションが表示される時間以上の期間)(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されるという判定に従って、コンピュータシステムは動作を実行する。いくつかの実施形態では、動作を実行することは、表示生成構成要素を介して、1つ以上の動作(例えば、1つ以上の異なる動作)を実施するための1つ以上の選択可能オプション(例えば、732a~732d及び/又は1410~1418)(例えば、ユーザインタフェースオブジェクト)を含むメニュー(例えば、732)を第2の位置に表示することを含む(例えば、タップ入力(例えば、及び/又は第1のタイプの入力)(例えば、シングルタップ入力/マルチタップ入力)が第2の位置で検出されたときに実行される動作(例えば、アプリケーションを起動する動作)、長押し入力(例えば、及び/又は第1のタイプの入力とは異なる第2のタイプの入力)が第2の位置で検出されたときに実行される動作(例えば、ユーザインタフェースオブジェクトを削除するためのメニューを表示する動作)、スワイプ入力(例えば、第1のタイプの入力及び第2のタイプの入力とは異なる第3のタイプの入力)が第2の位置で検出されたときに実行される動作、第2の位置で自動スクロール動作を開始する動作)。いくつかの実施形態ではメニューは、選択可能ユーザインタフェースオブジェクト及び/又はカーソルと同時に表示される。いくつかの実施形態ではメニューが表示されると、ユーザインタフェースの1つ以上の部分(例えば、選択可能ユーザインタフェースオブジェクト及び/又はカーソルを含まない部分)の表示が停止される。いくつかの実施形態ではメニューは、選択可能ユーザインタフェースオブジェクト及び/又はカーソルを含まないユーザインタフェース上の位置(例えば、上部/下部)に表示される。一部の実施形態では、選択可能ユーザインタフェースオブジェクト及び/又はカーソルが第1の特定に表示されるという判定に従って、メニューは、第2の特定の位置(例えば、第1の位置とは異なり、ディスプレイの第1の特定の位置とは反対側にある)に(第1の特定の位置に表示されることなく)表示される。一部の実施形態では、選択可能ユーザインタフェースオブジェクト及び/又はカーソルが第1の特定の位置に表示されていないという判定に従って、メニューは、第1の特定の位置に(第2の特定の位置に表示されることなく)表示される。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、第2の位置で1つ以上の動作を実行するための1つ以上の選択可能オプションを含むメニューを表示することを含む動作を自動的に実行することは、コンピュータシステムが、所定の条件が満たされたときにメニューを自動的に表示することを可能にする。第2の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第1の閾値期間より長く第2の位置に表示されるという判定に従って、1つ以上の動作を実行するための1つ以上の選択可能オプションを含むメニューを表示することを含む動作を実行することは、カーソルが特定の期間にわたって特定の位置に(例えば、ユーザによって)位置付けられた後に1つ以上の動作を実行するためのメニューを表示する能力をユーザに与えることによって、コンピュータシステムに対するより多くの制御をユーザに提供する。
いくつかの実施形態では、1つ以上の選択可能オプション(例えば、732a~732d)は、選択動作を実行するための第1の選択可能オプション(例えば、832a、1410a、1410b、1410c、又は1412)を含み、第1の選択可能オプションの選択は、コンピュータシステムに、第2の位置で(例えば、選択可能ユーザインタフェースオブジェクト上で)選択動作(例えば、タップが第2の位置で受信されたときに実行されるアクション)を実行させる。いくつかの実施形態では第1の選択可能オプションの選択を検出したことに応じて、コンピュータシステムは、選択可能ユーザインタフェースオブジェクトに関連付けられたアプリケーションを起動することを含む選択動作を実行する。いくつかの実施形態では第1の選択可能オプションの選択を検出したことに応じて、コンピュータシステムは、第2の位置に表示された選択可能ユーザインタフェースオブジェクトを強調すること(例えば、強調表示)を含む選択動作を実行する。選択動作を実行するための第1の選択可能オプションを含むメニューを表示することは、ユーザがコンピュータシステムに選択動作を実行させることを可能にすることによって(例えば、より複雑なハンドジェスチャを提供することなく)、コンピュータシステムに対するより多くの制御をユーザに提供し、また、動作を実行するために使用されるハンドジェスチャの数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプションは、入力(例えば、タップ入力、長押し入力、スワイプ入力)(及び/又はジェスチャ)が(例えば、コンピュータシステムによって)第2の位置で検出されたことに応答して実行される(及び/又は実行されるであろう)動作に対応する(例えば、それである)動作(例えば、入力(例えば、タップ入力、長押し入力、スワイプ入力)に応じてアプリケーションを起動すること、入力(例えば、タップ入力、長押し入力、スワイプ入力)に応じて第2の位置に表示される選択可能ユーザインタフェースオブジェクトを移動させること、第2の位置に表示される選択可能ユーザインタフェースオブジェクトに対応する通知(例えば、ポップアップ)を表示すること)を実行するための第2の選択可能オプション(例えば、832a)を含み、第2の選択可能オプションの選択は、コンピュータシステムに、入力が第2の位置で検出されたことに応じて実行される動作に対応する動作を実行させる(例えば、入力が第2の位置で検出されることなく)。入力が第2の位置で検出されたことに応じて実行される動作に対応する動作を実行するための第2の選択可能オプションを含むメニューを表示することは、入力が第2の位置で検出されたことに応じて実行される動作をユーザがコンピュータシステムに実行させることを可能にすることによって、コンピュータシステムに対するより多くの制御をユーザに提供し(例えば、より複雑なハンドジェスチャを提供することなく、ユーザがコンピュータシステム及び/又は表示生成構成要素に触れることなく)、また、動作を実行するために使用されるハンドジェスチャの数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプションは、自動スクロール動作(例えば、方法1500に関連して説明されるような)を実行するための第3の選択可能オプション(例えば、732a、1410c、又は1412)を含み、第3の選択可能オプションの選択は、コンピュータシステムに、選択可能ユーザインタフェースオブジェクトを含む複数の選択可能ユーザインタフェースオブジェクトを自動的にスクロールさせる。いくつかの実施形態では、選択可能ユーザインタフェースオブジェクトを含む複数の選択可能ユーザインタフェースオブジェクトを自動的にスクロールすることの一部として、コンピュータシステムは、第2の位置から(例えば、第2の位置に表示される選択可能ユーザインタフェースオブジェクトから)自動スクロールを開始する。いくつかの実施形態では選択可能ユーザインタフェースオブジェクトを含む複数の選択可能ユーザインタフェースオブジェクトを自動的にスクロールすることの一部として、コンピュータシステムは、1つ以上の選択可能ユーザインタフェースオブジェクトを順番に強調(例えば、強調表示)する(例えば、方法1500に関連して説明したように)。自動スクロール動作を実行するための第3の選択可能オプションを含むメニューを表示することは、ユーザがコンピュータシステムに選択可能ユーザインタフェースオブジェクトを含む複数の選択可能ユーザインタフェースオブジェクトを自動的にスクロールさせることを可能にすることによって(例えば、より複雑なハンドジェスチャを提供することなく)、コンピュータシステムに対するより多くの制御をユーザに提供し、また、動作を実行するために使用されるハンドジェスチャの数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプションは、1つ以上のオプションの追加オプション(例えば、1416)を表示するための第4の選択可能オプション(例えば、選択可能ユーザインタフェースオブジェクトの位置(例えば、第2の位置)で入力が検出されたときに実行される動作に対応する動作を実行するオプションに対応するオプション、コンピュータシステムをオン/オフすること、異なるメニュー及び/又はユーザインタフェースを表示することなどの動作を実行するためのオプション、及び/又はコンピュータシステムと通信する1つ以上の入力デバイスを介した入力の検出に応じて実行される動作に対応するオプション)を含む。いくつかの実施形態では、第4の選択可能オプションの選択は、コンピュータシステムに、第4の選択可能オプションの選択が検出される前に以前に表示されていなかった1つ以上の追加オプション(例えば、図8Jに表示される832a及びメニュー)を表示させる。いくつかの実施形態では、第4の選択可能オプションの検出に応じて、コンピュータシステムは、第4の選択可能オプションの選択が検出される前に表示されていた1つ以上の選択可能オプションの表示を停止する。1つ以上のオプションの追加オプションを表示するための第4の選択可能オプションを含むメニューを表示することは、以前に表示されなかった追加の選択可能オプションを表示することをユーザが選択できるようにすることによって、コンピュータシステムに対するより多くの制御をユーザに提供し、追加の動作を実行するために使用されるハンドジェスチャの数を減らし、第4の選択可能オプションの選択が検出される前に以前に表示されなかった選択可能ユーザインタフェースオプションの数を減らす。
いくつかの実施形態では、第4の選択可能オプション(例えば、1414又は1416)の選択が検出される前に以前に表示されなかった1つ以上の追加オプション(例えば、図8Jに表示される832a及びメニュー)は、特定の追加オプション(例えば、1414a~1414d又は1416a~1416c)を含み、特定の追加オプションの選択は、コンピュータシステムに、第2の位置で実行されない動作(例えば、終了動作、メニューを閉じる動作)を実行させない。いくつかの実施形態では、1つ以上の選択可能オプションは、選択されたときに、コンピュータシステムに、第2の位置で実行されない(例えば、第2の位置で開始され、第2の位置で実行され、及び/又は第2の位置を含む)(例えば、いかなる動作)動作を実行させる選択動作を含まない。第4の選択可能オプションの選択が検出される前に以前に表示されなかった1つ以上の追加オプションを含むメニューを表示することは、特定の追加オプションが、第2の位置で実行されない動作を実行するオプションをユーザが選択できるようにすることによって、コンピュータシステムに対するより多くの制御をユーザに提供し、第2の位置で実行されない動作を実行するために使用されるハンドジェスチャの数を低減することを含む。
いくつかの実施形態では、コンピュータシステム(例えば、600)は、1つ以上の入力デバイス(例えば、602a~602c)と通信する。いくつかの実施形態では、1つ以上の選択可能オプションは、1つ以上の入力デバイス(例えば、ハードウェアボタン(例えば、スマートウォッチの竜頭、回転可能なハードウェアボタン、押下/押下解除可能なハードウェアボタン)、ハードウェアスライダ)を介した入力の検出に応じて実行される(及び/又は実行されるであろう)動作(例えば、メニューを表示するためのハードウェア入力デバイス上の押下(例えば、単一及び/又は複数の押下)、決済動作の開始、コンピュータシステムの電源オフの開始、音声支援の使用の開始、カーソルをある位置から別の位置に移動させるためのハードウェア入力デバイスの回転、及び/又はユーザインタフェースの1つ以上の構成要素をズーム、スクロール、及び/又は調整するためのハードウェア入力デバイスの回転)に対応する(例えば、である)動作を実行するための第5の選択可能オプション(例えば、732a、1410c、又は1416b)を含む。いくつかの実施形態では、第5の選択可能オプションの選択は、コンピュータシステムに、1つ以上の入力デバイスを介した入力の検出に応じて(例えば、1つ以上の入力デバイスにおける入力が検出されることなく)実行される動作に対応する動作を実行させる。1つ以上の入力デバイスを介して入力を検出したことに応じて、実行される動作に対応する動作を実行するための第5の選択可能オプションを含むメニューを表示することは、1つ以上の入力デバイスを介して入力が検出されたことに応じて実行される動作に対応する動作を実行することをユーザが選択できるようにすることによって(例えば、より複雑なハンドジェスチャを提供せず、ユーザが1つ以上の入力デバイスに触れることなく)、コンピュータシステムに対するより多くの制御をユーザに提供し、また、動作を実行するために使用されるハンドジェスチャの数を低減する。
いくつかの実施形態では、1つ以上の選択可能オプションは、第6の選択可能オプション(例えば、732a~732d又は1410~1418)及び(例えば、第6の選択可能オプションとは異なる)第7の選択可能オプション(例えば、732a~732d又は1410~1418)を含む。いくつかの実施形態では、メニュー(例えば、732)を表示している間に、コンピュータシステムは、ユーザインタフェース上の第2の位置から第3の位置にカーソルを移動させる要求(例えば、図7Y又は7Zにおける750p、850c、850d、又は傾斜)を検出する。いくつかの実施形態では、カーソルを移動させる第2の要求は、コンピュータシステムの動き、コンピュータシステムに関連付けられた1つ以上のデバイス(例えば、マウス)の動き、及び/又はコンピュータシステムの表示生成構成要素上で検出された1つ以上の入力/ジェスチャ(例えば、スワイプジェスチャ)に基づいて検出される。いくつかの実施形態では、ユーザインタフェース上でカーソルを第2の位置から第3の位置に移動させる要求を検出したことに応じて、コンピュータシステムは、第3の位置が第6の選択可能オプションの位置に対応しており、カーソルが第6の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第3の位置に表示されるという判定に従って、(例えば、第2の動作を実行せずに)第6の選択可能オプションに対応する第1の動作を実行し、第3の位置が第7の選択可能オプションの位置に対応しており、カーソルが第6の閾値期間より長く第3の位置に表示されるという判定に従って、(例えば、第1の動作を実行せずに)第1の動作とは異なる第2の動作を実行する。いくつかの実施形態では、第3の位置が第6の選択可能オプションの位置に対応しており、カーソルが第3の閾値期間より長く第3の位置に表示されていないという判定に従って、コンピュータシステムは、第1の動作の実行を取り止める。いくつかの実施形態では、第3の位置が第7の選択可能オプションの位置に対応しており、カーソルが第3の閾値期間より長く第3の位置に表示されていないという判定に従って、コンピュータシステムは、第1の動作の実行を取り止める。いくつかの実施形態では、第3の閾値期間は、閾値期間と同じ期間である。いくつかの実施形態では、第3の閾値期間は、閾値期間とは異なる閾値期間である。カーソルが閾値期間にわたってどこに表示されるかに基づいて異なる動作を実行することは、カーソルの位置に基づいて異なる動作を実行するために、コンピュータシステムに対するより多くの制御をユーザに提供する。
いくつかの実施形態では、(例えば、カーソルを第2の位置に表示し、第2の位置が選択可能ユーザインタフェースオブジェクトに対応する間)、1つ以上の動作は、コンピュータシステム(例えば、600)に、選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)に対応するアプリケーションのユーザインタフェースを表示させる動作を含む(例えば、図8Jに関連して上述したように)(第1のモードを終了することなく)。
いくつかの実施形態では、(例えば、第2の位置にカーソルを表示し、第2の位置が選択可能ユーザインタフェースオブジェクトに対応する間)、1つ以上の動作は、コンピュータシステムを第1の動作モードから第2の動作モードに遷移させる動作を含む(例えば、732a及び/又は1412に関連して上述したように)(例えば、動作(例えば、自動スクロール動作、モーションポインタ動作)が第2の位置で開始される(及び/又は第2の位置から開始される)動作モード)(選択可能ユーザインタフェースオブジェクトに対応するアプリケーションを起動せずに)。
いくつかの実施形態では、1つ以上の選択可能オプションを含むメニュー(例えば、732)を表示した後(例えば、メニューが表示されると、1つ以上のメニューオブジェクトが表示される)、コンピュータシステムは、ユーザインタフェースとは異なる第2のユーザインタフェースを表示する要求を検出する(例えば、図7I~図7U及び図8A~図8Jに関連して上述したように)。いくつかの実施形態では、第2のユーザインタフェースを表示する要求を検出したことに応じて、コンピュータシステムは、第2のユーザインタフェースを(第1の動作モードで動作している間に)表示する。いくつかの実施形態では、第2のユーザインタフェースはメニューを含まず、第2の選択可能ユーザインタフェースオブジェクト(例えば、732a~732d又は1410~1418)(例えば、選択可能ユーザインタフェースオブジェクトとは異なる)及びカーソル(例えば、744(例えば、図7I~図7U及び図8A~図8Jに関連して上述したように))を含む。いくつかの実施形態では、第2の選択可能ユーザインタフェースオブジェクト及びカーソルを表示している間に、コンピュータシステムは、(例えば、図7I~図7U及び図8A~図8Jに関連して上述したように)カーソルを第2のユーザインタフェース上の第4の位置から第2のユーザインタフェース上の第5の位置に移動させる要求を検出する。いくつかの実施形態では、カーソルを移動させる第3の要求は、コンピュータシステムの動き、コンピュータシステムに関連付けられた1つ以上のデバイス(例えば、マウス)の動き、及び/又はコンピュータシステムの表示生成構成要素上で検出された1つ以上の入力/ジェスチャ(例えば、スワイプジェスチャ)に基づいて検出される。いくつかの実施形態では、第2のユーザインタフェース上の第4の位置から第2のユーザインタフェース上の第5の位置へカーソルを移動させる要求を検出したことに応じて、コンピュータシステムは、(例えば、図7I~図7U及び図8A~図8Jに関連して上述したように)第2のユーザインタフェース上の第5の位置にカーソルを表示する。いくつかの実施形態では、第2のユーザインタフェース上の第4の位置から第2のユーザインタフェース上の第5の位置へカーソルを移動させる要求を検出したことに応じて、コンピュータシステムは、第5の位置が第2の選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第7の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第2の位置に表示されるという判定に従って、コンピュータシステムは、表示生成構成要素を介して、1つ以上の選択可能オプションを含むメニュー(例えば、732)を(例えば、図7I~図7U及び図8A~図8Jに関連して上述したように)再表示する(例えば、メニューが表示されると、1つ以上のメニューオブジェクトが表示される。いくつかの実施形態では、第5の位置が第2の選択可能ユーザインタフェースオブジェクトの位置に対応していない、及び/又はカーソルが第7の閾値期間より長く第2の位置に表示されていないという判定に従って、メニューを表示することを取り止める。第5の位置が第2の選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第7の閾値期間より長く第2の位置に表示されるという判定に従ってメニューを再表示するように自動的に選択することにより、コンピュータシステムは、異なる選択可能ユーザインタフェースオブジェクトに対して同じセットの所定の条件が満たされた場合に、一貫したメニューをユーザに提供することができる。
いくつかの実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求は、コンピュータシステム(例えば、600)が特定の方向に傾けられた(例えば、図7Y又は7Zにおける750p、850c、850d、又は傾斜)(例えば、コンピュータシステムの片側(例えば、右側、左側)がコンピュータシステムの別の側よりも高い/低い)と決定されたときに検出される。いくつかの実施形態では、決定は、コンピュータシステムと通信する1つ以上のジャイロスコープを介して検出されるデータを使用して行われる。いくつかの実施形態では、特定の方向は、コンピュータシステムの高い側からコンピュータの低い側に向かう方向である。一部の実施形態では、カーソル(例えば、742)は、特定の方向に対応する方向に移動される。
いくつかの実施形態では、選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)を含むユーザインタフェースと、ユーザインタフェース上の第1の位置に表示されるカーソル(例えば、742)とを表示する前に、コンピュータシステムは、第3のユーザインタフェースを表示する。いくつかの実施形態では、第3のユーザインタフェース(例えば、710、720、810、又は780)を表示している間(及び、いくつかの実施形態では、ユーザインタフェースは選択可能ユーザインタフェースオブジェクトを含む)、コンピュータシステムは、第1の動作モードに入るための要求(例えば、750w、850a)を検出する。いくつかの実施形態では、第1の動作モードに入る要求を検出したことに応じて、コンピュータシステムは、コンピュータシステム(例えば、600)を(例えば、第1の動作モードとは異なる)第2の動作モードから第1の動作モードに遷移させる。いくつかの実施形態では、第1の動作モードに入る要求を検出したことに応じて、コンピュータシステムは、(例えば、第1の位置に)カーソルを表示する(例えば、及び/又は、選択可能ユーザインタフェースオブジェクトを含むユーザインタフェースと、ユーザインタフェース上の第1の位置に表示されるカーソル)。第1の動作モードに入る要求を検出したことに応じてカーソルを表示することは、コンピュータシステムが第1の動作モードで動作していること(例えば、/又はコンピュータシステムが第1の動作モードにあるので、1つ以上のユーザアクションはコンピュータシステムに1つ以上の特定の動作を実行させることができること)の視覚的フィードバックをユーザに提供する。
いくつかの実施形態では、第1の動作モードに入る要求を検出することの一部として、コンピュータシステムは、(例えば、コンピュータシステムが第2の動作モードにある間に)コンピュータシステムがシェイクされた(又はシェイクされている)ことを検出する(例えば、750w、850a)。コンピュータシステムがシェイクされたことを検出したことに応じてコンピュータシステムを第2の動作モードから第1の動作モードに遷移させることは、コンピュータシステムをシェイクすることによって(例えば、デバイスの表示生成構成要素上に入力を提供することなく)ユーザがモード間で切り替えることを可能にすることによって、ユーザにコンピュータシステムに対するより多くの制御を提供する。
いくつかの実施形態では、コンピュータシステムが第1のモードにある間に、コンピュータシステムは、コンピュータシステム(例えば、600)がシェイクされた(例えば、750w、850a)ことを検出する。いくつかの実施形態では、コンピュータシステムがシェイクされたことを検出したことに応じて、コンピュータシステムは、コンピュータシステムを第1の動作モードから第3の動作モード(また、いくつかの実施形態では、第3の動作モードは第2の動作モードである)(例えば、方法1500に関連して上述したような第1の動作モード)に遷移させる。コンピュータシステムがシェイクされたことを検出したことに応じてコンピュータシステムを第1の動作モードから第3の動作モードに遷移させることは、ユーザがコンピュータシステムをシェイクすることによって(例えば、デバイスの表示生成構成要素上に入力を提供することなく)モードを切り替えることを可能にすることによって、ユーザにコンピュータシステムに対するより多くの制御を提供する。
いくつかの実施形態では、コンピュータシステム(例えば、600)を第1の動作モードから第3の動作モードに遷移させることの一部として、コンピュータシステムは、カーソル(例えば、742)の表示を停止する。いくつかの実施形態では、(例えば、コンピュータシステムが第1のモードにある間に)コンピュータシステムがシェイクされたことを検出したことに応じて、コンピュータシステムはカーソルの表示を停止する。コンピュータシステムがシェイクされたことを検出したことに応じてカーソルの表示を停止することは、コンピュータシステムが第1の動作モードで動作していないこと(及び/又はコンピュータシステムが第1の動作モードにないので、1つ以上のユーザアクションがコンピュータシステムに1つ以上の特定の動作を実行させることができないこと)のフィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムが第3の動作モードにあり、カーソル(例えば、742)が表示されている間に、コンピュータシステムは、カーソルを第6の位置から第7の位置に移動させる要求を検出する。いくつかの実施形態では、(例えば、コンピュータシステムが第3の動作モードにある間に)、カーソルを第6の位置から第7の位置に移動させる要求(例えば、図7Y又は7Zにおける750p、850c、850d、又は傾斜)を検出したことに応じて、コンピュータシステムは、カーソルを第7の位置に表示する。いくつかの実施形態では、(例えば、コンピュータシステムが第3の動作モードにある間に)カーソルを第6の位置から第7の位置に移動させる(例えば、750p、850c、850d、又は図7Y若しくは7Zの傾斜)要求を検出したことに応じて、及び第7の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第8の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、アニメーションが表示される時間以上の期間)第7の位置に表示されるという判定に従って、コンピュータシステムは、動作の実行を取り止める。第7の位置が選択可能ユーザインタフェースオブジェクトの位置に対応しており、カーソルが第8の閾値期間より長く第7の位置に表示されるという判定に従って動作を実行することを取り止めることは、(例えば、コンピュータシステムが第3の動作モードにある間に)、特定のハンドジェスチャが特定の動作をいつ実行するかを制御するために、コンピュータシステムに対するより多くの制御をユーザに提供する。
一部の実施形態では、カーソル(例えば、742)を第1の位置から第2の位置に移動させる要求を検出したことに応じて、及び第2の位置が選択可能ユーザインタフェースオブジェクト(例えば、720c、732c、810d、又は832a)の位置に対応しており、カーソル(例えば、742)が第9の閾値期間より長く(例えば、0でない期間)(例えば、1~5秒)(例えば、カーソルを第2の位置に表示する間)(例えば、アニメーションが表示されるより長い期間)第2の位置に表示されるという判定に従って、コンピュータシステムは動作を実行する。いくつかの実施形態では、動作を実行することの一部として、コンピュータシステムの1つ以上の設定(例えば、ユーザ設定)が第1の状態にあるという判定に従って、コンピュータシステムは、選択可能ユーザインタフェースオブジェクトに対応する第2のアプリケーションを起動することなく、第2の位置で1つ以上の動作(例えば、1つ以上の異なる動作)を実行するための1つ以上の選択可能オプション(例えば、ユーザインタフェースオブジェクト)を含む第2のメニューを表示する。いくつかの実施形態では、動作を実行することの一部として、コンピュータシステムの1つ以上の設定(例えば、ユーザ設定)が第1の状態にあるという判定に従って、コンピュータシステムは、1つ以上の選択可能オプション(例えば、ユーザインタフェースオブジェクト)を含む第2のメニューを表示することなく、選択可能ユーザインタフェースオブジェクトに対応する第2のアプリケーションを起動して、第2の位置で1つ以上の動作(例えば、1つ以上の異なる動作)を実行する。所定の条件が満たされたときに第2のアプリケーションを起動するか、及び/又は第2のメニューを表示するかを選択することは、1つ以上のアクションがアプリケーションを起動させるか、及び/又はメニューを表示させるかを変更するために、コンピュータシステムに対するより多くの制御をユーザに提供する。
方法1600(例えば、図16)に関して上述したプロセスの詳細はまた、本明細書に記載の方法に類似する方式でも適用可能であることに留意されたい。例えば、方法1600は、方法1500を参照して本明細書に記載する様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、方法1600は、コンピュータシステムが方法1500の技術を使用して動作する動作モードでの動作からコンピュータシステムが切り替えられるときに実行することができる。簡潔にするために、これらの詳細は、以下で繰り返さない。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本技術の原理、及びそれらの実際の用途を最も良く説明するために、実施形態が選択及び記載されている。それにより、他の当業者は、意図された具体的な用途に適するような様々な修正を用いて、本技術及び様々な実施形態を最も良好に利用することが可能となる。
添付図面を参照して、本開示及び例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び例の範囲内に含まれるものとして理解されたい。
上述のように、本技術の一態様は、ハンドジェスチャの検出を向上させるために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの場合には、この収集されたデータが、特定の人を一意に特定する個人情報データ、又は特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを考察する。そのような個人情報データとしては、人口統計データ、位置ベースのデータ、電話番号、電子メールアドレス、ツイッターID、自宅の住所、ユーザの健康若しくはフィットネスのレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、誕生日、又は任意の他の識別情報若しくは個人情報を挙げることができる。
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、個人情報データは、ユーザのハンドジェスチャの検出を向上させるために使用することができる。したがって、そのような個人情報データを使用することにより、ユーザは、ハンドジェスチャの検出を向上させることができるデータのユーザの計算された制御を有することができる。更に、ユーザに利益をもたらす個人情報データに関する他の使用も本開示によって意図されている。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、又は、ウェルネスの目標を追求する技術を使用している個人への、積極的なフィードバックとして使用することもできる。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的且つ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。その上、そのようなエンティティは、そのような個人情報データへのアクセスを保護及び安全化し、個人情報データへのアクセス権を有する他者が、それらのプライバシーポリシー及び手順を忠実に守ることを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更に、そのようなエンティティは、広く受け入れられているプライバシーポリシー及び慣行に対する自身の遵守を証明するために、サードパーティによる評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はそれへのアクセスは、医療保険の相互運用性と説明責任に関する法律(HIPAA)等の、連邦法及び/又は州法によって管理されてもよく、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国において、異なる個人データのタイプに関して異なるプライバシー慣行が保たれるべきである。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素が提供され得ることを意図している。例えば、ユーザインタフェース管理(例えば、ナビゲーションを含む)の場合、本技術は、ユーザが、サービスの登録中又はその後のいつでも、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することができるように構成することができる。別の例では、ユーザは、ハンドジェスチャの検出を向上させるために使用され得る心拍数データ及び/又は他のデータを提供しないように選択することができる。更に別の例では、ユーザは、心拍数データ及び/又は他のデータが維持される時間の長さを制限することを選択することができる。「オプトイン」及び「オプトアウト」のオプションを提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを意図している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに知らされ、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
更には、本開示の意図は、個人情報データを、非意図的若しくは無許可アクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなると削除することにより、リスクを最小化することができる。加えて、且つ、特定の健康関連アプリケーションにおいて適用可能な場合、ユーザのプライバシーを保護するために、データの匿名化を使用することができる。非特定化は、適切な場合には、特定の識別子(例えば、生年月日など)を除去すること、記憶されたデータの量又は特異性を制御すること(例えば、位置データを住所レベルよりも都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、データをユーザ全体にわたって集約すること)及び/又は他の方法によって、容易にすることができる。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものであるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することも可能であることを想到する。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、動作不可能にされるものではない。例えば、ハンドジェスチャは、ユーザに関連付けられたデバイスによって要求されたコンテンツなどの非個人情報データ若しくは必要最小限の量の個人情報、データ検出サービスに利用可能な他の非個人情報、又は公的に利用可能な情報に基づいて、検出することができる。