以下の説明は、例示的な方法、パラメータなどについて記載する。しかしながら、そのような説明は、本開示の範囲に対する限定として意図されるものではなく、むしろ例示的な実施形態の説明として提供されることを認識されたい。
手洗いイベントなどの身体活動イベントの実行を追跡し、かつ特定の状況で身体活動イベントを実行するようにユーザにリマインドするための効率的な方法およびインタフェースを提供する電子デバイスが必要である。そのような技術は、身体活動イベントを実行するまたは身体活動イベントの実行を追跡する必要があるユーザの認識的負担を低減し、それによって生産性を高めることができる。さらに、そのような技術は、普通なら冗長なユーザ入力に浪費されるプロセッサおよびバッテリの電力を低減することができる。
以下、図1A~図1B、図2、図3、図4A~図4B、および図5A~図5Bは、身体活動イベントの実行を追跡するための技術を実行するための例示的なデバイスの説明を提供する。図6A~図6Wは、身体活動イベントの実行を追跡するための例示的なユーザインタフェースを示す。図7A~図7Cは、いくつかの実施形態に係る、身体活動イベントの実行を追跡する方法を示すフロー図である。図6A~図6Wのユーザインタフェースは、図7A~図7Dのプロセスを含む、後述するプロセスを例示するために使用される。さらに、図1AZ~図1BZ、図2Z~図6Zは、本開示の実施例に係る、1つ以上のセンサに基づいて個々の健康関連イベントを検出するための例示的なシステムおよびプロセスを提供する。
加えて、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の定義は、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するかどうかが判定されるまで、イベント情報の伝送を遅らせる遅延アクションも含む。
一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと特定のイベント認識部180が判断した場合、特定のイベント認識部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によって実行されたときに、例えば、コンピュータプロセッサに、プロセス700(図7A~図7C)を含む、後述される技術を実行させることができる。コンピュータ可読記憶媒体は、命令実行システム、装置、若しくはデバイスによって、または命令実行システム、装置、若しくはデバイスに関連して、使用されるコンピュータ実行可能命令を、有形に含みまたは記憶することができる任意の媒体であり得る。いくつかの実施例では、記憶媒体は、一時的コンピュータ可読記憶媒体である。いくつかの実施例では、記憶媒体は、非一時的コンピュータ可読記憶媒体である。非一時的コンピュータ可読記憶媒体は、それらに限定されるものではないが、磁気記憶装置、光学記憶装置、および/または半導体記憶装置を含むことができる。そのような記憶装置の例としては、磁気ディスク、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つ以上の動作を実行するべきか否か(例えば、特定の動作を実行するべきか、それとも特定の動作を実行するのを取り止めるべきか)を判定するために使用される。
いくつかの実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、任意選択的に、開始位置から遷移して終了位置に到達し、その位置で接触の強度が増大している、連続するスワイプ接触を受信する。この例では、終了位置での接触の特性強度は、任意選択的に、スワイプ接触全体ではなく、連続するスワイプ接触の一部分のみ(例えば、スワイプ接触のうち終了位置の部分のみ)に基づいている。いくつかの実施形態では、任意選択的に、接触の特性強度を判定する前に、平滑化アルゴリズムがスワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、および/または指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触強度の幅の狭いスパイクまたは下落を排除する。
タッチ感知面上の接触の強度は、任意選択的に、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、および/または1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けられる。いくつかの実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタンまたはトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、通常、物理マウスのボタンまたはトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつそれを下回ると接触が検出されなくなる公称接触検出強度閾値を上回る)特性強度を有する接触が検出されたとき、デバイスは、タッチ感知面上の接触の移動に従い、軽い押圧強度閾値または深い押圧強度閾値に関連付けられた動作を実行することなく、フォーカスセレクタを動かす。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェースの値の様々なセットの間で一貫している。
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」の入力と呼ばれることがある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」の入力と呼ばれることがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれることがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれることがある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
本明細書に記載するいくつかの実施形態では、特定の押圧入力を含むジェスチャを検出したことに応じて、または特定の接触(若しくは複数の接触)によって実行された特定の押圧入力を検出したことに応じて、1つ以上の動作が実行され、特定の押圧入力は、押圧入力強度閾値を上回る接触(または複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、特定の動作は、押圧入力強度閾値を上回る特定の接触の強度の増大(例えば、特定の押圧入力の「ダウンストローク」)を検出したことに応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る特定の接触の強度の増大、およびそれに続く押圧入力強度閾値を下回る接触の強度の減少を含み、特定の動作は、それに続く押圧入力閾値を下回る特定の接触の強度の減少(例えば、特定の押圧入力の「アップストローク」)を検出したことに応じて実行される。
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義または選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低い、またはヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくはなんらかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る特定の接触の強度の増大、およびそれに続く押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、特定の動作は、それに続くヒステリシス強度閾値を下回る特定の接触の強度の減少(例えば、特定の押圧入力の「アップストローク」)を検出したことに応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、および任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、特定の動作は、押圧入力(例えば、状況に応じて、接触の強度の増大または接触の強度の減少)を検出したことに応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力、または押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、および/または押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。さらに、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
本明細書では、「インストール済みアプリケーション」は、電子デバイス(例えば、デバイス100、300、および/または500)上へダウンロードされ、デバイス上で起動する準備ができた(例えば、開かれた)ソフトウェアアプリケーションを指す。いくつかの実施形態では、ダウンロードされたアプリケーションは、ダウンロードされたパッケージからプログラム部分を抽出し、抽出された部分をコンピュータシステムのオペレーティングシステムと統合するインストールプログラムによって、インストール済みアプリケーションになる。
本明細書では、「開いているアプリケーション」または「実行中のアプリケーション」という用語は、保持された状態情報(例えば、デバイス/グローバル内部状態157および/またはアプリケーション内部状態192の一部として)を有するソフトウェアアプリケーションを指す。開いているまたは実行中のアプリケーションは、任意選択的に、以下のタイプのアプリケーションのうちのいずれか1つである。
●アプリケーションが使用されているデバイスのディスプレイスクリーンに現在表示されているアクティブなアプリケーション、
●現在表示されていないが、アプリケーションに対する1つ以上のプロセスが1つ以上のプロセッサによって処理されている背景アプリケーション(または背景プロセス)、並びに
●稼働していないが、(それぞれ、揮発性および不揮発性の)メモリに記憶されており、かつアプリケーションの実行を再開するために使用することができる状態情報を有する、中断または休止状態のアプリケーション。
本明細書では、「閉じているアプリケーション」という用語は、保持された状態情報を有していないソフトウェアアプリケーションを指す(例えば、閉じているアプリケーションに対する状態情報は、デバイスのメモリ内に記憶されていない)。したがって、アプリケーションを閉じることは、アプリケーションに対するアプリケーションプロセスを停止および/または除去し、アプリケーションに対する状態情報をデバイスのメモリから除去することを含む。概して、第1のアプリケーション中に第2のアプリケーションを開いても、第1のアプリケーションは閉じない。第2のアプリケーションが表示されており、かつ第1のアプリケーションが表示を中止されたとき、第1のアプリケーションは背景アプリケーションになる。
次に、ポータブル多機能デバイス100、デバイス300、またはデバイス500などの電子デバイス上で実施されるユーザインタフェース(「UI」)および関連プロセスの実施形態に注意を向ける。
図6A~図6Wは、いくつかの実施形態に係る、身体活動イベントの実行を追跡および提案するための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図7A~図7Cにおける処理を含む、以下で説明する処理を例示するために使用される。
図6Aは、所与の時点でのデバイス600の2つの図を示し、デバイス600は、ユーザの左手首に着用されているスマートウォッチである。図6Aの左側は、デバイス600のタッチスクリーンディスプレイ604のビューを含む拡大図602aでデバイス600を示す。図6Aの右側は、ユーザの腕606a(左)および606b(右)の描写も含む着用状態図602bでデバイス600を示す。デバイス600は、ストラップ608aおよび608bによってユーザの腕606aの手首に固定されている。いくつかの実施形態では、デバイス600は、図1Aに示すような、マイクロフォン113および加速度計168を含む、デバイス100、300、および500の1つ以上の特徴または要素を含む。
図6Aの拡大図602aに示すように、デバイス600のタッチスクリーンディスプレイ604は、現在、コンテンツを表示していない。いくつかの実施形態では、タッチスクリーンディスプレイ604は、コンテンツを表示しているが、インタフェースロック状態および/または低電力状態である。
図6Aの着用状態図602bに示すように、ユーザは、移動矢印612aおよび612bによって示されるように、シンク610でユーザの手を洗う身体活動をちょうど完了するところである。図6Aでは、デバイス600は、手洗いの身体活動(例えば、手洗いイベント)の開始および進行中の実行に対応するものとしてデバイス600が特定する、センサデータを(例えば、マイクロフォン113および加速度計168を用いて)以前に検出している。いくつかの実施形態では、デバイス600は、付属書類Aに記載された1つ以上の技術に基づいて、センサデータが手洗いに対応することを特定する。さらに図6Aでは、デバイス600は、ユーザが手洗いの身体活動を完了したことを示すセンサデータを検出する(例えば、デバイス600は、一定期間にわたってそのようなデータを検出した後に、手洗いを示すセンサデータの中止を検出する)。ユーザが手洗いの身体活動を完了したことを検出したことに応じて、デバイス600は、触知出力614を出力する。
図6Bでは、触知出力614を出力した後に、デバイス600は、デバイスが閲覧位置の向きに置かれたことを検出する(例えば、ユーザは、タッチスクリーンディスプレイ604がユーザに見えるように、ユーザの左腕606aを持ち上げた(例えば、デバイス600は、手首を上げるジェスチャを検出した))。デバイスが閲覧位置の向き(例えば、所定の向き)に置かれたことを検出したことに応じて、デバイス600は、グラフィック616aおよびテキスト616b(「手洗い」)並びに((例えば、午前)8:45の現在時刻を示す)時間インジケーション616cを含む紹介通知ユーザインタフェース616を表示する。デバイス600は、図6Cのセットアップユーザインタフェース618の表示に遷移する前に、所定の期間(例えば、5秒)にわたって紹介通知ユーザインタフェース616を表示する。いくつかの実施形態では、紹介通知ユーザインタフェース616は、手洗いイベントの監視に関連する、まだ有効にされていない機能の紹介をユーザに提供する。いくつかの実施形態では、デバイス600は、初期デバイスセットアップ時に紹介通知ユーザインタフェース616を表示する。いくつかの実施形態では、デバイス600は、ソフトウェアアップグレード後に紹介通知ユーザインタフェース616を表示する。
図6Cでは、デバイス600は、拡大図602aに示すように、タッチスクリーンディスプレイ604上にセットアップユーザインタフェース618を表示する。セットアップユーザインタフェース618は、紹介テキスト618aと、機能有効化アフォーダンス618b(「手洗いをオンにする」)と、学習アフォーダンス618c(「さらに詳しく」)と、却下アフォーダンス618d(「却下」)と、情報テキスト618eと、を含む。紹介テキスト618aは、デバイス600が所定の期間(例えば、20秒)にわたる手洗いの身体活動の開始および進行中の実行を検出したという情報と、追跡されたユーザの手洗いデータがコンパニオンアプリケーション(例えば、電話機などの、デバイス600と通信するデバイスのアプリケーション)で利用可能であるというインジケーションと、を含む。
図6Cの着用状態図602bに示すように、ユーザは、デバイス600上でジェスチャを実行する。拡大図602aに戻ると、セットアップユーザインタフェース618を表示している間に、デバイス600は、機能有効化アフォーダンス618bの選択に対応する入力620a(例えば、タップ)、却下アフォーダンス618dの選択に対応する入力620b、または学習アフォーダンス618cの選択に対応する入力620cを択一的に受け取る(例えば、検出する)。デバイスは、後述するように、これらの択一的入力に応答する。
入力620aを受け取ったことに応じて、デバイス600は、手洗い検出および追跡機能を有効化する(例えば、オンにする)。いくつかの実装形態では、手洗いを有効化することにより、例えば、ユーザの位置、時刻、または検出されたユーザ活動に基づいて、様々な時間にユーザに表示される自動的な手洗いのリマインダまたは提案も可能になる。この手洗い機能の動作は、以下で図6E~図6Wを参照してより詳細に論じられる。入力620bを受け取ったことに応じて、デバイス600は、手洗い検出および追跡機能を有効化することなく、セットアップユーザインタフェース618を却下する(例えば、表示することを中止する)。いくつかの実施形態では、入力620bを受け取ったことに応じて、デバイス600は、手洗い検出、リマインダ、および追跡機能を有効化するための更なるプロンプトを抑制する。いくつかの実施形態では、入力620bを受け取ったことに応じて、デバイス600は、一定期間(例えば、1日、1週間、1ヶ月)にわたって手洗い検出および追跡機能を有効化するためのプロンプトを表示することを中止する。入力620cを受け取ったことに応じて、デバイス600は、図6Dに示すように、情報ユーザインタフェース622を表示する。
図6Dでは、拡大図602aで、デバイス600は、手洗いに関する追加情報を含む情報ユーザインタフェース622を表示する。いくつかの実施形態では、情報ユーザインタフェース622は、手洗いの検出、リマインダ、および追跡機能に関する情報をさらに含む。デバイス600は、着用状態図602bでユーザがデバイス600上でジェスチャを実行することに対応する、完了アフォーダンス624での入力626を受け取る。入力626を受け取ったことに応じて、デバイス600は、図6Cのセットアップユーザインタフェース618を表示する(例えば、それに戻る)。
図6Eでは、デバイス600は、図6Cに示すようにデバイス600が手洗い検出および追跡機能を有効化するための入力620aを受け取った後に、タッチスクリーンディスプレイ604上に(現在時刻(例えば、午前)10:09を示す)時間インジケーション628によって示される時間に手洗いリマインダ通知630を表示する。手洗いリマインダ通知630は、有効化された手洗い検出および追跡機能の機能であり、かつテキスト630aによって示されるように、ユーザの位置(例えば、ユーザが自宅に到着したこと)に基づいて任意選択的に生成される、自動的な通知である。
いくつかの実施形態では、様々な基準は、手洗いリマインダ通知の表示を促す。いくつかの実施形態では、デバイス600は、ユーザの位置(例えば、ユーザが特定の目的地(例えば、自宅、職場、空港、またはレストラン)に到着すること)に基づいて手洗いリマインダ通知を表示する。いくつかの実施形態では、デバイス600は、時刻に基づいて手洗いリマインダ通知を表示する。いくつかの実施形態では、デバイス600は、以前の手洗いイベント以後の持続時間(例えば最後にユーザがユーザの手を洗った時から2時間)に基づいて手洗いリマインダ通知を表示する。いくつかの実施形態では、デバイス600は、他の検出されたユーザ活動、例えば、ユーザがトレーニングをちょうど終了したことに基づいて手洗いリマインダ通知を表示する。いくつかの実施形態では、デバイス600は、プロンプト基準の検出から所定の時間内に手洗いイベントが検出された場合、手洗いリマインダ通知を表示しない。
図6Eの拡大図602aに示すように、手洗いリマインダ通知630はまた、選択されると、1時間または当日の間、手洗いリマインダ通知をそれぞれの抑制する、ミュートアフォーダンス630bおよび630cを含む。手洗いリマインダ通知630は、選択されると、現在の手洗いリマインダ通知630を却下する、却下アフォーダンス630dをさらに含む。デバイス600は、却下アフォーダンス630dの選択に対応する入力632を受け取る。入力632を受け取ったことに応じて、デバイス600は、手洗いリマインダ通知630を表示することを中止し、図6Fで時計文字盤ユーザインタフェース634を表示する。
図6Fでは、拡大図602aで、デバイス600は、タッチスクリーンディスプレイ604上に(現在時刻(例えば、午前)10:09を示す)時間インジケーション634aを有する時計文字盤ユーザインタフェース634を表示する。着用状態図602bでは、ユーザは、ユーザの腕606aおよび606bによって示されるように、中立位置にある。
ここで図6Gを参照すると、デバイス600は、手洗いイベントの開始に対応するものとしてデバイス600が特定するセンサデータを(例えば、マイクロフォン113および加速度計168を用いて)検出する。着用状態図602bに示すように、ユーザは、移動矢印636aおよび636bによって示されるように、シンク610でユーザの手を洗う身体活動を開始している。いくつかの実施形態では、センサデータは、オーディオデータ(例えば、シンク610に流れている水)である。いくつかの実施形態では、センサデータは、手の移動、または手の移動とオーディオデータを含む。センサデータを検出すると(例えば、センサデータの検出に応じて)、デバイス600は、タッチスクリーンディスプレイ604上に手洗いユーザインタフェース640を自動的に(例えば、明確なユーザ要求入力を必要とすることなく)表示し、オーディオフィードバック642a(例えば、複数の小さな泡が破裂する音)および触知フィードバック644a(例えば、軽い触覚振動)を出力する。いくつかの実施形態では、デバイス600は、オーディオフィードバック642aを出力しない(例えば、デバイスは、サイレントモードにある)。いくつかの実施形態では、デバイス600は、触知フィードバック644aを出力しない。いくつかの実施形態では、デバイス600は、図6Fの時計文字盤ユーザインタフェース634を表示している間に、または図6Aのようになどタッチスクリーンディスプレイ604がコンテンツを表示していない間に、監視のアクティブ化を要求するユーザ入力を受信する必要なしに、手洗いイベントに対応するセンサデータを連続的に監視し、センサデータを検出した後に、ユーザインタフェース640を表示する。
図6Gの拡大図602aに示すように、手洗いユーザインタフェース640は、図6Eからの手洗いリマインダ通知630を却下した6分後に、(例えば、午前)10:15を現在表示する時間インジケーション638を含む。さらに、手洗いユーザインタフェース640は、ある数(例えば、20秒を表す「20」)で開始するカウントダウンタイマー640aおよび進度インジケータ640b(例えば、泡の完全な円)を含む。いくつかの実施形態では、カウントダウンタイマー640aは、予め定められた持続時間(例えば、10秒、20秒、30秒)にわたってカウントする。いくつかの実施形態では、カウントダウンタイマー640aの予め定められた持続時間が、ユーザによって選択される。いくつかの実施形態では、カウントダウンタイマー640aは、(例えば、0または1で開始して)カウントアップする。いくつかの実施形態では、進度インジケータ640bは、手洗いイベントが進行するにつれて、円を作成する(例えば、描く)。手洗いユーザインタフェース640はまた、取消アフォーダンス640cを含む。いくつかの実施形態では、取消アフォーダンス640cの選択により、ユーザインタフェース640を却下し、図6Fに示すように時計文字盤ユーザインタフェース634を再表示し、同時にまた、この特定の手洗いイベントの追跡を終了する。いくつかの実施形態では、取消アフォーダンスの選択またはデバイス600の上のカバージェスチャの検出により、手洗いユーザインタフェース640を却下する(例えば、かつ図6Fの時計文字盤ユーザインタフェース634を再表示する)。
図6Hでは、着用状態図602bに示すように、ユーザは、移動矢印636aおよび636bによって示されるように、シンク610でユーザの手を洗う身体活動を継続する(例えば、身体活動(例えば、手洗い)が進行中である)。拡大図602aに示すように、手洗いユーザインタフェース640のカウントダウンタイマー640aは、図6Gの「20」から図6Hの「19」に変化しており、センサデータを検出して1秒が経過した(例えば、手洗いイベントが1秒間進行している)ことを示す。図6Gから図6Hまで、進度インジケータ640bは、円に示された泡の一部分(例えば、1/20)が反時計回り方向にはじけることをアニメーション化する。円に示された泡が時計回り方向にはじけること、または異なるカウントするアニメーションを含む、手洗いの進度を表示する様々な他の方法が想到される。デバイス600は、オーディオフィードバック642aおよび触知フィードバック644aを出力し続ける。いくつかの実施形態では、デバイス600は、1秒間隔でオーディオフィードバックを出力する(例えば、1秒ごとに1つの泡が破裂する)。いくつかの実施形態では、デバイス600は、1秒間隔ごとに異なるオーディオフィードバック(例えば、異なる泡がはじけるトーン)を出力する。いくつかの実施形態では、デバイス600は、途切れないオーディオフィードバックを出力する。いくつかの実施形態では、デバイス600は、1秒間隔で触知フィードバックを出力する。いくつかの実施形態では、デバイス600は、途切れない触知フィードバックを出力する。ユーザがユーザの手を洗う身体活動を継続する(例えば、手洗いイベントが継続する(例えば、進行する))と、手洗いユーザインタフェース640のカウントダウンタイマー640aは、センサデータを検出する秒をカウントダウンし続ける。進度インジケータ640bは、はじける泡をアニメーション化し続ける。
図6Iでは、着用状態図602bは、ユーザの腕606aおよび606bの位置によって示されるように、ユーザがシンク610でユーザの手を洗う身体活動を一時停止(例えば、停止)しており、シンク610がオフであることを示す。拡大図に示すように、手洗いの身体活動の一時停止に対応するものとしてデバイス600が特定するセンサデータを検出する(例えば、デバイス600がそのようなデータを一定期間にわたって検出した後に手洗いを示すセンサデータの中止を検出する)と、デバイス600は、カウントダウンタイマー640aが「14」で停止した状態の手洗いユーザインタフェース640を表示することによって、現在の手洗いイベントを一時停止し、デバイス600が現在の手洗いイベントに対応するセンサデータを6秒間検出した(例えば、手洗いイベントが6秒間進行した)ことを示している。いくつかの実施形態では、デバイス600は、ユーザがユーザの手を洗っていないことに対応するセンサデータに基づいて、現在の手洗いイベントを一時停止する。いくつかの実施形態では、デバイス600は、オーディオデータの変化(例えば、水がシンク610でもはや流れていないこと)に対応するセンサデータに基づいて、現在の手洗いイベントを一時停止する。
図6Iでは、デバイス600は、進度インジケータ640bをアニメーション化することを中止し、オーディオフィードバックおよび触知フィードバックを出力する。いくつかの実施形態では、デバイス600は、異なるオーディオフィードバックおよび/または触知フィードバックを出力する。手洗いイベントの一時停止に対応するセンサデータを検出した所定の時間(例えば、2秒)後に、デバイス600は、手洗いユーザインタフェース640上に手洗いの身体活動の継続を促すプロンプト646(「洗い続けてください」)を表示する。いくつかの実施形態では、デバイス600は、プロンプトの表示と共にオーディオフィードバックおよび/または触知フィードバックを出力する。
デバイス600がプロンプト646を表示した後に、所定の時間(例えば、5秒、8秒、10秒)内に手洗いの身体活動(例えば、手洗いイベント)を再び開始する(例えば、継続する、再開する)ことに対応するものとしてデバイス600が特定するセンサデータをデバイス600が検出した場合、デバイス600は、図6Jに示すように、カウントダウンタイマー640aおよび進度インジケータ640bのアニメーションを再開する。いくつかの実施形態では、デバイス600が(例えば、一時停止後の所定の時間内に)手洗いイベントを再び開始することに対応するセンサデータを検出しない場合、デバイス600は、手洗いユーザインタフェース640を表示することを中止し、以下でより詳細に論じられる、図6Mに示すような完了未遂ユーザインタフェース652を表示する。
図6Jでは、着用状態図602bに示すように、ユーザは、腕606aおよび606b並びに移動矢印648aおよび648bによって示されるように、シンク610でユーザの手を洗う身体活動を再開する。デバイス600は、手洗いの身体活動を再び開始する(例えば、再開する)ことに対応するものとしてデバイス600が特定するセンサデータを検出する。拡大図602aに示すように、センサデータを検出したことに応じて、デバイス600は、手洗いユーザインタフェース640上に「13」を表示することによって、カウントダウンタイマー640aを再開する。デバイス600はまた、進度インジケータ640bをアニメーション化することを再開し、オーディオフィードバック642aおよび触知フィードバック644aを出力する。したがって、タイマーは、デバイス600によって検出された身体活動の持続時間のタイマーであり、単なる時間の経過のタイマーではない。例えば、ユーザは、タイマーを進めることなく、繰り返し、停止および一時停止することができる。デバイス600が現在の手洗いイベントに対応するセンサデータを検出し続けると、デバイス600は、図6Kに示すようにカウントダウンタイマー640aおよび進度インジケータ640bが「1」に進行する間に、手洗いユーザインタフェース640の表示を維持する。
図6Kでは、拡大図602aで、デバイス600は、カウントダウンタイマー640aが「1」であり、かつ進度インジケータ640bがほぼ完了(例えば、はじけた泡の円の19/20)している状態の手洗いユーザインタフェース640を表示し、デバイス600がセンサデータを合計19秒間検出したことを示している。デバイス600はまた、図6Hに関して前述したように、オーディオフィードバック642aおよび触知フィードバック644aを出力する。着用状態図602bでは、ユーザは、図6Lまで、シンク610で、移動矢印648aおよび648bによって示されるように、ユーザの手を洗う身体活動を継続する。
図6Lでは、拡大図602aで、センサデータを合計20秒間にわたって検出すると、デバイス600は、タッチスクリーンディスプレイ604上に正常完了ユーザインタフェース650(「よくやりました!」)を表示する。デバイス600は、完了オーディオフィードバック642b(例えば、より大きな泡が破裂する音、より音量が大きな泡が破裂する音)および完了触知フィードバック644b(例えば、強い触覚振動)を同時に出力する。いくつかの実施形態では、完了オーディオフィードバック642bは、オーディオフィードバック642aと同じである。いくつかの実施形態では、完了触知フィードバック644bは、触知フィードバック644aと同じである。オーディオフィードバック642bおよび触知フィードバック644bは、少なくとも正常に完了した手洗いイベントに必要な閾値時間にわたって現在の手洗いイベントに対応するセンサデータをデバイス600が検出したことをユーザに示す。着用状態図602bに示すように、ユーザは、手洗いの身体活動を中止し、シンク610は、オフである(例えば、水は、流れていない)。いくつかの実施形態では、ユーザが少なくとも閾値時間(例えば、20秒)にわたって手を洗う場合に正常完了ユーザインタフェース650が表示されるため、正常完了ユーザインタフェース650は、ユーザが手洗い活動を継続している場合でも表示される。いくつかの実施形態では、正常完了ユーザインタフェース650は、ユーザがインタフェースに通知する確率を改善するために、ユーザが手洗いを完了したことをデバイス600が検出するまで表示されない。
手洗いイベントは、別個の電子デバイス(例えば、ペアリングされた電話機)上の対応するアプリケーションで追跡(例えば、ログ記録)され、この追跡機能の動作は、以下で図6V~図6Wを参照してより詳細に論じられる。対応するアプリケーションで追跡された手洗いイベントは、正常に完了した手洗いイベントと未遂の手洗いイベントに分離される。図6Lに関して説明したように、正常に完了した手洗いイベントは、少なくとも閾値時間(例えば、20秒)にわたって発生する手洗いイベントである。いくつかの実施形態では、未遂の手洗いイベントは、所定の時間(例えば、3秒)よりも長いが、閾値時間(例えば、20秒)未満にわたって発生する手洗いイベントである。いくつかの実施形態では、3秒未満にわたって発生する手洗いイベントは、対応するアプリケーションでは追跡されない。
図6Iに戻ると、デバイス600が所定の期間(例えば、5秒、8秒、10秒)内に手洗いイベントを再び開始する(例えば、再開する)ことに対応するセンサデータを検出しない場合、デバイス600は、手洗いユーザインタフェース640を表示することを中止し、図6Mの拡大図602aに示すように、完了未遂ユーザインタフェース652を表示する。完了未遂ユーザインタフェース652は、どれくらい長くデバイス600が現在の手洗いイベントのセンサデータを検出したか(例えば、6秒)を詳述する教育テキスト652aと、手洗いイベントが正常に完了した手洗いイベントと見なされるためのセンサデータを検出する閾値(例えば、推奨されるまたはユーザが選択した閾値)持続時間(例えば、20秒)と、を含む。いくつかの実施形態では、教育テキスト652aは、現在の手洗いイベントが正常に完了した手洗いイベントと見なされるために、どれくらいより長い間センサデータの検出を行う必要があったか(例えば、14秒)を含む。いくつかの実施形態では、教育テキスト652aは、過去の手洗いイベント持続時間との比較(例えば、ユーザが最後の手洗いイベントよりも長くユーザの手を洗った、「あなたは前回より5秒長く洗いました」)を含む。
図6Mの拡大図602aでは、完了未遂ユーザインタフェース652は、フィードバックアフォーダンス652b(「フィードバックを残す」)および完了アフォーダンス652cをさらに含む。完了アフォーダンス652cの選択に対応する入力(例えば、タップ)を検出した(例えば、受け取った)ことに応じて、デバイス600は、完了未遂ユーザインタフェース652を表示することを中止し、図6Fに関して説明したように、時計文字盤ユーザインタフェース634を表示する。図6Mに示すように、デバイス600は、フィードバックアフォーダンス652bでの入力654(例えば、タップ)を検出する(例えば、受け取る)。入力654を検出したことに応じて、デバイス600は、図6Nに示すように、フィードバックユーザインタフェース656を表示する。
図6Nでは、デバイス600は、タッチスクリーンディスプレイ604上にフィードバックユーザインタフェース656を表示する。フィードバックユーザインタフェース656は、アフォーダンス656a~656eを含む。図6Nの着用状態図602bに示すように、ユーザは、デバイス600上でジェスチャを実行する。拡大図602aに戻ると、フィードバックユーザインタフェース656を表示している間に、デバイス600は、却下アフォーダンス656eの選択に対応する入力658(例えば、タップ)を受け取る(例えば、検出する)。入力658を検出したことに応じて、デバイス600は、フィードバックユーザインタフェース656を表示することを中止し、図6Fに関して説明したように、時計文字盤ユーザインタフェース634を表示する。
いくつかの実施形態では、デバイス600は、アフォーダンス656a~656dの選択に対応する入力を受け取る。デバイスは、以下のように、これらの択一的入力に応答する。アフォーダンス656a(「私は手を洗っていませんでした」)上の入力を受け取ったことに応じて、デバイス600は、ユーザがユーザの手を洗う身体活動に関与していなかったという確認を受け取る。いくつかの実施形態では、そのようにマークされたイベントは、以下で図6Wを参照して論じられるログ記録(例えば、追跡)から除外される。アフォーダンス656b(「私は既に終了しました」)上の入力を受け取ったことに応じて、デバイス600は、ユーザがユーザの手を洗う身体活動を完了したという確認を受け取る。いくつかの実施形態では、そのようにマークされたイベントは、以下で図6Wを参照して論じられるログ記録について完了した手洗いイベントとして追跡される。アフォーダンス656c(「1時間ミュート」)上の入力を受け取ったことに応じて、デバイス600は、手洗い検出および追跡機能を1時間にわたって抑制する。アフォーダンス656d(「今日はミュート」)上の入力を受け取ったことに応じて、デバイス600は、当日の残りにわたって手洗い検出および追跡機能を抑制する。いくつかの実施形態では、手洗い検出および追跡機能を抑制することにより、バックグラウンドでの手洗いイベントの追跡を維持しながら、図6Gに関して説明したように、手洗いユーザインタフェース640の表示が無効化される。いくつかの実施形態では、手洗い検出および追跡機能を抑制することにより、手洗いユーザインタフェース640の表示およびバックグラウンドでの手洗いイベントの追跡が無効化される。
ここで図6Oを参照すると、拡大図602aで、デバイス600は、タッチスクリーンディスプレイ604上にトレーニングユーザインタフェース660を表示することによって示されるように、現在、トレーニングアプリケーションを実行している。いくつかの実施形態では、デバイス600は、様々なウォッチアプリケーション(例えば、トレーニング、音楽、電話通話、または音声記録)のうちの1つを実行している。着用状態図602bでは、ユーザの腕606aおよび606bは、非手洗い位置(例えば、トレーニングのための自然な位置)にある。トレーニングユーザインタフェース660を表示している間に、デバイス600は、図6Pに示すように、手洗いイベントの開始に対応するものとしてデバイス600が特定するセンサデータを(例えば、マイクロフォン113および加速度計168を用いて)検出する。
図6Pでは、着用状態図602bは、移動矢印662aおよび662bによって示されるように、ユーザがシンク610でユーザの手を洗う身体活動を開始していることを示す。拡大図602aに示すように、図6Gと同様に、センサデータを検出すると(例えば、センサデータの検出に応じて)、デバイス600は、手洗いユーザインタフェース640を表示し、オーディオフィードバック642a(例えば、複数の小さな泡が破裂する音)および触知フィードバック644a(例えば、軽い触覚振動)を出力する。加えて、デバイス600は、進度インジケータ640bの上にトレーニングインジケータ664を表示する。トレーニングインジケータ664は、表示された手洗いユーザインタフェース640と同時に、トレーニングアプリケーションがデバイス600上で実行していることを示す。いくつかの実施形態では、デバイス600は、トレーニングインジケータ664の位置に、様々なウォッチアプリケーション(例えば、トレーニング、音楽、電話通話、または音声記録)から実行される1つのアプリケーションに固有のインジケータを表示する。
図6Pでは、拡大図602aで、デバイス600は、ジェーン・アップルシードからのテキストメッセージ666に対応するデータを受信する。手洗いユーザインタフェース640を表示している間に、デバイス600は、配信矢印666aの上のブロック記号666bによって示されるように、テキストメッセージ666に対応する通知を抑制する(例えば、表示しない)ことによって、一時的集中状態をアクティブにする。いくつかの実施形態では、テキストメッセージ666は、サイレントで(例えば、通知を表示することなく)配信される。いくつかの実施形態では、テキストメッセージ666は、現在の手洗いイベントの完了後の配信のためにキューに入れられる。いくつかの実施形態では、重要な通知(例えば、緊急警告、電話通話、優先連絡先からの通信)は、一時的集中状態にオーバーライドし、デバイス600は、対応する通知を表示する。いくつかの実施形態では、デバイス600は、重要な通知を表示し、バックグラウンドでの手洗いイベントに対応するセンサデータの追跡を維持する。いくつかの実施形態では、デバイス600は、重要な通知を表示し、手洗いイベントに対応するセンサデータの追跡を中止する。
図6Qに示すように、拡大図602aで、現在の手洗いイベントに対応するセンサデータを合計20秒間にわたって検出すると、デバイス600は、タッチスクリーンディスプレイ604上に正常完了ユーザインタフェース650(「よくやりました!」)を表示する。デバイス600は、完了オーディオフィードバック642b(例えば、より大きな泡が破裂する音、より音量が大きな泡が破裂する音)および完了触知フィードバック644b(例えば、強い触覚振動)を同時に出力する。デバイス600は、正常完了ユーザインタフェース650と共にトレーニングインジケータ664を表示し続ける。デバイス600は、図6Rでテキストメッセージ通知ユーザインタフェース668を表示することによって、テキストメッセージ666に対応する通知を配信する。いくつかの実施形態では、テキストメッセージ666は、サイレントで配信され(例えば、メッセージングアプリケーションを用いて確認することができる)、デバイス600は、手洗いイベントの完了時にテキストメッセージ通知ユーザインタフェース668を表示しない。
ここで図6Sを参照すると、拡大図602aで、デバイス600は、タッチスクリーンディスプレイ604上に電話ユーザインタフェース670を表示することによって示されるように、現在、電話通話に対応する電話アプリケーションを実行している。着用状態図602bは、移動矢印672aおよび672bによって示されるように、ユーザがシンク610でユーザの手を洗う身体活動を開始していることを示す。電話アプリケーションを実行している間に、かつセンサデータを検出すると(例えば、センサデータの検出に応じて)、デバイス600は、電話ユーザインタフェース670の表示を維持する。いくつかの実施形態では、デバイス600は、電話通話アプリケーションの実行を維持し、同時に、バックグラウンドでの手洗いイベントに対応するセンサデータの追跡を開始する。いくつかの実施形態では、デバイス600は、電話アプリケーションを実行している間に、手洗いイベントに対応するセンサデータを追跡することを取り止める。電話通話が終了したことを検出すると、デバイス600は、図6Tに示すように、時計文字盤ユーザインタフェース634を表示する。
図6Tでは、デバイス600は、電話通話が終了した後、拡大図602aの時計文字盤ユーザインタフェース634を表示している。着用状態図602bに示すように、ユーザは、移動矢印672aおよび672bによって示されるように、シンク610でユーザの手を洗う身体活動を継続する(例えば、維持する)。いくつかの実施形態では、デバイス600は、バックグラウンドでの手洗いイベントに対応するセンサデータの追跡を維持しながら、時計文字盤ユーザインタフェース634の表示を維持する。いくつかの実施形態では、デバイス600は、手洗いイベントが正常に完了したと見なされるための最小閾値持続時間を満たすための、現在の手洗いイベントに対応するセンサデータの検出の残りの持続時間を表示するカウントダウンタイマー640aを含む、図6Gに示すような手洗いユーザインタフェース640を表示する。そのような実施形態では、デバイス600はまた、対応する部分的な泡の円を進度インジケータ640bが表示している状態で手洗いユーザインタフェース640を表示し、オーディオおよび触知フィードバックを出力する。いくつかの実施形態では、デバイス600は、手洗いイベントに対応するセンサデータを追跡することなく、時計文字盤ユーザインタフェース634の表示を維持する。
図6Uは、左側にデバイス601を示し、右側にデバイス600を示している。デバイス601は、スマートウォッチであるデバイス600とぺアリングされた(例えば、通信する)スマートフォンである。いくつかの実施形態では、デバイス601は、デバイス100、300、および500の1つ以上の特徴または要素を含む。デバイス601は、タッチスクリーンディスプレイ603上に、手洗い設定ユーザインタフェース674を表示する。手洗い設定ユーザインタフェース674は、手洗い検出および追跡機能に関する記述テキストと、手洗い検出アフォーダンス674aと、手洗いリマインダアフォーダンス674bと、を含む。手洗い検出アフォーダンス674aは、オン位置に設定されたトグルを含み、これにより、図6F~図6Lに関して説明したように、手洗いイベントの開始に対応するものとしてデバイス600が特定するセンサデータをデバイス600が検出することが可能になる。手洗い検出アフォーダンス674aのトグルの選択は、トグルをオフ位置に更新し、デバイス600が手洗いイベントに対応するセンサデータを検出することを無効化する。手洗いリマインダアフォーダンス674bは、オン位置に設定されたトグルを含み、これにより、デバイス600が図6Eに関して説明したものと同様の手洗いリマインダ通知を表示することを可能にする。手洗いリマインダアフォーダンス674bのトグルの選択は、トグルをオフ位置に更新し、デバイス600が手洗いリマインダ通知を表示することを無効化する。いくつかの実施形態では、手洗い検出アフォーダンス674aおよび手洗いリマインダアフォーダンス674bは、独立して動作する。いくつかの実施形態では、手洗い検出アフォーダンス674aのトグルのオフ位置はまた、手洗いリマインダアフォーダンス674bおよび手洗いリマインダ通知を無効化する。
さらに、図6Uは、タッチスクリーンディスプレイ604上に、手洗い設定ユーザインタフェース676を表示するデバイス600を示す。手洗い設定ユーザインタフェース676は、手洗い検出および追跡機能の手洗いに関する記述テキストと、手洗い検出アフォーダンス676aと、手洗いリマインダアフォーダンス676bと、を含む。手洗い検出アフォーダンス676aは、オン位置に設定されたトグルを含み、これにより、図6F~図6Lに関して説明したように、手洗いイベントの開始に対応するものとしてデバイス600が特定するセンサデータをデバイス600が検出することが可能になる。手洗い検出アフォーダンス676aのトグルの選択は、トグルをオフ位置に更新し、デバイス600が手洗いイベントに対応するセンサデータを検出することを無効化する。手洗いリマインダアフォーダンス676bは、オン位置に設定されたトグルを含み、これにより、デバイス600が図6Eに関して説明したものと同様の手洗いリマインダ通知を表示することが可能になる。手洗いリマインダアフォーダンス676bのトグルの選択は、トグルをオフ位置に更新し、デバイス600が手洗いリマインダ通知を表示することを無効化する。デバイス601とデバイス600はペアリングされているため、デバイス601の手洗い設定ユーザインタフェース674とデバイス600の手洗い設定ユーザインタフェース676とは、同期され、設定は、どちらのデバイスからも更新することができる。
ここで図6Vを参照すると、デバイス601は、タッチスクリーンディスプレイ603上に、健康ユーザインタフェース678を表示する。健康ユーザインタフェース678は、追跡されたユーザの手洗いデータを含むコンパニオンアプリケーション(例えば、デバイス600と通信するデバイスのアプリケーション(例えば、健康アプリ)の一部である。健康ユーザインタフェース678は、様々な追跡されたユーザデータに対応する複数の健康関連アフォーダンスを含む。具体的には、手洗いアフォーダンス678aは、図6A~図6Tで論じられた手洗い検出および追跡機能に対応する。手洗いアフォーダンス678aは、完了した手洗いイベントおよび未遂の(例えば、開始されたが、完了していない)手洗いイベントの数のメトリック(例えば、「5回のうちの4回完了」)を含む。いくつかの実施形態では、デバイス600は、バックグラウンドで手洗いイベントを追跡し(例えば、手洗いユーザインタフェース640を表示せず)、コンパニオンアプリケーションで手洗いイベントをログ記録(例えば、追跡)する。デバイス601は、手洗いアフォーダンス678aの選択に対応する入力680(例えば、タップ)を検出する(例えば、受け取る)。入力680を検出したことに応じて、デバイス601は、図6Wに示すように、タッチスクリーンディスプレイ603上に、手洗いデータユーザインタフェース682を表示する。
図6Wでは、デバイス600は、タッチスクリーンディスプレイ603上に、グラフ領域682aおよび期間選択アフォーダンス682b(例えば、日、週、月、年)を含む手洗いデータユーザインタフェース682を表示する。期間選択アフォーダンス682bは、現在、x軸に沿った1日の期間でグラフ領域682aを表示するために選択された「D」を示す。グラフ領域682aのy軸は、手洗いイベントの数を示す。グラフ領域682aは、x軸に沿った午前6時での黒色バーによって示されるように、午前6時の後、かつ午後12時の前に、2つの完了した手洗いイベントを示す。さらに、グラフ領域682aは、午後12時の後、かつ午後6時の前に、x軸に沿った午後12時でのバーの黒色部分によって示されるように、2つの完了した手洗いイベントと、バーの白色部分によって示されるように、1つの未遂の手洗いイベントと、を示す。
図7A~図7Cは、いくつかの実施形態に係る、電子デバイスを使用して身体活動イベントの実行を追跡する方法を示すフロー図である。方法700は、1つ以上の知覚出力生成構成要素(例えば、604、110、161)(例えば、ディスプレイ(例えば、タッチスクリーンディスプレイ)、スピーカ、触知出力生成器)および1つ以上のセンサ(例えば、113、168)(例えば、ジャイロスコープ、加速度計、マイクロフォン、タッチ感知面)と通信する、コンピュータシステム(例えば、600、601)(例えば、スマートウォッチ、スマートフォン)において実行される。方法700のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
いくつかの実施形態では、電子デバイス(例えば、600、601)は、コンピュータシステムである。コンピュータシステムは、任意選択的に、1つ以上の知覚出力生成構成要素および1つ以上のセンサと通信(例えば、有線通信、無線通信)する。知覚出力生成構成要素は、オーディオ出力、触覚出力、またはCRTディスプレイを介した表示、LEDディスプレイを介した表示、若しくは画像投影を介した表示などの視覚出力のうちの1つ以上を提供するように構成されている。いくつかの実施形態では、知覚出力生成構成要素は、コンピュータシステムと一体化されている。いくつかの実施形態では、知覚出力生成構成要素は、コンピュータシステムとは別個である。したがって、コンピュータシステムは、(例えば、表示デバイスを使用して)コンテンツを知覚的に生成するために、有線または無線接続を介して、データ(例えば、オーディオデータ、触覚データ、画像データ、またはビデオデータ)を一体型または外部の知覚出力生成構成要素に送信することができる。
後述するように、方法700は、身体活動イベントの実行を追跡する直感的な方法を提供する。この方法は、身体活動イベントの実行を追跡する際のユーザの認識的負担を低減し、それによって、より効率的なヒューマン-マシンインタフェースを作り出す。バッテリ駆動式コンピューティングデバイスの場合、ユーザがより迅速かつ効率的に身体活動イベントの実行を追跡できるようにすることにより、電力を節約し、バッテリ充電の間隔が増す。
方法700では、コンピュータシステムは、1つ以上のセンサによって、コンピュータシステムのユーザが第1のタイプの身体活動(例えば、図6Gの手洗い)を開始することに対応するセンサデータの第1のセット(例えば、図6Gのデバイス600によって(例えば、113および/または168から)検出されたデータ)(例えば、ユーザの手がパターンで移動すること示す加速度計および/またはジャイロスコープのデータ、特定の周囲音(例えば、水が流れていること)を示すオーディオデータ)を検出する(702)。いくつかの実施形態では、センサデータの第1のセットは、活動基準の第1のセット(例えば、満たされたときに、既定のパラメータと一致する活動イベント(例えば、手洗いイベント)としてユーザ活動(例えば、移動)が認定されることを示す基準のセット)を満たす。いくつかの実施形態では、活動基準の第1のセットは、(例えば、付属書類Aに開示された技術のうちの1つ以上に基づく)手洗いイベント基準のセットである。
コンピュータシステムのユーザ(例えば、腕が606aおよび606bとして示されるユーザ)が第1のタイプの身体活動を開始することに対応するセンサデータの第1のセットを検出したことに応じて(704)、コンピュータシステムは、特定の(例えば、所定の)持続時間のタイマー(例えば、カウントダウンタイマー640aに対応するタイマー(例えば、20秒))を開始する(例えば、自動的に開始する)(706)。
コンピュータシステムのユーザ(例えば、腕が606aおよび606bとして示されるユーザ)が第1のタイプの身体活動を開始することに対応するセンサデータの第1のセットを検出したことに応じて(704)、コンピュータシステムは、1つ以上の知覚出力生成構成要素を用いて、特定の持続時間のタイマーが動作している(例えば、アクティブに時間を測定している、一時停止されていない、実行されている)ことを示す第1の知覚フィードバック(例えば、640、642a、644a)を出力する(708)。いくつかの実施形態では、知覚インジケーションは、第1のタイプの身体活動が検出され続けている間に継続する、視覚カウントまたはオーディオカウント(カウントアップまたはカウントダウン)である。
第1のタイマーを開始した後に(710)、かつ第1のタイプの身体活動が進行中であるとの判定に従って(例えば、第1のタイプの身体活動に対応するセンサデータを検出し続けることに従って)、コンピュータシステムは、特定の持続時間のタイマーが動作していることを示す第1の知覚フィードバックを出力し続ける(712)。
第1のタイマーを開始した後に(710)、コンピュータシステムは、1つ以上の終了基準のセット(例えば、手洗いの中止に対応する図6Iで論じた基準、手洗いの完了に対応する図6Lで論じた基準)を検出する(714)。いくつかの実施形態では、1つ以上の終了基準のセットは、満たされた複数の基準である(そのそれぞれが、満たされると、タイマーの終了となる)(例えば、タイマーの終了基準)。
第1のタイマーを開始した後に(710)、かつ1つ以上の終了基準のセットが満たされたことを検出したことに応じて(716)、かつ第1のタイプの身体活動が少なくとも特定の持続時間(例えば、図6Gに関して論じたように20秒)にわたって継続したことに基づいて1つ以上の終了基準のセットが満たされたとの判定に従って、コンピュータシステムは、1つ以上の知覚出力生成構成要素を介して、第1のタイプの身体活動が特定の持続時間にわたって検出されたことを示す第2の知覚フィードバック(628、624B、626B)(例えば、オーディオフィードバック、視覚フィードバック、触覚フィードバック)を出力する(718)。いくつかの実施形態では、1つ以上の終了基準のセットが満たされたことを検出したことに応じて、タイマーの動作を中止する(例えば、タイマーを一時停止する、タイマーを終了する)。第1のタイプの身体活動が特定の持続時間にわたって検出されたことを示す知覚フィードバックを提供することにより、システムによって検出されているセンサデータに関するフィードバックをユーザに提供する。改善されたフィードバックをユーザに提供することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。特定の持続時間のタイマーが動作していることを示す第1の知覚フィードバックを提供することにより、ユーザがコンピュータシステムを適切に動作させる(例えば、システムによって検出可能な様式で身体活動を適切に実行し続ける)ことが可能になる。例えば、コンピュータシステム内で実施されている内部状態は、動的に変化し、異なる知覚フィードバックが結果として出力される。動的知覚フィードバックのそのような提示により、コンピュータシステムと対話するようにユーザに促し、コンピュータシステムの操作性を向上させる。
いくつかの実施形態では、1つ以上の終了基準のセット(例えば、手洗いの中止に対応する図6Iで論じた基準、手洗いの完了に対応する図6Lで論じた基準)が満たされたことを検出したことに応じて、かつタイマーが特定の持続時間(例えば、図6Gに関して論じたように20秒)に達する前に第1のタイプの身体活動(例えば、図6Gの手洗い)が停止したために終了基準が満たされたとの判定に従って、コンピュータシステムは、第1のタイプの身体活動がもはや検出されていない(例えば、1つ以上のセンサによってもはや検出されていない、タイマーが実行されている間に少なくとも所定の長さの時間(例えば、5秒、1秒、8秒)にわたって活動が検出されなかった)ことを示す第3の知覚フィードバック(例えば、646)(例えば、オーディオフィードバック、視覚フィードバック、触覚フィードバック)を提供する(720)。いくつかの実施形態では、タイマーは、1つ以上の終了基準のセットが満たされたことを検出したことに応じて、かつタイマーが特定の持続時間に達する前に身体活動が停止したために終了基準が満たされたとの判定に従って、一時停止される(が、直ちに取り消されない)。第1のタイプの身体活動がもはや検出されていないことを示す知覚フィードバックを提供することにより、システムによって検出されているセンサデータに関するフィードバックをユーザに提供する。改善されたフィードバックをユーザに提供することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。
いくつかの実施形態では、第3の知覚フィードバック(例えば、646)を提供した後に、かつ第3の知覚フィードバックを提供した後に第2の特定の持続時間(例えば、手洗いの中止に対応する図6Iで論じた持続時間、手洗いの再開に対応する図6Jで論じた持続時間)(例えば、所定の期間、5秒、8秒、10秒)内に1つ以上のセンサによって第1のタイプの身体活動(例えば、図6Gの手洗い)が検出されない(例えば、再び検出されない、再開されない)との判定に従って、コンピュータシステムは、第1のタイプの身体がタイマーの特定の持続時間にわたって実行されなかったことを示す第4の知覚フィードバック(例えば、652)(例えば、「あなたは5秒間活動を実行しましたが、推奨時間は20秒です」)を提供する。第1のタイプの身体がタイマーの特定の持続時間にわたって実行されなかったことを示す知覚フィードバックを提供することにより、システムによって検出されているセンサデータに関するフィードバックをユーザに提供する。改善されたフィードバックをユーザに提供することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。
いくつかの実施形態では、第1のタイプの身体活動(例えば、図6Gの手洗い)がタイマーの特定の持続時間にわたって実行されなかったことを示す第4の知覚フィードバック(例えば、652)を提供した後に、コンピュータシステムは、選択されると、第1のタイプの身体活動がコンピュータシステムのユーザによって実行されていなかったことをログ記録する(例えば、記録する、それを示す情報を記憶する)(例えば、センサデータの第1のセットがコンピュータシステムのユーザによる第1のタイプの身体活動の実際の実行に対応しなかったことをログ記録する)、第1の選択可能なユーザインタフェースオブジェクト(例えば、656a)を表示する。いくつかの実施形態では、ユーザは、ユーザが第1のタイプの身体活動を実行していなかったことを報告するためのアフォーダンスを提示される。選択されると、第1のタイプの身体活動がコンピュータシステムのユーザによって実行されていなかったことをログ記録する、第1の選択可能なユーザインタフェースオブジェクトを表示することにより、システムによって収集されたセンサデータに関する追加情報を提供する能力をユーザに提供し、マシン-ヒューマン対話を改善する。追加の機能を提供し、マシン-ヒューマン対話を改善することにより、コンピュータシステムの操作性を向上させ、マシン-ユーザインタフェースをより効率的かつ効果的(例えば、コンピュータ動作および機能をユーザに提供するのに効果的)にする。
いくつかの実施形態では、第1のタイプの身体活動(例えば、図6Gの手洗い)がタイマーの特定の持続時間にわたって実行されなかったことを示す第4の知覚フィードバック(例えば、652)を出力した後に、かつログ記録基準のセットが満たされたとの判定に従って、コンピュータシステムは、複数の健康関連機能(例えば、678a、図6Vの678のアフォーダンス)のデータを収集および提示する第1のアプリケーション(例えば、678)(例えば、健康データ集約アプリケーション)において、第1のタイプの身体活動の発生(例えば、678aのテキスト「5回のうちの4回完了」、682aのバーの白色部分)が検出されたが、タイマーの特定の持続時間にわたって実行されなかった(例えば、検出されなかった)ことをログ記録する(例えば、記録する)(例えば、第1のタイプの身体活動の不完全な発生をログ記録する)。第1のタイプの身体活動の発生が検出されたが、タイマーの特定の持続時間にわたって実行されなかったことをログ記録することにより、コンピュータシステムによって収集されたセンサデータに関するフィードバックを得るために、ユーザがアクセスすることができる第1のアプリケーションで記録を生成する。センサデータログにアクセスするオプションを提供することにより、コンピュータシステムの操作性を向上させ、(例えば、ユーザがデータにアクセスするのを支援することによって)ユーザ-デバイスインタフェースをより効率的にし、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにする。
いくつかの実施形態では、ログ記録基準のセットは、第1のタイプの身体活動の第1の発生が少なくとも第3の特定の持続時間(例えば、未遂の手洗いイベントに対応する図6Lで論じた持続時間)(例えば、第1の特定の持続時間未満の持続時間、3秒、5秒、10秒)にわたって検出されたときに満たされる基準を含む。いくつかの実施形態では、閾値時間未満にわたって検出される活動発生は、ログ記録されない。
いくつかの実施形態では、第3の知覚フィードバック(724)は、第1のタイプの身体活動(例えば、図6Gの手洗い)の継続(例えば、再開)を促すプロンプト(例えば、646)(例えば、オーディオプロンプト、視覚プロンプト)である。身体活動の継続を促すプロンプトを提供することにより、ユーザがコンピュータシステムを適切に動作させる(例えば、システムによって検出可能な様式で身体活動を適切に実行し続ける)ことを可能にし、システムがもはや身体活動を検出していないというフィードバックをユーザに提供する。例えば、コンピュータシステム内で実施されている内部状態は、動的に変化し、異なる知覚フィードバックが結果として出力される。動的知覚フィードバックのそのような提示により、コンピュータシステムとさらに対話するようにユーザに促し、コンピュータシステムの操作性を向上させる。
いくつかの実施形態では、1つ以上の終了基準のセット(例えば、手洗いの中止に対応する図6Iで論じた基準、手洗いの完了に対応する図6Lで論じた基準)が満たされたことを検出したことに応じて、かつタイマーが特定の持続時間(例えば、図6Gに関して論じたように20秒)に達する前に第1のタイプの身体活動が停止したために終了基準が満たされたとの判定に従って、コンピュータシステムは、タイマー(例えば、カウントダウンタイマー640aに対応するタイマー(例えば、14秒))の動作を一時停止する(例えば、タイマーの進行を停止する)。
いくつかの実施形態では、第3の知覚フィードバック(例えば、646)を提供した後に、かつタイマーの動作を一時停止した後に、かつ第1のタイプの身体活動(例えば、図6Gの手洗い)が1つ以上のセンサによって検出される(例えば、再び検出される)との判定に従って、コンピュータシステムは、タイマーの動作を再開する(例えば、タイマーが一時停止された同じ点で再開する)。身体活動を再び検出することに基づいてタイマーを再開することにより、タイマーが検出されたセンサデータと同期されることを保証し、タイマーの精度を改善する。検出されたセンサデータに対してタイマーの精度を改善することにより、コンピュータシステムの動作を向上させる。
いくつかの実施形態では、特定の持続時間は、予め定められた持続時間(例えば、図6Gに関して論じたように20秒)(例えば、10秒、20秒、30秒)である。
いくつかの実施形態では、第1のタイプの身体活動が特定の持続時間(例えば、図6Gに関して論じたように20秒)にわたって検出されたことを示す第2の知覚フィードバック(例えば、640、642a、642b、644a、644b、650)を出力した後に、コンピュータシステムは、複数の健康関連機能のデータを収集および提示する第2のアプリケーション(例えば、678)(例えば、健康データ集約アプリケーション、第1のアプリケーションと同じアプリケーション)において、第1のタイプの身体活動の発生(例えば、678aのテキスト「5回のうちの4回完了」、682aのバーの黒色部分)が特定の持続時間にわたって検出されたことをログ記録する(例えば、記録する)(例えば、完了した身体活動の1つのインスタンスが検出されたことを記録する)。第1のタイプの身体活動の発生が特定の持続時間にわたって検出されたことをログ記録することにより、コンピュータシステムによって収集されたセンサデータに関するフィードバックを得るために、ユーザがアクセスすることができる第1のアプリケーションで記録を生成する。センサデータログにアクセスするオプションを提供することにより、コンピュータシステムの操作性を向上させ、(例えば、ユーザがデータにアクセスするのを支援することによって)ユーザ-デバイスインタフェースをより効率的にし、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにする。
いくつかの実施形態では、センサデータの第1のセットを検出する前に、コンピュータシステムは、第1のタイプの第1の動作(例えば、660、670)(例えば、電話通話、メディア再生、運動活動追跡、音声記録)の実行を開始する。
いくつかの実施形態では、コンピュータシステムは、特定の持続時間(例えば、図6Gに関して論じたように20秒)のタイマーを開始した後に、第1のタイプの第1の動作を実行し続ける(例えば、第1のタイプの第1の動作の実行は、センサデータの第1のセットを検出することまたはタイマーを開始することによって影響を受けない)。いくつかの実施形態では、実行されている、第1のタイプとは異なる第2のタイプの動作は、センサデータの第1のセットを検出したことに応じて、終了/停止される。
いくつかの実施形態では、特定の持続時間のタイマーが時間を測定している(例えば、アクティブに時間を測定している、一時停止されていない)間に、コンピュータシステムは、第1のタイプの第1の動作(例えば、660)に対応するインジケーション(例えば、664)(例えば、グラフィックインジケーション、テキストインジケーション)を表示する。いくつかの実施形態では、アプリケーションのアクティブなセッションがバックグラウンドで実行されていることを示すアイコンが表示される。タイマーが時間を測定している間に第1のタイプの第1の動作に対応するインジケーションを表示することにより、第1の動作の状態に関するフィードバックをユーザに提供する。改善された視覚フィードバックをユーザに提供することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。
いくつかの実施形態では、第1のタイプの身体活動(例えば、図6Gの手洗い)は、コンピュータシステムのユーザによる手洗い(例えば、水(例えば、流水)を使用した1つ以上の手の洗浄)である(例えば、602b)。いくつかの実施形態では、手洗いは、付属書類Aに開示される技術のうちの1つ以上に基づいて検出される。
いくつかの実施形態では、コンピュータシステムは、(例えば、630aのテキストによって示されるように)コンピュータシステムの位置が既定の位置(例えば、ユーザの自宅、ユーザの職場)に対応するときに満たされる基準を含むプロンプト基準のセット(例えば、図6Eに関して論じた基準)が満たされたことを検出する(726)。
いくつかの実施形態では、プロンプト基準のセットが満たされたことを検出したことに応じて、コンピュータシステムは、コンピュータシステムのユーザが第1のタイプの身体活動(例えば、図6Gの手洗い)を実行するための第1のプロンプト(例えば、630)(例えば、オーディオプロンプト、視覚プロンプト)(例えば、ユーザの手を洗うためのリマインダ)を出力する(728)。
いくつかの実施形態では、プロンプト基準は、コンピュータシステムの位置が既定の位置に対応するときに満たされる基準を含まない。そのような実施形態では、プロンプト基準は、現在時刻が所定の時刻に一致すること、第1のタイプの身体活動(例えば、摂食、運動)を検出すること、所定のイベント(例えば、カレンダー項目)の発生、およびユーザが設定したリマインダ(例えば、リマインダがアクティブ化された所定の時間後に発生するリマインダ(例えば、2時間のリマインダ)、再発時刻(例えば、毎日午後5時)に発生するリマインダ)からなる群から選択される1つ以上の基準を含む。コンピュータシステムのユーザに第1のタイプの身体活動を実行するように促すプロンプトを提供することにより、システムによって検出された条件に関するフィードバックをユーザに提供し、更なるシステム-ユーザ対話を促進する。改善された視覚フィードバックをユーザに提供し、システム-ユーザ対話を促進することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。
いくつかの実施形態では、プロンプト基準のセットは、ユーザが位置に到着した後の所定の時間にわたって位置に留まったときに満たされる基準を含む。いくつかの実施形態では、プロンプト基準のセットは、位置に到着した後の所定の時間(例えば、5分、10分)の間に第1のタイプの身体活動が検出されなかったときに満たされる基準を含む。いくつかの実施形態では、プロンプト基準のセットは、コンピュータシステムが位置に到着した後の所定の時間(例えば、5分、10分)内に第1のタイプの身体活動を検出した場合に満たされない。
いくつかの実施形態では、コンピュータシステムは、第1のタイプの身体活動(例えば、図6Gの手洗い)の実行に対応する記録されたデータが通知基準のセット(例えば、閾値時間に対応する図6Lで論じられた基準)を満たすことを検出する。いくつかの実施形態では、通知基準のセットは、身体活動の発生の回数が目標数を上回るとき、または身体活動の最後の発生の持続時間が所定の数(例えば、身体活動の以前の発生の持続時間)を上回るときに満たされる。
いくつかの実施形態では、第1のタイプの身体活動の実行に対応する記録されたデータが通知基準のセットを満たしたことを検出したことに応じて、コンピュータシステムは、情報(例えば、身体活動の発生のカウント)、身体活動が検出された長さのインジケーション、身体活動の1回以上の発生が検出された時間の長さ、記録されたデータに基づく(例えば、それから導出された、それから導出された、そのサブセットである)身体活動の異なる発生の時間の長さの比較(例えば、持続時間が最後の発生から増加したというインジケーション)を含む第1の通知(例えば、642b、644b、650)(例えば、オーディオ通知、視覚通知)を出力する。第1のタイプの身体活動の実行に対応する記録されたデータに基づく情報を含む通知を提供することにより、システムによって検出された条件に関するフィードバックをユーザに提供し、更なるシステム-ユーザ対話を促進する。改善された視覚フィードバックをユーザに提供し、システム-ユーザ対話を促進することにより、コンピュータシステムの操作性を向上させ、(例えば、デバイスを操作する/デバイスと対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、ユーザがコンピュータシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、コンピュータシステムのバッテリ寿命を改善する。
図1AZ~図1BZは、本開示の実施例に係る、1つ以上のセンサに基づいて個々の健康関連イベントを検出するための例示的なシステムを示す。図1AZは、本開示の実施例に係る、一体型タッチスクリーン152zと、1つ以上のセンサ160z(例えば、加速度計、マイクロフォン、光センサなど)と、個々の健康関連イベント(例えば、手洗いイベント)を検出するようにプログラムされた処理回路と、を含むことができる例示的なウェアラブルデバイス150z(例えば、ウォッチ)を示す。ウェアラブルデバイス150zは、例えば、ストラップ154zを使用してユーザに取り付けることができる。ウェアラブルデバイス150zは、タッチスクリーンを含むが、本明細書に記載の個々の健康関連イベントの検出は、タッチ感知ディスプレイ若しくは非タッチ感知ディスプレイを有さないまたは有さないデバイスに適用することができることが理解される。図1AZに示されるウェアラブルデバイス150zは、ウェアラブルデバイスの一実施例であるが、個々の健康関連イベントの検出は、他のウェアラブルデバイス(例えば、リング、スマートバンド、健康バンド、フィンガーカフ、リストカフ、グローブなど)に部分的または全体的に実装することができることが理解される。
図1BZは、本開示の実施例に係る、図1AZの例示的なウェアラブルデバイス150zを含む、個々の健康関連イベントを検出するためのシステムの例示的なブロック図100zを示す。ブロック図100zは、ウェアラブルデバイス150zに対応する電子デバイスを含むことができる。ウェアラブルデバイス150zは、例えば、1つ以上の光エミッタ102zおよび1つ以上の光センサ104zを含む光感知システムを含むことができる。ウェアラブルデバイス150zは、例えば、1つ以上の加速度計106zを含む動き感知システムを含むことができる。ウェアラブルデバイス150zは、例えば、マイクロフォン122zを含むオーディオ感知システムを含むことができる。ウェアラブルデバイス150zはまた、タッチスクリーン152zを含むことができる。任意選択的にホストプロセッサ108zおよび低電力プロセッサ109zを含むウェアラブルデバイス150zの処理回路は、光感知システム、動き感知システム、オーディオ感知システム、およびタッチスクリーン152zからのデータを操作および/または処理するようにプログラムすることができる。いくつかの実施例では、光感知システム、動き感知システム、オーディオ感知システム、および/またはタッチスクリーンは、入出力(I/O)デバイス110zを介して処理回路に結合することができる。I/Oデバイス110zは、いくつかの実施例では、光感知システム、動き感知システム、および/またはオーディオ感知システムからのアナログ信号を、処理回路によって処理するためにデジタル信号に変換するための1つ以上のアナログ-デジタルコンバータ(analog-to-digital converter、ADC)を含むことができる。
ブロック図100zのこれらの上述した構成要素は、ウェアラブルデバイス150z内に組み込むことができ、ウェアラブルデバイス150zは、ストラップ154zによってユーザに取り付けることができる、または他の方法でユーザの皮膚(例えば、ユーザの手首)に固定することができる、または他の方法でユーザが着用する衣類(例えば、ユーザのシャツの袖)に取り付けることができる。光エミッタ(単数または複数)102zおよび光センサ(単数または複数)104zは、1つ以上の光エミッタ102z(例えば、1つ以上の発光ダイオード)からの光の一部分を他の可能性の中でも皮膚114z、血管系、および/または血液によって吸収することができ、かつ一部分を1つ以上の光センサ104z(例えば、フォトダイオード)へと反射させて戻すことができるように、ユーザの皮膚に近接して配置することができる。例えば、光センサ(単数または複数)104zは、この光を反射光の強度を示す電気信号に変換することができる。光センサ(単数または複数)104zは、いくつかの実施例では、光エミッタ(単数または複数)102zと同じ場所に(例えば、ウェアラブルデバイス150zの背面上に)配置することができる。光センサ(単数または複数)104zからの信号は、心拍数、心電図、血中酸素濃度などを含む生理学的状態のインジケーションを含むことができる光電式指尖容積脈波(photoplethysmogram、PPG)信号であってもよい。
加速度計106zによって図1BZに表される動き感知システムは、ユーザの移動による加速度を示す加速度出力信号(「加速度データ」またはより一般的には「動きデータ」)を提供することができる。例えば、ウェアラブルデバイス150zは、ユーザの手首に着用することができ、加速度計出力信号は、手を洗っている間のこすり洗いの動きを示すことができる。他の例では、加速度計出力信号は、ユーザの他の腕若しくは手の移動(例えば、腕の振り)または歩行(例えば、足部接地速度)を示すことができる。いくつかの実施例では、加速度計は、3次元加速度出力(例えば、加速度出力の3つのチャネル)を提供する3軸加速度計であってもよい。本明細書では加速度計および加速度データとして主に説明されているが、他のセンサ(例えば、ジャイロスコープ、慣性測定ユニット(inertial measurement unit、IMU)、位置センサなど)を使用して、動きデータを取得または推測することができることを理解されたい。加速度計(および/または他のセンサ)からの動きデータは、認定こすり洗いイベントの検出のために処理することができる。
マイクロフォン(単数または複数)122zによって図1BZに表されるオーディオ感知システムは、オーディオ出力信号(「オーディオデータ」)を提供することができる。例えば、ウェアラブルデバイス150zは、ユーザの手首に着用することができ、オーディオ信号は、手を洗っている間のすすぎを示すことができる。
光感知システムの(光センサ(単数または複数)104zからの)アナログ出力、動き感知システムの(加速度計(単数または複数)106zからの)アナログ出力、および/またはオーディオ感知システムの(マイクロフォン(単数または複数)122zからの)アナログ出力は、(例えば、I/Oデバイス110zの)ADCを使用してデジタル形式に変換することができる。いくつかの実施例では、デジタル化したデータは、ウェアラブルデバイス150zのメモリ130zに記憶することができる。ホストプロセッサ108zおよび/または低電力プロセッサ109zを含む処理回路は、これらのセンサのうちの1つ以上からの(またはメモリ130zからの)デジタル化したデータを受信することができ、このデータを処理することができる。いくつかの実施例では、本明細書に記載するように、(例えば、加速度計106zからの)動きデータおよび(例えば、マイクロフォン122zからの)オーディオデータは、処理回路によって処理して、個々の健康関連イベントを識別することができる。個々の健康関連イベントは、手洗いイベントを含むことができる。
I/Oデバイス110zは、有線または無線通信リンク124zを介してリモートデバイス118zに結合することができる。リモートデバイス118zは、携帯電話、タブレットコンピュータ、パーソナルコンピュータ、ポータブルメディアプレーヤ、データサーバなどを含む任意のウェアラブルデバイスまたは非ウェアラブルデバイスであってもよい。いくつかの実施例では、リモートデバイス118zは、ウェアラブルデバイス150zの処理回路による個々の健康イベントの検出に関する情報を受信することができる。
加えて、いくつかの実施例では、センサのうちの1つ以上および個々の健康関連イベントを検出するための処理の一部または全ては、ウェアラブルデバイスまたは非ウェアラブルデバイスを含む1つ以上のリモートデバイスに実装することができる。例えば、センサのうちの1つ以上は、第2のウェアラブルデバイスまたは第2の非ウェアラブルデバイスに実装することができる。いくつかの実施例では、ウェアラブルデバイス150zの加速度計106zを使用して、動きデータを収集することができ、ウェアラブルデバイス150zと通信する携帯電話(リモートデバイス118z)のマイクロフォンを使用して、オーディオデータを収集することができる。ウェアラブルデバイス(単数または複数)からの、および/または非ウェアラブルデバイス(単数または複数)からの1つ以上のセンサからのデータストリームは、ウェアラブルデバイス(単数または複数)および/または非ウェアラブルデバイス(単数または複数)の処理回路によって処理することができる。例えば、1つ以上のデータストリーム(動きデータ、オーディオデータ)は、有線または無線チャネルを介して、ウェアラブルデバイスまたは非ウェアラブルデバイスの処理回路に通信することができる。例えば、動きデータおよび/またはオーディオデータは、ウェアラブルデバイス150zからリモートデバイス118zに通信することができ、リモートデバイス118zの処理回路を使用して、個々の健康関連イベントを検出するためにデータストリームを処理することができる。いくつかの実施例では、本明細書に記載の処理の一部は、ウェアラブルデバイスの処理回路によって実行することができ、および/または処理の一部は、非ウェアラブルデバイスの処理回路によって実行することができる。
図2Zは、本開示の実施例に係る、個々の健康関連イベントを検出するために使用することができる例示的なコンピューティングシステム200zのブロック図を示す。コンピューティングシステム200zは、本明細書に記載のウェアラブルデバイスおよび非ウェアラブルデバイスの回路に対応することができる。ブロック図は、概して、コンピュータ可読媒体201z(例えば、キャッシュ、メインメモリ、および二次メモリを含むがこれらに限定されないメモリ階層を含む)と、処理回路204zと、I/Oサブシステム206zと、無線周波数(radio frequency、RF)回路208zと、オーディオ回路210zと、センサ回路211zと、を含むことができる。これらの構成要素は、1つ以上の通信バスまたは信号ライン203zによって結合することができる。
RF回路208zを使用して、(例えば、デバイス間でオーディオデータおよび/または動きデータを通信するために)無線リンクまたはネットワークを介して1つ以上の他のデバイスに情報を送信および受信することができ、RF回路208zは、この機能を実行するための周知の回路を含む。RF回路208zおよびオーディオ回路210zは、(例えば、図1BZのI/Oデバイス110zに対応する)周辺機器インタフェース216zを介して処理回路204zに結合することができる。周辺機器インタフェース216zは、周辺機器と処理回路204zとの間の通信を確立および維持するための、様々な既知の構成要素を含むことができる。
オーディオ回路210zは、オーディオスピーカ250zおよび(例えば、図1BZのマイクロフォン122zに対応する)マイクロフォン252zに結合することができ、周辺機器インタフェース216zから受信された音声信号を処理して、ユーザが他のユーザとリアルタイムで通信することを可能にするための既知の回路を含むことができる。いくつかの実施例では、オーディオ回路210zは、ヘッドホンジャック(図示せず)を含むことができる。センサ回路211zは、(例えば、図1BZの光エミッタ(単数または複数)102zに対応する)1つ以上の発光ダイオード(LED)または他の光エミッタ、(例えば、図1BZの光センサ(単数または複数)104zに対応する)1つ以上のフォトダイオードまたは他の光センサ、1つ以上の光熱センサ、1つ以上の磁気計、(例えば、図1BZの加速度計(単数または複数)106zに対応する)1つ以上の加速度計、1つ以上のジャイロスコープ、1つ以上の慣性測定ユニット(IMU)または1つ以上のIMUサブ構成要素、1つ以上の気圧計、1つ以上のコンパス、1つ以上の近接センサ(例えば、赤外線センサ)、1つ以上のカメラ、1つ以上の周辺光センサ、1つ以上の温度計、1つ以上の全地球測位システム(GPS)センサ、および残りのバッテリ寿命、電力消費、プロセッサ速度、CPU負荷などを感知することができる様々なシステムセンサを含むがこれらに限定されない、様々なセンサに結合することができる。
周辺機器インタフェース216zは、コンピューティングシステム200zの入力周辺機器および出力周辺機器を(例えば、図1BZのホストプロセッサ108zおよび/または低電力プロセッサ109zに対応する)1つ以上のプロセッサ218zに、かつコントローラ220zを介して1つ以上のコンピュータ可読媒体201zに結合することができる。1つ以上のプロセッサ218zは、コントローラ220zを介して1つ以上のコンピュータ可読媒体201zと通信する。もう1つのコンピュータ可読媒体201zは、1つ以上のプロセッサ218zによって使用するためのコードおよび/またはデータを記憶することができる任意のデバイスまたは媒体であってもよい。
個々の健康関連イベントを検出することを含む、本明細書に記載の機能のうちの1つ以上は、メモリまたはプログラム記憶装置(例えば、媒体201z)に記憶され、かつ1つ以上のプロセッサ(例えば、低電力プロセッサ109zおよび/またはホストプロセッサ108z)によって実行される、ファームウェアによって実行することができることに留意されたい。ファームウェアは、コンピュータベースのシステム、プロセッサを含むシステムなどの命令を実行するシステム、装置、若しくはデバイス、または、命令を実行するシステム、装置、若しくはデバイスから命令をフェッチして、命令を実行することができる他のシステムによって、またはこれらに関連して使用するための任意の非一時的コンピュータ可読記憶媒体(例えば、コンピュータ可読媒体)内にもまた、記憶および/または送信することができる。本文書のコンテキストでは、「非一時的コンピュータ可読記憶媒体」は、命令を実行するシステム、装置、若しくはデバイスによって、またはこれらに関連して使用するためのプログラムを含むまたは記憶することができる任意の媒体(信号を除く)とすることができる。コンピュータ可読媒体記憶媒体としては、電子、磁気、光学、電磁、赤外線、若しくは半導体システム、装置、若しくはデバイス、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(random access memory、RAM)(磁気)、読み出し専用メモリ(read-only memory、ROM)(磁気)、消去可能なプログラマブル読出し専用メモリ(erasable programmable read-only memory、EPROM)(磁気)、ポータブル光ディスク(CD、CD-R、CD-RW、DVD、DVD-R、またはDVD-RWなど)、またはコンパクトフラッシュ(登録商標)カード、セキュアデジタルカード、USBメモリデバイス、メモリースティックなどのフラッシュメモリ等を挙げることができるが、これらに限定されない。
このファームウェアは、コンピュータベースのシステム、プロセッサを含むシステムなどの命令を実行するシステム、装置、若しくはデバイス、または、命令を実行するシステム、装置、若しくはデバイスから命令をフェッチし、実行することができる他のシステム、によって使用されるか、またはこれらに接続した任意の送信媒体内でもまた、伝搬することができる。本明細書の文脈では、「伝送媒体」は、命令実行システム、装置、またはデバイスによって使用されるかまたはこれらに接続したプログラムを通信し、伝搬し、または伝送することができる任意の媒体とすることができる。伝送媒体としては、限定はされないが、電子、磁気、光学、電磁または赤外線の有線または無線の伝播媒体を挙げることができるが、これらに限定はされない。伝送媒体は、通信ネットワークを含むことができ、この通信ネットワークとしては、インターネット(ワールドワイドウェブとも呼ばれる)、イントラネット(単数または複数)、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(Wide Local Area Network、WLAN)、ストレージエリアネットワーク(Storage Area Network、SAN)、メトロポリタンエリアネットワーク(MAN)などが挙げられるが、これらに限定されない。
1つ以上のプロセッサ218zは、媒体201zに記憶された様々なソフトウェア構成要素を実行して、コンピューティングシステム200zの様々な機能を実行する。いくつかの実施例では、ソフトウェア構成要素は、オペレーティングシステム222z、通信モジュール(または命令セット)224z、タッチ処理モジュール(または命令セット)226z、グラフィックモジュール(または命令セット)228z、および1つ以上のアプリケーション(または命令セット)223zを含むことができる。これらのモジュールおよび上述のアプリケーションのそれぞれは、上述した1つ以上の機能および本出願で説明される方法(例えば、コンピュータにより実施される方法、および本明細書で説明される他の情報処理方法)を実行する命令セットに対応することができる。これらのモジュール(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、様々な実施例において、これらのモジュールの様々なサブセットを組み合わせる、または別の方法で再配置してもよい。いくつかの実施例では、媒体201zは、上記で特定されるモジュールおよびデータ構造のサブセットを記憶することができる。さらに、媒体201zは、上述されていない追加のモジュールおよびデータ構造を記憶することができる。
オペレーティングシステム222zは、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御および管理するための、様々な手順、命令セット、ソフトウェア構成要素、および/またはドライバを含むことができ、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。通信モジュール224zは、1つ以上の外部ポート236zを介した、またはRF回路208zを介した、他のデバイスとの通信を容易にすることができ、RF回路208zおよび/または外部ポート236zから受信したデータを取り扱うための、様々なソフトウェア構成要素を含むことができる。グラフィックモジュール228zは、ディスプレイ表面上にグラフィックオブジェクトをレンダリングし、アニメーション化し、表示するための、様々な既知のソフトウェア構成要素を含むことができる。タッチI/Oデバイス212zがタッチ感知ディスプレイ(例えば、図1BZのタッチスクリーン152zに対応するタッチスクリーン)である実施例では、グラフィックモジュール228zは、タッチ感知ディスプレイ上にオブジェクトをレンダリング、表示、およびアニメーション化するための構成要素を含むことができる。
コンピューティングシステム200zはまた、(例えば、タッチスクリーン152zに対応する)タッチI/Oデバイス212zおよび/または(例えば、光感知システムに対応する)他のI/Oデバイス214zを含むことができる。タッチI/Oデバイス212zはまた、タッチI/Oデバイスが図1BZのウェアラブルデバイス150zに組み込まれている場合、個々の健康イベントデータを表示する(例えば、手洗い実行を表示する、手洗い実行に関する通知または他のフィードバックを表示する、など)プログラミングモードの中で選択する使用を可能にするUIインタフェースを組み込むことができる。
1つ以上のアプリケーション223zは、コンピューティングシステム200z上にインストールされる任意のアプリケーションを含むことができ、これらのアプリケーションとしては、ブラウザ、アドレス帳、連絡先リスト、電子メール、インスタントメッセージング、ワードプロセッシング、キーボードエミュレーション、ウィジェット、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、音声複製、位置判定能力(GPSによって提供されるものなど)、音楽プレーヤなどが挙げられるが、これらに限定されない。
タッチ処理モジュール226zは、タッチI/Oデバイス212zに関連付けられた様々なタスクを実行するための、様々なソフトウェア構成要素を含むことができ、これらのタスクとしては、タッチI/Oデバイスコントローラ232zを介してタッチI/Oデバイス212zから受信されるタッチ入力を受信および処理することが挙げられるが、これらに限定されない。タッチ入力は、カーソルまたはポインタなどのオブジェクトの移動、スクロールまたはパニング、制御設定の調整、ファイルまたは文書を開くこと、メニューの閲覧、選択の実行、命令の実行、ホストデバイスに接続された周辺デバイスの操作、電話通話への応答、電話通話の発信、電話通話の終了、音量またはオーディオ設定の変更、アドレス、頻繁に発信される番号、着信、不在着信などの電話通信に関する情報の保存、コンピュータまたはコンピュータネットワークへのログイン、許可された個人にコンピュータまたはコンピュータネットワークの制限された領域へのアクセスを許可すること、コンピュータデスクトップのユーザの好ましい配置に関連付けられたユーザプロファイルのロード、ウェブコンテンツへのアクセスの許可、特定のプログラムの起動、メッセージの暗号化または復号などを含むことができるがこれらに限定されないアクションを実行するために、プログラム記憶装置201zに記憶されたコンピュータプログラムによって使用することができる。プログラム記憶装置201zに記憶されたコンピュータプログラムはまた、処理回路に、本明細書に記載の個々の健康関連イベント検出を実行させることができる。
I/Oサブシステム206z(図1BZのI/Oデバイス110zに対応する)は、タッチI/Oデバイス212zおよび様々な機能を制御または実行するための1つ以上の他のI/Oデバイス214zに結合することができる。タッチI/Oデバイス212zは、タッチI/Oデバイスコントローラ232zを介して処理システム204zと通信することができ、ユーザのタッチ入力を処理する(例えば、ハードウェアを走査する)ための様々な構成要素を含むことができる。1つ以上の他の入力コントローラ234zは、他のI/Oデバイス214zとの間で、電気信号を受信/送信することができる。他のI/Oデバイス214zとしては、物理ボタン、ダイヤル、スライダスイッチ、スティック、キーボード、タッチパッド、追加のディスプレイスクリーン、またはこれらの任意の組み合わせを挙げることができる。タッチスクリーンとして実装される場合、タッチI/Oデバイス212zは、GUI内に、ユーザに対する視覚出力を表示することができる。この視覚出力は、テキスト、グラフィック、ビデオ、およびこれらの任意の組み合わせを含むことができる。
視覚出力の一部または全ては、グラフィカルユーザインタフェースオブジェクトに対応することができる。タッチI/Oデバイス212zは、ユーザからのタッチ入力を受け入れるタッチ感知面を含むことができる。タッチI/Oデバイス212zおよびタッチスクリーンコントローラ232zは(媒体201zの任意の関連するモジュールおよび/または命令セットと共に)、タッチI/Oデバイス212z上のタッチまたは近接入力(およびタッチの任意の移動または解放)を検出および追跡することができ、検出されたタッチ入力を1つ以上のユーザインタフェースオブジェクトなどのグラフィックオブジェクトとの対話に変換することができる。タッチI/Oデバイス212zがタッチスクリーンとして実装される実施例では、ユーザは、タッチスクリーン上に表示することができるグラフィカルユーザインタフェースオブジェクトと直接対話することができる。あるいは、タッチI/Oデバイス212zがタッチスクリーン以外のタッチデバイス(例えば、タッチパッド)として実装される場合、ユーザは、I/Oデバイス214zとして実装された別個のディスプレイスクリーン上に表示することができるグラフィカルユーザインタフェースオブジェクトと間接的に対話することができる。
タッチI/Oデバイス212zは、以下の米国特許第6,323,846号(Westermanら)、米国特許第6,570,557号(Westermanら)、および/若しくは米国特許第6,677,932号(Westerman)、並びに/または米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知面と類似していてもよく、これらの特許文献のそれぞれは、あらゆる目的のために参照により本明細書に組み込まれる。タッチI/Oデバイス212zがタッチスクリーンである実施例では、タッチスクリーンは、液晶ディスプレイ(liquid crystal display、LCD)技術、発光ポリマーディスプレイ(light emitting polymer display、LPD)技術、有機LED(organic LED、OLED)、または有機エレクトロルミネセンス(organic electro luminescence、OEL)を使用することができるが、他の実施例では、他のディスプレイ技術を使用することができる。
フィードバックは、ユーザのタッチ入力、並びに表示されているものおよび/またはコンピューティングシステムの状態(単数または複数)に基づいて、タッチI/Oデバイス212z(および/または他のI/Oデバイス214z)によって提供することができる。フィードバックは、光学的に(例えば、光信号または表示画像)、機械的に(例えば、触覚フィードバック、タッチフィードバック、力フィードバックなど)、電気的に(例えば、電気的刺激)、嗅覚的に、聴覚的に(例えば、ビープ音など)など、またはそれらの任意の組み合わせで、可変方式若しくは非可変方式で、送信することができる。
コンピューティングシステム200zはまた、様々なハードウェア構成要素に給電するための電力システム244zも含むことができ、また、電力管理システム、1つ以上の電源、再充電システム、停電検出回路、電力コンバータまたはインバータ、電力状態インジケータ、並びに、典型的にはポータブルデバイス内での電力の生成、管理、および分配に関連付けられた任意の他の構成要素を含むことができる。いくつかの実施例では、電力管理システムは、本明細書でより詳細に説明されるように、データの取得、データの処理、および個々の健康関連イベントの検出の1つ以上の態様を調整することができる。
いくつかの実施例では、周辺機器インタフェース216z、1つ以上のプロセッサ218z、および処理回路204zのメモリコントローラ220zは、単一のチップ(特定用途向け集積回路)上にまたは単一のプリント回路基板上に実装することができる。いくつかの他の実施例では、それらは、別個のチップ上に、かつ/または複数のプリント回路基板にわたって実装することができる。
図2Zに示すブロック図は、図示されているよりも多い若しくは少ない構成要素、または構成要素の異なる構成を有することができることを理解されたい。図2Zに示す様々な構成要素は、1つ以上の信号処理回路および/または特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。
本明細書で論じられるように、個々の健康関連イベントを検出することは、手洗いイベントを検出することを含むことができる。認定手洗いイベントを検出することは、認定こすり洗いイベントおよび認定すすぎイベントを検出することを含むことができる。いくつかの実施例では、手洗いイベントは、1つ以上のセンサデータストリームを使用して検出することができる。いくつかの実施例では、センサデータストリームは、(例えば、加速度計から取得された)動きデータおよび(例えば、マイクロフォンから取得された)オーディオデータを含むことができる。動きデータを使用して、認定こすり洗いイベントを検出することができ、オーディオデータを使用して、認定すすぎイベントを検出することができる。いくつかの実施例では、動きデータおよびオーディオデータを使用して、認定こすり洗いイベントおよび/または認定すすぎイベントを検出することができる。本明細書で使用されるとき、認定イベントとは、1つ以上の基準を満たすイベントを指す。例えば、動きデータに基づいて認定こすり洗いイベントを検出することは、持続時間基準、振幅基準、速度基準などを任意選択的に含む1つ以上の基準を満たす動きデータを検出することを含むことができる。1つ以上の基準は、手を合わせてこすり洗いすることに関連付けられた動きを他の動き(例えば、手首を持ち上げること、腕を振ること、様々な運動、座ること、タイピングすることなど)と区別するように設定することができる。同様に、オーディオデータに基づいて認定すすぎイベントを検出することは、持続時間基準、振幅基準、周波数成分基準などを任意選択的に含む1つ以上の基準を満たすオーディオデータを検出することを含むことができる。1つ以上の基準は、手をすすぐことに関連付けられたオーディオを他のオーディオ(例えば、環境音、交通、風など)と区別するように設定することができる。いくつかの実施例では、認定手洗いイベントを検出することは、1つ以上の基準を満たすことを含むことができる。1つ以上の基準は、認定こすり洗いイベントを検出することの閾値期間内(例えば、30秒以内、1分以内など)の認定すすぎイベントを検出することを含むことができる。そのような基準を使用して、典型的な手洗いイベントを示さない場合がある偽認定こすり洗いイベントおよび/または偽すすぎイベントを除外することができる。
図3Zは、本開示の実施例に係る、手洗いイベントを検出する例示的なプロセスを示す。プロセス300zは、複数のセンサからデータを取得することを含むことができる。例えば、動きデータ(例えば、加速度計データ)およびオーディオデータは、305zおよび310zでそれぞれ取得することができる。例えば、加速度計データは、加速度計106zによって取得することができ、オーディオデータは、マイクロフォン122zによって取得することができる。加速度計データおよびオーディオデータを処理することができる。例えば、処理は、低電力プロセッサ108zおよび/またはホストプロセッサ109zによって実行することができる。処理は、(例えば、認定こすり洗いイベント基準を満たす)認定こすり洗いイベントを検出するための加速度計データの分析および(例えば、認定すすぎイベント基準を満たす)認定すすぎイベントを検出するためのオーディオデータの分析を含むことができる。処理はまた、例えば、320zで認定手洗いイベントが検出されるかどうかを判定することを含むことができる。認定手洗いイベントが検出されない場合、加速度計データおよびオーディオデータの処理は、315zで、その後の加速度計データおよびオーディオデータについて(任意選択的に、その後の加速度計データおよび/またはオーディオデータを取得および/または処理する前になんらかの持続時間にわたってなんらかのスリープ状態またはアイドル状態を伴って)継続することができる。認定手洗いイベントが検出される場合、手洗いイベントを報告することができる。認定手洗いイベントが報告されると、加速度計データおよびオーディオデータの取得および/または処理は、いくつかの実施例では、その後の加速度計データおよびオーディオデータについて315zで継続することができる。報告された手洗いイベントを使用して、ユーザの手洗い実行を追跡および/またはログ記録することができる。ユーザの手洗い実行を使用して、フィードバックをトリガすることもできる。いくつかの実施例では、手洗いイベントの検出により、カウントダウンタイマーを開始して、ユーザが手洗いの有効性を改善するのを支援することができる。
いくつかの実施例では、データの取得および/または処理を順序付けることによって、電力消費を低減することができる。いくつかの実施例では、センサおよび/または処理回路による電力消費を軽減するために、動きデータの処理を使用して、オーディオデータの取得および/または処理をトリガすることができる(またはトリガしなくてもよい)。図4Zは、本開示の実施例に係る、手洗いイベントを検出する別の例示的なプロセスを示す。プロセス400zは、複数のセンサからデータを取得することを含むことができる。例えば、動きデータ(例えば、加速度計データ)およびオーディオデータを取得することができる。しかしながら、プロセス300zとは異なり、プロセス400zでは、トリガの前にオーディオデータを同時に取得することなく、405zで加速度計データを(加速度計106zを用いて)取得することができる。410zで、加速度計データを処理することができる。例えば、処理は、低電力プロセッサ108zおよび/またはホストプロセッサ109zによって実行することができる。処理は、(例えば、認定こすり洗いイベント基準を満たす)認定こすり洗いイベントを検出するための加速度計データの分析を含むことができる。処理はまた、例えば、415zで認定こすり洗いイベントが検出されるかどうかを判定することを含むことができる。認定こすり洗いイベントが検出されない場合、加速度計データの取得および/または処理は、410zで、その後の加速度計データについて(任意選択的に、その後の加速度計データを取得および/または処理する前になんらかの持続時間にわたってなんらかのスリープ状態またはアイドル状態を伴って)継続することができる。認定こすり洗いイベントが検出される場合、425zでオーディオデータを(マイクロフォン122zを用いて)取得することができる。425zで、オーディオデータを処理することができる。例えば、処理は、低電力プロセッサ108zおよび/またはホストプロセッサ109zによって実行することができる。処理は、(例えば、認定すすぎイベント基準を満たす)認定すすぎイベントを検出するためのオーディオデータの分析を含むことができる。処理はまた、例えば、430zで認定すすぎイベントが検出されるかどうかを判定することを含むことができる。認定すすぎイベントが検出されない場合、システムは、440zで、オーディオデータを取得することを中止することができ、加速度計データの取得および/または処理は、410zで、その後の加速度計データについて(任意選択的に、その後の加速度計データを取得および/または処理する前になんらかの持続時間にわたってなんらかのスリープ状態またはアイドル状態を伴って)継続することができる。認定すすぎイベントが検出される場合、435zで手洗いイベントを報告することができる。認定手洗いイベントが報告される場合、加速度計データの取得および/または処理は、いくつかの実施例では、その後の加速度計データについて(任意選択的に、その後の加速度計データを取得および/または処理する前になんらかの持続時間にわたってなんらかのスリープ状態またはアイドル状態を伴って)410zで継続することができる。
プロセス400zに示すように、オーディオデータの取得および処理は、認定こすり洗いイベントの検出によってトリガすることができる。結果として、不必要な場合にはオーディオデータを取得しないことによって(例えば、オーディオセンサおよび/またはADCなどの関連付けられた回路の電源を切ることによって))、および/または前の認定こすり洗いイベントがない場合にはオーディオデータを処理しないことによって、電力を節約することができる。いくつかの実施例では、オーディオデータは、(例えば、プロセス300zのように)加速度計データと同時に取得することができるが、オーディオデータの処理は、(例えば、プロセス400zのように)認定こすり洗いイベントの検出に基づいてトリガすることができる。いくつかの実施例では、オーディオデータを取得するためのトリガとオーディオデータを処理するためのトリガとは、異なるトリガであってもよい。例えば、オーディオデータの取得は、認定こすり洗いイベント未満を検出すること(例えば、振幅基準を満たすが、閾値持続時間未満にわたるこすり洗いの動きを検出することなど、認定こすり洗いイベント基準の一部を満たすが全てを満たさない動きを検出すること)によってトリガすることができ、オーディオデータの処理は、認定こすり洗いイベントを検出すること(例えば、認定こすり洗いイベント基準の全てを満たす動きの検出)によってトリガすることができる。
いくつかの実施例では、プロセス300zおよび400zは、低電力プロセッサ(例えば、低電力プロセッサ109z)に実装することができる。いくつかの実施例では、プロセス300zおよび400zは、低電力プロセッサよりも多くの電力を消費するプロセッサ(例えば、ホストプロセッサ108z)に実装することができる。本明細書に記載の「低電力」プロセッサは、別のプロセッサ(例えば、ホストプロセッサ)に対してより低い電力であることが理解される。いくつかの実施例では、低電力プロセッサは、プロセス300zまたは400zの全てを実装するために十分なリソース(例えば、メモリ、処理電力など)を含まなくてもよい。いくつかの実施例では、2つのプロセッサ間で(例えば、低電力プロセッサ109zとホストプロセッサ108zとの間で)処理を分割することによって、電力消費を改善することができる。いくつかの実施例では、電力消費を軽減し、かつ/または処理要件を低減するために、低電力プロセッサによる動きデータの処理を使用して、ホストプロセッサによるオーディオデータの取得および/または処理をトリガすることができる(またはトリガしなくてもよい)。
図5Zは、本開示の実施例に係る、手洗いイベントを検出するための別の例示的なプロセス500zを示す。505zで、加速度計データを(加速度計106zを用いて)取得することができる。510zで、加速度計データは、低電力プロセッサ(例えば、低電力プロセッサ109z)によって処理して、認定こすり洗いイベント(またはより一般的には、認定動きイベント)を検出することができる。認定こすり洗いイベントが検出されない場合、加速度計データの取得および/または処理は、505zで、その後の加速度計データについて継続することができる。認定こすり洗いイベントが検出される場合(例えば、認定こすり洗いイベントを検出したことに応じて)、515zで別のプロセッサ(例えば、ホストプロセッサ108z)をウェイクアップ(アクティブ化)することができる。いくつかの実施例では、認定こすり洗いイベントの検出(または別のトリガ)を使用して、520zでオーディオデータを(マイクロフォン122zを用いて)取得することができる。いくつかの実施例では、オーディオデータの取得は、(例えば、プロセス300zに示すように)加速度計ベースのトリガを伴わずに取得することができる。
525zで、ホストプロセッサは、オーディオデータを処理することができ、任意選択的に、ホストプロセッサはまた、加速度計データを処理することができる(530z)。処理は、535zで、認定すすぎイベント(またはより一般的には、認定オーディオイベント)を検出することを含むことができる。認定すすぎイベントが検出されない場合、システムは、545zで、ホストプロセッサの電源を切る(非アクティブ化する)ことができ、低電力プロセッサによる加速度計データの取得および/または処理は、505zで、その後の加速度計データについて継続することができる。いくつかの実施例では、システムは、535zで認定すすぎイベントが検出されない場合に、550zでオーディオデータを取得することを中止する(かつ任意選択的に、オーディオセンサの電源を切る)ことができる。認定すすぎイベントが検出される場合、540zで手洗いイベントを報告することができる。いくつかの実施例では、ホストプロセッサはまた、認定手洗いイベントを報告する前に、535zで、認定手洗いイベントを検出することができる。例えば、認定手洗いイベントは、認定こすり洗いイベントおよび認定すすぎイベントの両方を検出することに基づいて、並びに任意選択的に他の基準(例えば、2つのイベントが閾値期間内に発生する、または少なくとも部分的に同時に発生すること)に基づいて、検出することができる。いくつかの実施例では、システムは、認定すすぎイベントが検出されない場合に、認定手洗いイベントを検出するための処理を取り止めることができる。
認定すすぎイベントおよび認定手洗いイベントが報告される場合、システムは、545zで、ホストプロセッサの電源を切る(非アクティブ化する)(かつ/または550zで、オーディオデータを取得することを中止する)ことができ、加速度計データの取得および/または処理は、いくつかの実施例では、505zで、その後の加速度計データについて低電力プロセッサで継続することができる。
上述のように、加速度計データは、低電力プロセッサによって(510zで)処理して、認定こすり洗いイベント(またはより一般的には、認定動きイベント)を検出し、次いで、515zで別のプロセッサ(例えば、ホストプロセッサ)をウェイクすることができる。加速度計データは、ホストプロセッサによって処理することもできる。いくつかの実施例では、510zでの処理は、加速度計データに第1の加速度計データモデル(例えば、機械学習モデル)を適用することを含むことができ、530zでの処理は、第2の加速度計データモデル(例えば、機械学習モデル)を適用することを含むことができる。いくつかの実施例では、第1の加速度計データモデルは、第2の加速度計データモデルよりも(メモリリソースの観点では)より小さく、かつ/または(処理精度の観点では)より低い品質であってもよい。いくつかの実施例では、第1の加速度計データモデルを使用して、認定動き/こすり洗いイベントの第1の判定を行うことができる。第2の加速度計データモデルを使用して、認定動き/こすり洗いイベントの判定を精緻化することができる。例えば、より高品質の第2の加速度計データモデルは、そのより高い品質、並びに洗い/すすぎの持続時間についての加速度計データおよび第2のプロセッサのウェイクアップをトリガする前の加速度計データへのその潜在的なアクセスに起因して、第1の加速度計モデルと比較して、より良好な精度を提供することができる。いくつかの実施例では、510zでの認定動き/こすり洗いイベントを検出するための閾値は、530zでの認定こすり洗いイベントを検出するための閾値と比較して低減することができる。例えば、プロセッサをウェイクアップするための低いバーのトリガを設定することは、潜在的な手洗いイベントを見逃すことを回避するため(例えば、高いエスカレーション率、より高精度のより高電力モデルをトリガする低電力モデル)に有用であり得る。いくつかの実施例では、第1の加速度計データモデルの出力を、第2の加速度計データモデルの入力として使用して、第2の加速度計データモデルを精緻化することができる。いくつかの実施例では、第2の加速度計データモデルの出力を使用して、第1の加速度計データモデルを精緻化することができる。例えば、認定こすり洗いイベントを検出する際の第1の加速度計データモデルの性能を改善することために、第1の加速度計データモデルからのデータの一部を使用した第2の加速度計データモデルによるこすり洗いイベントのその後のラベル付けの結果を使用するができる。
いくつかの実施例では、取得されたデータストリームの品質を変化させることによって、および/または様々なトリガに基づいて取得されたデータストリームの処理の品質を変化させることによって、(電力消費を軽減し、かつ/または処理要件を低減するために)電力消費を改善することができる。図6Zは、本開示の実施例に係る、手洗いイベントを検出するための別の例示的なプロセス600zを示す。605zおよび610zそれぞれで、加速度計データを(加速度計106zを用いて)取得することができ、オーディオデータを(オーディオセンサ610zを用いて)取得することができる。615zで、加速度計データおよびオーディオデータは、低電力プロセッサ(例えば、低電力プロセッサ109z)によって処理することができる。加速度計データの処理は、第1の加速度計データ処理を使用することを含むことができ、オーディオデータの処理は、第1のオーディオデータ処理を使用することを含むことができる。いくつかの実施例では、第1の加速度計データ処理は、加速度計データに第1の加速度計データモデル(例えば、機械学習モデル)を適用することを含むことができる(620z)。いくつかの実施例では、第1のオーディオデータ処理は、オーディオデータに第1のオーディオデータモデル(例えば、機械学習モデル)を適用することを含むことができる(620z)。
処理は、625zで、(例えば、加速度計データに基づいて認定こすり洗いイベントを検出することと、オーディオデータに基づいて認定すすぎイベントを検出することと、を含む)認定手洗いイベントを検出することを含むことができる。認定手洗いイベントが検出されない場合、加速度計データの取得および/または処理は、615zで、その後の加速度計データおよび/またはオーディオデータについて継続することができる。認定手洗いイベントが検出される場合、630zで別のプロセッサ(例えば、ホストプロセッサ108z)をウェイクアップ(アクティブ化)することができる。625zでの処理は、認定手洗いイベントを検出することを参照して説明されているが、加速度計データを最初に処理して認定こすり洗いイベントを検出することができるように処理を順序付けることができることを理解されたい。認定こすり洗いイベントが検出されない場合、システムは、手洗いイベントを検出せずに、オーディオデータのその後の処理をバイパスすることができる。同様に、認定こすり洗いイベントに応じてオーディオデータを処理することができるように、処理を順序付けることができる。認定すすぎイベントが検出されない場合、システムは、手洗いイベントを検出せずに、その後の処理をバイパスして、認定こすり洗いイベントおよび認定すすぎイベントに基づいて、手洗いイベントの発生を検出することができる。
635zで、ホストプロセッサは、オーディオデータおよび/または加速度計データを処理することができる。処理は、640zで、認定手洗いイベントを検出することを含むことができる。加速度計データの処理は、第2の加速度計データ処理を使用することを含むことができ、オーディオデータの処理は、第2のオーディオデータ処理を使用することを含むことができる。いくつかの実施例では、加速度計データおよび/またはオーディオデータの第1および第2の処理は、同じであってもよい。いくつかの実施例では、加速度計データおよび/またはオーディオデータの第1および第2の処理は、異なってもよい。いくつかの実施例では、第2の加速度計データ処理は、加速度計データに第2の加速度計データモデル(例えば、機械学習モデル)を適用することを含むことができる(640z)。いくつかの実施例では、第2の加速度計データモデルは、第1の加速度計データモデルとは異なってもよい。いくつかの実施例では、第1の加速度計データモデルは、第2の加速度計データモデルよりも(メモリリソースの観点では)より小さく、かつ(処理精度の観点では)より低い品質であってもよい。いくつかの実施例では、第2の加速度計モデルは、第1の加速度計モデルを生成するために使用されるよりも多くの訓練データを使用して生成することができる。いくつかの実施例では、第2のオーディオデータ処理は、オーディオデータに第2のオーディオデータモデル(例えば、機械学習モデル)を適用することを含むことができる(640z)。いくつかの実施例では、第2のオーディオデータモデルは、第1のオーディオデータモデルとは異なってもよい。いくつかの実施例では、第1のオーディオデータモデルは、第2のオーディオデータモデルよりも(メモリリソースの観点では)より小さく、かつ(処理精度の観点では)より低い品質であってもよい。いくつかの実施例では、第2のオーディオモデルは、第1のオーディオモデルを生成するために使用されるよりも多くの訓練データを使用して生成することができる。いくつかの実施例では、第1および/または第2のオーディオデータモデルは、時間ドメインオーディオデータに基づくことができる。いくつかの実施例では、オーディオデータモデルは、オーディオデータの周波数ドメイン表現を使用する(例えば、高速フーリエ変換などのフーリエ変換、または別の変換を使用する)ことによって、サイズ/複雑さを低減することができる。いくつかの実施例では、オーディオデータモデルは、オーディオデータの二乗平均平方根(root mean square、RMS)表現を使用することによって、サイズ/複雑さを低減することができる。いくつかの実施例では、オーディオデータモデルは、オーディオデータのメル周波数ケプストラム(Mel Frequency Cepstral、MFC)表現を使用する(例えば、MFC係数を使用する)ことによって、サイズ/複雑さを低減することができる。
処理は、645zで、(例えば、加速度計データに基づいて認定こすり洗いイベントを検出することと、オーディオデータに基づいて認定すすぎイベントを検出することと、を含む)認定手洗いイベントを検出することを含むことができる。ホストプロセッサによる認定手洗いイベントを検出する処理は、低電力プロセスによる処理について上述したように順序付けることができる。認定すすぎイベントが検出されなかった場合、システムは、655zで、ホストプロセッサの電源を切る(非アクティブ化する)ことができ、加速度計データの取得および/または処理は、615zで、その後の加速度計データおよび/またはオーディオデータについて継続することができる。認定手洗いイベントが検出された場合、650zで、手洗いイベントを報告することができる。認定手洗いイベントが報告されると、システムは、655zで、ホストプロセッサの電源を切る(非アクティブ化する)ことができ、加速度計データおよびオーディオデータの取得および/または処理は、いくつかの実施例では、615zで、その後の加速度計データおよび/またはオーディオデータについて継続することができる。
図6Zは、605zおよび610zで、少なくとも部分的に同時に取得されたオーディオデータおよび加速度データを示しているが、いくつかの実施例では、オーディオデータの取得は、図5Zに関して上述したのと同様の方法で(例えば、加速度ベースのトリガを使用して)トリガすることができることを理解されたい。加えて、いくつかの実施例では、データストリームの品質は、トリガ条件に基づいて調整することができることを理解されたい。例えば、610zで、オーディオデータの取得は、オーディオデータが第1の品質を有するように実行することができ、加速度データに基づいて認定こすり洗いイベントを検出したことに応じて、オーディオデータの取得は、オーディオデータが第1の品質よりも高い第2の品質を有するように実行することができる。例えば、オーディオセンサ(または対応するADC)のサンプリングレートは、トリガイベントに応じて増加させることができる。そのような場合、オーディオデータを連続的に取得することができ、その後の認定すすぎイベントを検出するために最も有意義な場合に、高品質のオーディオが取得される。いくつかの実施例では、605zで、加速度計データの取得は、加速度計データが第1の品質を有するように実行することができ、加速度データに基づいてトリガイベント(例えば、認定こすり洗いイベントの基準の一部を満たすが全てを満たさない動き)を検出したことに応じて、加速度データの取得は、加速度データが第1の品質よりも高い第2の品質を有するように実行することができる。例えば、加速度計センサ(または対応するADC)のサンプリングレートは、トリガイベントに応じて増加させることができる。いくつかの実施例では、トリガイベントに応じて、追加の加速度計チャネルを使用する(例えば、単軸加速度計データではなく3軸加速度計データを使用する)ことができる。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、または開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正および変形が可能である。本技術の原理、およびそれらの実際の用途を最もよく説明するために、実施形態が選択および記載されている。それにより、他の当業者は、意図された具体的な用途に適するような様々な修正を用いて、本技術および様々な実施形態を最も良好に利用することが可能となる。
添付図面を参照して、本開示および例を十分に説明してきたが、様々な変更および修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更および修正は、特許請求の範囲によって定義されるような、本開示および例の範囲内に含まれるものとして理解されたい。
上述したように、本技術の一態様は、様々なソースから入手可能なデータを収集および使用して、身体活動イベントの実行を検出および追跡することである。本開示は、いくつかの場合には、この収集されたデータが、特定の人を一意に特定する個人情報データ、または特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを考察する。そのような個人情報データとしては、人口統計データ、位置ベースのデータ、電話番号、電子メールアドレス、ツイッターID、自宅の住所、ユーザの健康若しくはフィットネスのレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、誕生日、または任意の他の識別情報若しくは個人情報を挙げることができる。
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、ユーザをターゲットとしたリマインダを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用により、ユーザが身体活動イベントの頻度および持続時間を監視することが可能になる。さらに、ユーザに利益をもたらす個人情報データに関する他の使用も本開示によって意図されている。例えば、健康データおよびフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、または、ウェルネスの目標を追求する技術を使用している個人への、積極的なフィードバックとして使用することもできる。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、または他の使用に関与するエンティティが、確固たるプライバシーポリシーおよび/またはプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界または政府の要件を満たしているかまたは上回るものとして一般に認識されている、プライバシーのポリシーおよび慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集および/または使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有または販売されるべきではない。さらには、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。その上、そのようなエンティティは、そのような個人情報データへのアクセスを保護および安全化し、個人情報データへのアクセス権を有する他者が、それらのプライバシーポリシーおよび手順を忠実に守ることを保証するための、あらゆる必要な措置を講じることを考慮するべきである。さらに、そのようなエンティティは、広く受け入れられているプライバシーポリシーおよび慣行に対する自身の遵守を証明するために、サードパーティによる評価を自らが受けることができる。加えて、ポリシーおよび慣行は、収集および/またはアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令および規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集またはそれへのアクセスは、医療保険の相互運用性と説明責任に関する法律(HIPAA)等の、連邦法および/または州法によって管理されてもよく、その一方で、他国における健康データは、他の規制およびポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国において、異なる個人データのタイプに関して異なるプライバシー慣行が保たれるべきである。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用または個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止または阻止するために、ハードウェア要素および/またはソフトウェア要素が提供され得ることを意図している。例えば、身体活動イベントの実行を追跡する場合、本技術は、ユーザが、サービスの登録中またはその後のいつでも、個人情報データの収集への参加の「オプトイン」または「オプトアウト」を選択することを可能にするように構成することができる。別の例では、ユーザは、身体活動イベントの実行を追跡するためのセンサおよび位置データを提供しないことを選択することができる。さらに別の例では、ユーザは、身体活動イベントの実行を追跡するために使用されるセンサデータを制限する、または身体活動イベントの実行を追跡することを完全に禁止することを選択することができる。「オプトイン」および「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセスまたは使用に関する通知を提供することを意図している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
さらには、本開示の意図は、個人情報データを、非意図的若しくは無許可アクセスまたは使用の危険性を最小限に抑える方法で、管理および処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなると削除することにより、リスクを最小化することができる。加えて、かつ、特定の健康関連アプリケーションにおいて適用可能な場合、ユーザのプライバシーを保護するために、データの匿名化を使用することができる。非特定化は、適切な場合には、特定の識別子(例えば、生年月日など)を除去すること、記憶されたデータの量または特異性を制御すること(例えば、位置データを住所レベルよりも都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、データをユーザ全体にわたって集約すること)および/または他の方法によって、容易にすることができる。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものであるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することも可能であることを想到する。すなわち、本技術の様々な実施形態は、そのような個人情報データの全てまたは一部分が欠如することにより、動作不可能にされるものではない。例えば、身体活動イベントの実行を追跡することは、ユーザに関連付けられたデバイスにより要求されたコンテンツ、ユーザに関連付けられたデバイスで利用可能な他の非個人情報、若しくは公的に利用可能な情報などの、非個人情報データまたは個人情報の最小限の量のみに基づく。