(58)【調査した分野】(Int.Cl.,DB名)
請求項1乃至3のいずれか一項に記載の方法であって、前記外部アプリケーションの前記第1の状態は、前記外部アプリケーションのナビゲーション階層の中の位置に対応する、
方法。
請求項1乃至4のいずれか一項に記載の方法であって、前記外部アプリケーションの前記第1の状態は、前記外部アプリケーションにおいて表示される文書の中の位置に対応する、
方法。
請求項1乃至5のいずれか一項に記載の方法であって、前記外部アプリケーションの前記第1の状態は、前記外部アプリケーションのフィーチャがアクティブであるか否かに対応する、
方法。
【発明を実施するための形態】
【0070】
以下の記述は、例示的な方法、パラメータ等について記述している。しかし、そのような記述は、本開示の範囲を限定することを意図されているのではなく、例示的実施形態の説明として提供されている。
【0071】
1つのデバイスの使用から別のデバイスの使用へと、ユーザが全体的な連続感を維持したままで効率的に移行できるようにする電子デバイスの必要性がある。例えば、ユーザが第1のデバイス上で1つのアプリケーションを使用している場合、進行を止めることなくユーザが継続できるように、ユーザが移行しようとしている第2のデバイスが同じアプリケーションを自動的に起動すれば有利であろう。そのような技法は、複数のコンピュータデバイスを切り替えて使用するユーザの認知上の負担を削減することができ、それによって生産性を高めることができる。さらに、そのような技法は、普通なら重複するユーザ入力に対して浪費されるはずのプロセッサおよびバッテリの電力を削減することができる。
【0073】
以下の説明では、各種の要素を記述するために「第1」、「第2」などの用語を使用しているが、これらの要素はこれらの用語によって限定されるべきでない。これらの用語は、要素と要素とを区別するためだけに用いられている。例えば、記述された各種の実施形態の範囲から逸脱することなく、第1のタッチは第2のタッチと呼ばれてもよいだろうし、同様に、第2のタッチが第1のタッチと呼ばれてもよいだろう。第1のタッチと第2のタッチとは、どちらもタッチであるが、同じタッチではない。
【0074】
本書において記述された各種の実施形態の説明で用いられる用語は、特定の実施形態を記述することだけを目的としており、限定することを意図していない。記述された各種の実施形態の説明および添付の請求項で用いられる場合、単数形「a」、「an」、「the」は、文脈が別に明示しない限り、複数形も同様に含むことを意図する。さらに理解されるであろうが、「および/または」という用語は、本明細書で用いられる場合、関連するリストされた項目のうちの1つ以上のいずれかの、または、すべての起こりうる組み合わせを言及し、それを包含する。さらに理解されるであろうが、「含む(includes)」、「含めて(including)」、「備える(comprises)」および/または「備えている(comprising)」という用語は、本明細書で用いられる場合、述べられた特徴、整数、ステップ、動作、要素および/または構成要素の存在を明記するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在もしくは追加を排除しない。
【0075】
「もしも(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 reseponse to determining)」または「[述べられた条件またはイベント]を検出した時点で(upon detecting [the stated condition or event])」または「[述べられた条件またはイベント]を検出するのに応じて(in response to detecting [the stated condition or event])」を意味すると解釈されてもよい。
【0076】
電子デバイス、そのようなデバイスのためのユーザインタフェース、およびそのようなデバイスを使用するための関連プロセスの実施形態について記述する。一部の実施形態では、デバイスは、携帯用通信デバイス、例えば移動電話であり、その他の機能、例えばPDAおよび/または音楽プレーヤ機能も有している。携帯用多機能デバイスの例示的な実施形態には、限定することなく、カリフォルニア州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)およびiPad(登録商標)デバイスが含まれる。また、その他の携帯用電子デバイス、例えばタッチセンシティブ表面(例えばタッチスクリーンディスプレイおよび/またはタッチパッド)を持つラップトップコンピュータまたはタブレットコンピュータが、オプションで用いられる。また、理解されるべきだが、一部の実施形態では、デバイスは、携帯用通信デバイスではなく、タッチセンシティブ表面(例えばタッチスクリーンディスプレイおよび/またはタッチパッド)を持つデスクトップコンピュータである。
【0077】
下記の議論では、ディスプレイおよびタッチセンシティブ表面を含む電子デバイスについて記述する。しかしながら、理解されるべきこととして、電子デバイスは、オプションとして、1つ以上の他の物理的ユーザインタフェースデバイス(例えば、物理キーボード、マウス、および/またはジョイスティック)を含んでもよい。
【0078】
デバイスは、多様なアプリケーション、例えば、描画アプリケーション、プレゼンテーションアプリケーション、文章処理アプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、表計算アプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、エクササイズサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、インターネット閲覧アプリケーション、デジタル音楽プレーヤアプリケーション、および/またはデジタルビデオプレーヤアプリケーションのうちの1つ以上をサポートしてもよい。
【0079】
デバイス上で実行される各種のアプリケーションは、オプションとして、少なくとも1つの共通の物理的ユーザインタフェースデバイス、例えばタッチセンシティブ表面を使用する。タッチセンシティブ表面の1つ以上の機能およびデバイス上に表示される対応する情報は、オプションとして、アプリケーション毎に、および/または、それぞれのアプリケーションの中で、調整されたり、および/または、変更されたりする。このようにして、デバイスの共通の物理的アーキテクチャ(例えばタッチセンシティブ表面)は、オプションとして、ユーザにとって直感的かつ透過的なユーザインタフェースを持つ多様なアプリケーションをサポートする。
【0080】
次に、タッチセンシティブディスプレイを備えた携帯用デバイスの実施形態に注意を向けよう。
図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を経て通信する。
【0081】
明細書および請求項において使用されるように、タッチセンシティブ表面上の接触の「強度(intensity)」という用語は、タッチセンシティブ表面上の接触(例えば、指の接触)の強さまたは圧力(単位領域あたりの強さ)を意味するか、または、タッチセンシティブ表面上の接触の強さまたは圧力の代替物(プロキシ)を意味する。接触の強度は、少なくとも4つの異なる値、そしてより典型的には数百の異なる値(例えば、少なくとも256)を含む、値の範囲を有する。接触の強度は、オプションとして、多様なアプローチおよび多様なセンサまたはセンサの組み合わせを用いて判定(または測定)される。例えば、タッチセンシティブ表面の下のまたは隣接する1つ以上の力センサが、オプションとして、タッチセンシティブ表面の多様な点において力を測定するために使用される。一部の実装では、推定される接触の力を判定するために、複数の力センサからの力測定値が結合(例えば、加重平均)される。同様に、スタイラスの圧力センシティブチップが、オプションとして、タッチセンシティブ表面上のスタイラスの圧力を判定するために使用される。或いは、タッチセンシティブ表面上で検出された接触領域のサイズおよび/またはその変化、接触点に近いタッチセンシティブ表面の静電容量および/またはその変化、および/または、接触点に近いタッチセンシティブ表面の抵抗および/またはその変化が、オプションとして、タッチセンシティブ表面上の接触の力または圧力の代替物として使用される。一部の実装では、接触の力または圧力の代替測定値は、強度閾値が超えられたか否かを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。一部の実装では、接触の力または圧力の代替測定値は、推定された力または圧力に変換され、推定された力または圧力は、強度閾値が超えられたか否かを判定するために使用される(例えば、強度閾値は、圧力の単位で測定される圧力閾値である)。ユーザ入力の属性として接触の強度を使用することで、ユーザが追加のデバイス機能にアクセスすることが可能となり、追加のデバイス機能は、さもなければ、アフォーダンスを表示する(例えば、タッチセンシティブディスプレイ上に)ための、および/またはユーザ入力を受信する(例えば、タッチセンシティブディスプレイ、タッチセンシティブ表面、または、ノブまたはボタンなどのような物理的/機械的コントロールを介して)ためのリアルエステートが限られている小型デバイスにおいてユーザがアクセスすることは不可能かもしれないものである。
【0082】
明細書および請求項において使用されているように、「触感出力(tactile output)」という用語は、デバイスの以前の位置に対するデバイスの物理的変位(displacement)、デバイスの他の構成要素(例えば、ハウジング)に対するデバイスの構成要素(例えば、タッチセンシティブ表面)の物理的変位、または、デバイスの質量中心に対する構成要素の変位であって、ユーザの触覚によりユーザが検知するものを意味する。例えば、デバイスまたはデバイスの構成要素がタッチセンシティブなユーザ表面(例えば、指、手のひら、またはユーザの手の他の部分)に接触している状況において、物理的変位により生成される触感出力は、デバイスまたはデバイスの構成要素の物理的性質における知覚される変化に対応する触感として、ユーザにより解釈されるであろう。例えば、タッチセンシティブ表面(例えば、タッチセンシティブディスプレイまたはトラックパッド)の移動は、オプションとして、物理的アクチュエータボタンの「ダウンクリック」または「アップクリック」としてユーザにより解釈される。場合によっては、ユーザは、ユーザの移動により物理的に押された(例えば、ずらされた)タッチセンシティブ表面に関連する物理的アクチュエータボタンの移動がない場合であってさえも、「ダウンクリック」または「アップクリック」などのような触感を感じることになる。別の例として、タッチセンシティブ表面の滑らかさに変化がない場合であってさえも、タッチセンシティブ表面の移動は、オプションとして、タッチセンシティブ表面の「ざらつき」として、ユーザにより解釈または感知される。ユーザによるタッチのそのような解釈は、ユーザの個人的な感覚的認識に依存するであろうが、大多数のユーザに共通する、タッチに関する多数の感覚的認識が存在する。それゆえ、ユーザの特定の感覚的認識(例えば、「アップクリック」、「ダウンクリック」、「ざらつき」)に対応するものとして触感出力が説明される場合、反対のことが述べられていない限り、生成される触感出力は、典型的な(平均的な)ユーザにとっての記述された感覚的認識を生成する、デバイスまたはその構成要素の物理的変位に対応する。
【0083】
理解されるべきだが、デバイス100は、携帯用多機能デバイスの一例にすぎず、デバイス100は、オプションとして、図示するより多いまたは少ない構成要素を持ち、オプションとして、2つ以上の構成要素を組み合わせ、あるいは、オプションとして、構成要素の別の構成または配置を有する。
図1Aに示す各種の構成要素は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの両方の組み合わせとして、1つ以上の信号処理回路および/または特定用途向け集積回路を含めて実装される。
【0084】
メモリ102は、1つ以上のコンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体は、有形で非一時的なものであってもよい。メモリ102は、高速ランダムアクセスメモリを含んでいてもよく、また、不揮発性メモリ、例えば1つ以上の磁気ディスクストレージデバイス、フラッシュメモリデバイス、またはその他の不揮発性ソリッドステートメモリデバイスを含んでいてもよい。メモリコントローラ122は、デバイス100の他の構成要素によるメモリ102へのアクセスを制御してもよい。
【0085】
周辺装置インタフェース118を用いて、デバイスの入力および出力周辺装置をCPU120およびメモリ102に接続することができる。1つ以上のプロセッサ120は、各種のソフトウェアプログラムおよび/またはメモリ102の中に記憶された命令の集合を動作させるかまたは実行して、デバイス100についての各種の機能を行い、データを処理する。一部の実施形態では、周辺装置インタフェース118と、CPU120と、メモリコントローラ122とは、例えばチップ104のような単一のチップ上に実装されてもよい。一部の実施形態では、それらは別個のチップ上に実装されてもよい。
【0086】
RF(radio frequency)回路部108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路部108は、電気信号を電磁信号に、電磁信号を電気信号に変換し、電磁信号を介して通信ネットワークおよびその他の通信デバイスと通信する。RF回路部108は、オプションとして、これらの機能を実行するための周知の回路部(アンテナシステムと、RFトランシーバと、1つ以上の増幅器と、チューナと、1つ以上のオシレータと、デジタル信号プロセッサと、CODECチップセットと、SIM(subscriber identity module)カードと、メモリと、等々を含むが、それらに限定されない)を含む。RF回路部108は、オプションとして、WWW(World Wide Web)とも呼ばれるインターネットやイントラネットのようなネットワーク、および/または、セルラー電話ネットワークのようなワイヤレスネットワークやワイヤレスローカルエリアネットワーク(LAN)、および/または、メトロポリタンエリアネットワーク(MAN)と通信し、また、その他のデバイスとワイヤレス通信によって通信する。RF回路部108は、オプションとして、近距離無線通信(NFC)フィールド(例えば、短距離通信波によるものなど)を検出する、よく知られた回路部を含む。ワイヤレス通信は、オプションとして、GSM(登録商標)(Global System for Mobile Communications)、EDGE(Enhanced Data GSM Environment)、HSDPA(high−speed downlink packet access)、HSUPA(high−speed uplink packet access)、EV−DO(Evolution, Data−Only)、HSPA、HSPA+、DC−HSPDA(Dual−Cell HSPA)、LTE(long term evolution)、NFC(near field communication)、W−CDMA(wideband code division multiple access)、CDMA(code division multiple access)、TDMA(time division multiple access)、Bluetooth(登録商標)、BTLE(Bluetooth Low Energy)、Wi−Fi(Wireless Fidelity)(例えばIEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、および/またはIEEE802.11ac)、VoIP(voice over Internet Protocol)、Wi−MAX、電子メール用のプロトコル(例えばIMAP(Internet message access protocolおよび/またはPOP(post office protocol)、インスタントメッセージング(例えばXMPP(extensible messaging and presence protocol)、SIMPLE(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions)、IMPS(Instant Messaging and Presence Service)、および/または、SMS(Short Message Service)あるいはいずれかの他の適切な通信プロトコル、および、本書の出願日の時点ではまだ開発されていない通信プロトコルを含めるがそれらに限定されない、複数の通信標準、プロトコル、技術のいずれかを使用する。
【0087】
音声回路部110と、スピーカ111と、マイク113とは、ユーザとデバイス100との間の音声インタフェースを提供する。音声回路部110は、周辺装置インタフェース118から音声データを受信し、音声データを電気信号に変換し、電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間に聞こえる音波に変換する。また、音声回路部110は、音波からマイク113によって変換された電気信号を受信する。音声回路部110は、電気信号を音声データに変換し、音声データを処理するために周辺装置インタフェース118へ送信する。音声データは、周辺装置インタフェース118によって、メモリ102および/またはRF回路部108から検索されるか、および/または、メモリ102および/またはRF回路部108へ送信されてもよい。また、一部の実施形態では、音声回路部110は、ヘッドフォンジャック(例えば
図2の212)を含んでいる。ヘッドフォンジャックは、音声回路部110と、例えば出力のみのヘッドフォンや出力(例えば片耳または両耳用のヘッドフォン)と入力(例えばマイク)とを備えたヘッドフォンのような、着脱式音声入力/出力周辺装置との間のインタフェースを提供する。
【0088】
I/Oサブシステム106は、デバイス100の入力/出力周辺装置、例えばタッチスクリーン112およびその他の入力制御デバイス116を、周辺装置インタフェース118に接続する。I/Oサブシステム106は、オプションとして、ディスプレイコントローラ156と、光センサコントローラ158と、強度センサコントローラ159と、触覚フィードバックコントローラ161と、その他の入力または制御デバイス用の1つ以上の入力コントローラ160とを含んでいてもよい。1つ以上の入力コントローラ160は、その他の入力制御デバイス116との間で電気信号の送受信を行う。その他の入力制御デバイス116には、オプションとして、物理的ボタン(例えばプッシュボタン、ロッカーボタン等)、ダイヤル、スライド式スイッチ、ジョイスティック、クリックホイール等が含まれる。一部の代替的実施形態では、入力コントローラ160は、オプションとして、キーボード、赤外線ポート、USBポート、および例えばマウスのようなポインタデバイスのうちのいずれかに接続される(または、まったく接続されない)。1つ以上のボタン(例えば
図2の208)は、オプションとして、スピーカ111および/またはマイク113の音量調節のための上/下ボタンを含む。1つ以上のボタンは、オプションとして、プッシュボタン(例えば
図2の206)を含む。
【0089】
プッシュボタンの早押しは、2005年12月23日に出願され、米国特許第7,657,849号となり、参照によりその全体が本願に組み込まれる、米国特許出願第11/322,549号「Unlocking a Device by Performing Gestures on an Unlock Image」において説明されているように、タッチスクリーン112のロックを解除させるか、または、タッチスクリーンにおいてデバイスをアンロックするためのジェスチャを使用するプロセスを開始させてもよい。プッシュボタン(例えば、206)の長押しは、デバイス100の電源をオンまたはオフにさせてもよい。ユーザは、1つ以上のボタンの機能をカスタマイズすることができてもよい。タッチスクリーン112は、バーチャルボタンまたはソフトボタン、および1つ以上のソフトキーボードを実装するために使用される。
【0090】
タッチセンシティブディスプレイ112は、デバイスとユーザとの間の入力インタフェースおよび出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112との間で電気信号を送受信する。タッチスクリーン112は、視覚的出力をユーザに表示する。視覚的出力は、グラフィックスと、テキストと、アイコンと、ビデオと、それらのいずれかの組み合わせと(集合的に「グラフィックス」と称する)を含んでいてもよい。一部の実施形態では、視覚的出力の一部または全部が、ユーザインタフェースのオブジェクトに対応していてもよい。
【0091】
タッチスクリーン112は、タッチセンシティブ表面と、触覚および/または触感による接触に基づいてユーザからの入力を受け入れるセンサまたはセンサの集合とを有する。タッチスクリーン112およびディスプレイコントローラ156は(メモリ102の中のいずれかの関連のモジュールおよび/または命令の集合と共に)、タッチスクリーン112上の接触(および接触の移動または中断)を検出し、検出した接触を、タッチスクリーン112上に表示されるユーザインタフェースオブジェクト(例えば1つ以上のソフトキー、アイコン、ウェブページ、または画像)との対話に変換する。例示的な一実施形態では、タッチスクリーン112とユーザとの間の接点は、ユーザの指に対応する。
【0092】
タッチスクリーン112は、LCD(liquid crystal display)技術、LPD(light emitting polymer display)技術、またはLED(light emitting diode)技術を用いてもよいが、他の実施形態では他のディスプレイ技術が用いられてもよい。タッチスクリーン112およびディスプレイコントローラ156は、接触またはいずれかの動作またはその中断を、静電容量、抵抗、赤外線、表面弾性波技術だけでなく、タッチスクリーン112との1つ以上の接点を判定するための他の近接センサアレーまたは他の要素も含むけれどもそれらに限定されることなく、現在既知であるか今後開発される複数のタッチセンシング技術のいずれを用いて検出してもよい。例示的な一実施形態では、カリフォルニア州CupertinoのApple Inc.製のiPhone(登録商標)、およびiPod Touch(登録商標)にみられるような、投影型相互容量センシング技術が用いられている。
【0093】
一部の実施形態において、タッチスクリーン112のタッチセンシティブディスプレイは、米国特許第6,323,846号(Westerman et al.)、米国特許第6,570,557号(Westerman et al.)、および/または米国特許第6,677,932号(Westerman)、および/または米国特許公開2002/0015024A1(それぞれ、参照によりその全体が本願に組み込まれる)において説明されるマルチタッチセンシティブタッチパッドと同様のものであってもよい。しかしながら、タッチスクリーン112は、デバイス100からの視覚的出力を表示するが、タッチセンシティブタッチパッドは、視覚的出力を提供しない。
【0094】
一部の実施形態において、タッチスクリーン112のタッチセンシティブディスプレイは、以下の出願において説明されるようなものであってもよい。(1)米国特許出願第11/381,313号「Multipoint Touch Surface Controller」、2008年5月2日出願;(2)米国特許出願第10/840,862号「Multipoint Touchscreen」、2004年5月6日出願;(3)米国特許出願第10/903,964号「Gestures For Touch Sensitive Input Devices」、2004年7月30日出願;(4)米国特許出願第11/048,264「Gestures For Touch Sensitive Input Devices」、2005年1月31日出願;(5)米国特許出願第11/038,590号「Mode−Based Graphical User Interfaces For Touch Sensitive Input Devices」、2005年1月18日出願;(6)米国特許出願第11/228,758号「Virtual Input Device Placement On A Touch Screen User Interface」、2005年9月16日出願;(7)米国特許出願第11/228,700号「Operation Of A Computer With A Touch Screen Interface」、2005年9月16日出願;(8)米国特許出願第11/228,737「Activating Virtual Keys Of A Touch−Screen Virtual Keyboard」、2005年9月16日出願;(9)米国特許出願第11/367,749「Multi−Functional Hand−Held Device」、2008年3月3日出願。これらの出願は全て、参照によりその全体が本願に組み込まれる。
【0095】
タッチスクリーン112は、100dpiを超えるビデオ解像度を有してもよい。一部の実施形態では、タッチスクリーンは、およそ160dpiのビデオ解像度を有する。ユーザは、いずれかの適切なオブジェクトまたは付属物、例えばスタイラス、指等を用いて、タッチスクリーン112に接触してもよい。一部の実施形態では、ユーザインタフェースは、指に基づく接触およびジェスチャに第1に連動するように設計されるが、その場合、指がタッチスクリーン上で接触する面積が広いため、スタイラスに基づく入力ほど正確でないことがありうる。一部の実施形態では、デバイスは、ユーザが望んだ動作を行うために、指に基づくおおまかな入力を正確なポインタ/カーソル位置またはコマンドへと翻訳する。
【0096】
一部の実施形態では、タッチスクリーンに加えて、デバイス100は、個別の機能を起動または停止させるための(図示しない)タッチパッドを含んでいてもよい。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚的出力を表示しない、デバイスのタッチセンシティブエリアである。タッチパッドは、タッチスクリーン112とは別のタッチセンシティブ表面であるかまたは、タッチスクリーンによって形成されるタッチセンシティブ表面の延長であってもよい。
【0097】
また、デバイス100は、各種の構成要素に電力を供給するための電力系統162を含んでいる。電力系統162は、電力管理システムと、1つ以上の電源(例えばバッテリ、交流電流(AC))と、再充電システムと、電源障害検出回路と、電力コンバータまたは電力インバータと、電力ステータスインジケータ(例えばLED(light−emitting diode))と、携帯用デバイスの中の電力の生成、管理、分配に関連するその他のいずれかの構成要素とを含んでいてもよい。
【0098】
また、デバイス100は、1つ以上の光センサ164を含んでいてもよい。
図1Aは、I/Oサブシステム106の中の光センサコントローラ158に接続された光センサを示す。光センサ164は、CCD(charge−coupled device)またはCMOS(complementary metal−oxide semiconductor)フォトトランジスタを含んでいてもよい。光センサ164は、1つ以上のレンズを通して投影された、環境からの光を受信して、その光を、画像を表すデータに変換する。イメージングモジュール(カメラモジュールとも呼ばれる)143と連動して、光センサ164は、静止画像またはビデオをキャプチャしてもよい。一部の実施形態では、タッチスクリーンディスプレイが静止画像またはビデオ画像を取得するためのビューファインダとして用いられうるように、光センサが、デバイスの前面にあるタッチスクリーンディスプレイ112の反対側の、デバイス100の背面に位置している。一部の実施形態では、ユーザがテレビ会議の他の参加者をタッチスクリーンディスプレイ上で見ながらユーザの画像がテレビ会議用に取得されうるように、光センサが、デバイスの前面に位置している。一部の実施形態では、単一の光センサ164がテレビ会議と静止画および/または動画の取得との両方のためにタッチスクリーンディスプレイと一緒に使用されうるように、光センサ164の位置がユーザにより変更可能である(例えば、デバイスハウジングにおいてレンズおよびセンサを回転させることにより)。
【0099】
デバイス100はまた、オプションとして、1つ以上の接触強度センサ165を含む。
図1Aは、I/Oサブシステム106において強度センサコントローラ159に結合された接触強度センサを示している。接触強度センサ165は、オプションとして、1つ以上のピエゾ抵抗歪みゲージ、静電容量力センサ、電気力センサ、圧電力センサ、光力センサ、静電容量タッチセンシティブ表面、または他の強度センサ(例えば、タッチセンシティブ表面における接触の力(または圧力)を測定するために使用されるセンサ)を含む。接触強度センサ165は、環境から接触強度情報(例えば、圧力情報または圧力情報のプロキシ)を受信する。一部の実施形態では、少なくとも1つの接触強度センサが、タッチセンシティブ表面(例えば、タッチセンシティブディスプレイシステム112)と一緒に配置されるか、またはこれに近接している。一部の実施形態では、少なくとも1つの接触強度センサが、デバイス100の前面に配置されているタッチスクリーンディスプレイ112とは反対に、デバイス100の背面に配置される。
【0100】
また、デバイス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をオフにして使用不能にする。
【0101】
デバイス100はまた、オプションとして、1つ以上の触感出力生成器167を含む。
図1Aは、I/Oサブシステム106において触覚フィードバックコントローラ161に結合された触感出力生成器を示す。触感出力生成器167は、オプションとして、1つ以上の電気音響デバイス(例えば、スピーカまたは他のオーディオコンポーネントなど)、および/またはエネルギを直線運動に変換する電気機械デバイス(例えば、モータなど)、ソレノイド、電気活性高分子、圧電アクチュエータ、静電気アクチュエータ、または他の触感出力生成器コンポーネント(例えば、電気信号をデバイスにおける触感出力に変換するコンポーネント)を含む。接触強度センサ165は、触覚フィードバックモジュール133から触感フィードバック生成命令を受信し、デバイス100において、デバイス100のユーザが感知可能な触感出力を生成する。一部の実施形態では、少なくとも1つの触感出力生成器が、タッチセンシティブ表面(例えば、タッチセンシティブディスプレイシステム112)と一緒に配置されるか、またはこれに近接しており、オプションとして、タッチセンシティブ表面を垂直に移動させる(例えば、デバイス100の表面のイン/アウト)ことにより、または横方向へ移動させる(例えば、デバイス100の表面と同じ面における後退および前進)ことにより、触感出力を生成する。一部の実施形態では、少なくとも1つの触感出力生成器センサが、デバイス100の前面に配置されているタッチスクリーンディスプレイ112とは反対に、デバイス100の背面に配置される。
【0102】
また、デバイス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またはその他の全地球的航法システム)受信器(図示せず)とを含んでいる。
【0103】
一部の実施形態では、メモリ102の中に記憶されるソフトウェアコンポーネントには、オペレーティングシステム126と、通信モジュール(または命令の集合)128と、接触/動きモジュール(または命令の集合)130と、グラフィックスモジュール(または命令の集合)132と、テキスト入力モジュール(または命令の集合)134と、GPS(Global Positioning System)モジュール(または命令の集合)135と、アプリケーション(または命令の集合)136とが含まれる。さらに、一部の実施形態では、メモリ102(
図1A)または370(
図3)は、
図1Aおよび
図3に示すように、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、もしあれば、どのアプリケーションが現在アクティブであるのかを示す、アクティブアプリケーション状態と、どのアプリケーション、ビュー、またはその他の情報が、タッチスクリーンディスプレイ112の各種の領域を占有しているのかを示す表示状態と、デバイスの各種のセンサおよび入力制御デバイス116から取得された情報を含む、センサ状態と、デバイスの位置および/または姿勢に関する位置情報とのうち、1つ以上を含んでいる。
【0104】
オペレーティングシステム126(例えば、Darwin、RTXC、LINUX(登録商標)、UNIX(登録商標)、OS X、iOS、WINDOWS(登録商標)、または例えばVx Worksのように内蔵されたオペレーティングシステム)は、一般的なシステムタスクを制御および管理(例えばメモリ管理、ストレージデバイス制御、電力管理等)するための各種のソフトウェアコンポーネントおよび/またはドライバを含んでおり、各種のハードウェアおよびソフトウェアコンポーネント間の通信を円滑化する。
【0105】
通信モジュール128は、1つ以上の外部ポート124を経た他のデバイスとの通信を円滑化し、また、RF回路部108および/または外部ポート124によって受信されたデータを処理するための各種のソフトウェアコンポーネントを含んでいる。外部ポート124(例えばUSB(Universal Serial Bus)、FIREWIRE等)は、直接またはネットワーク経由(例えばインターネット、ワイヤレスLAN等)で間接的に、他のデバイスに接続するように構成される。一部の実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイスで用いられている30ピンコネクタと同じ、または類似した、および/または互換性のある、マルチピン(例えば30ピン)コネクタである。
【0106】
接触/動きモジュール130は、オプションとして、(ディスプレイコントローラ156と連動して)タッチスクリーン112とその他のタッチセンシティブデバイス(例えばタッチパッドまたは物理的クリックホイール)との接触を検出する。接触/動きモジュール130は、例えば接触が行われたかどうかを(例えば指が下がるイベントを検出して)判定することと、接触の強度(例えば、接触の力または圧力、または、接触の力または圧力の代替物)を判定することと、(例えば1つ以上の指がドラッグするイベントを検出して)接触の移動があるかどうかを判定してその移動をタッチスクリーン表面全体にわたって追跡することと、接触が中止されたかどうかを(例えば指が上がるイベントまたは接触の中断を検出して)判定することとのような、接触の検出に関連する各種の操作を行うための各種のソフトウェアコンポーネントを含んでいる。接触/動きモジュール130は、タッチセンシティブ表面から接触データを受信する。接点の移動(一連の接触データによって表される)を判定することは、オプションとして、接点の速さ(大きさ)と、速度(大きさおよび向き)と、および/または加速度(大きさおよび/または報告の変化)とを判定することを含む。これらの操作は、オプションとして、単一の接触(例えば1本の指の接触)または複数の同時接触(例えば「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール130およびディスプレイコントローラ156は、タッチパッド上の接触を検出する。
【0107】
一部の実施形態では、接触/動きモジュール130は、ユーザにより操作が実行されたか否かを判定するために(例えば、ユーザがアイコンを「クリック」したか否かを判定するために)、1つ以上の強度閾値の集合を使用する。一部の実施形態では、強度閾値の少なくともサブセットが、ソフトウェアパラメータに従って決定される(例えば、強度閾値は、特定の物理アクチュエータのアクティベーション閾値によっては決定されず、デバイス100の物理ハードウェアを変更せずに調整可能である)。例えば、トラックパッドまたはタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッドまたはタッチスクリーンディスプレイのハードウェアを変更せずに、事前定義された閾値の広い範囲のどこかへ設定可能である。加えて、一部の実装では、デバイスのユーザには、強度閾値の集合における1つ以上を調整する(例えば、個々の強度閾値を調整することにより、および/またはシステムレベルのクリック「強度」パラメータを用いて複数の強度閾値を一度に調整することにより)ためのソフトウェア設定が与えられる。
【0108】
接触/動きモジュール130は、オプションとして、ユーザによるジェスチャ入力を検出する。タッチセンシティブ表面上の多様なジェスチャは、多様な接触パタン(例えば、多様な動き、タイミング、および/または検出されたコンタクトの強度)を有する。それゆえ、ジェスチャは、オプションとして、特定の接触パタンを検出することによって検出される。例えば、指をタップするジェスチャを検出することは、指が下がるイベントを検出し、その後、指が上がる(リフトオフ)イベントを指が下がるイベントと同じ位置(アイコンの位置)で(または実質的に同じ位置で)検出することを含んでいる。別の例として、タッチセンシティブ表面を指でスワイプするジェスチャを検出することは、指が下がるイベントを検出した後に1つ以上の指をドラッグするイベントを検出し、その後、指が上がる(リフトオフ)イベントを検出することを含んでいる。
【0109】
グラフィックスモジュール132は、表示されるグラフィックスの視覚的効果(例えば、明るさ、透明度、彩度、コントラスト、または他の視覚的性質)を変更するためのコンポーネントを含めて、タッチスクリーン112またはその他のディスプレイ上にグラフィックスをレンダリングして表示するための各種の既知のソフトウェアコンポーネントを含んでいる。本書では、「グラフィックス」という用語は、テキストと、ウェブページと、(例えば、ソフトキーを含むユーザインタフェースオブジェクトのような)アイコンと、デジタル画像と、ビデオと、アニメーションとそれに類似したものとを限定することなく含めて、ユーザに表示されうるいかなるオブジェクトをも含んでいる。
【0110】
一部の実施形態では、グラフィックスモジュール132は、用いられることになるグラフィックスを表すデータを記憶している。個々の図形は、オプションとして、対応するコードを割り当てられる。グラフィックスモジュール132は、アプリケーション等から、必要に応じて、コーディネートされたデータおよびその他のグラフィックプロパティデータと共に表示されることになるグラフィックスを指定する1つ以上のコードを受信し、次いで、ディスプレイコントローラ156に出力するためのスクリーン画像データを生成する。
【0111】
触覚フィードバックモジュール133は、デバイス100によるユーザインタラクションに応えてデバイス100上の1つ以上の位置において触感出力を生成するために触感出力生成器167により使用される命令を生成するための、各種のソフトウェアコンポーネントを含む。
【0112】
テキスト入力モジュール134は、グラフィックスモジュール132の構成要素であってもよいが、各種のアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、そしてテキスト入力を必要とするいずれかの他のアプリケーション)にテキストを入力するためのソフトキーボードを提供する。
【0113】
GPSモジュール135は、デバイスの位置を判定し、この情報を各種のアプリケーションで使用するために(例えば位置特定に基づくダイヤル操作で使用するために電話138に、ピクチャ/ビデオメタデータとしてカメラ143に、例えば天気ウィジェット、ローカル・イエローページ・ウィジェット、地図/航法用ウィジェットのような、位置特定に基づくサービスを提供するアプリケーションに)提供する。
【0114】
アプリケーション136は、以下のモジュール(または命令の集合)またはそれらの下位集合または上位集合を含んでいてもよい。
・連絡先モジュール137(アドレス帳またはコンタクトリストと呼ばれることもある)、
・電話モジュール138、
・テレビ会議モジュール139、
・電子メールクライアントモジュール140、
・インスタントメッセージング(IM)モジュール141、
・エクササイズサポートモジュール142、
・静止画像および/またはビデオ画像用のカメラモジュール143、
・画像管理モジュール144、
・ビデオプレーヤモジュール、
・音楽プレーヤモジュール、
・ブラウザモジュール147、
・カレンダモジュール148、
・天気ウィジェット149−1、株式ウィジェット149−2、電卓ウィジェット149−3、アラームクロックウィジェット149−4、辞書ウィジェット149−5、およびユーザによって取得されるその他のウィジェットならびにユーザが作成したウィジェット149−6のうち1つ以上を含みうるウィジェットモジュール149、
・ユーザが作成したウィジェット149−6を作成するためのウィジェットクリエータモジュール150、
・検索モジュール151、
・ビデオプレーヤモジュールと音楽プレーヤモジュールとを統合するビデオおよび音楽プレーヤモジュール152、
・メモモジュール153、
・地図モジュール154、および/または、
・オンラインビデオモジュール155。
【0115】
メモリ102の中に記憶されうるその他のアプリケーション136の例には、他の文章処理アプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル権利管理、音声認識、および音声複製等が含まれる。
【0116】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、連絡先モジュール137は、名前をアドレス帳に追加することと、名前をアドレス帳から削除することと、名前に電話番号、電子メールアドレス、物理的アドレスまたはその他の情報を関連付けることと、名前に画像を関連付けることと、名前をカテゴリ化したりソートしたりすることと、電話138、テレビ会議モジュール139、電子メール140、またはIM141等によって通信を開始および/または円滑化するため、電話番号または電子メールアドレスを提供すること等を含めて、(例えば、メモリ102またはメモリ370の中の連絡先モジュール137のアプリケーション内部状態192の中に記憶された)アドレス帳またはコンタクトリストを管理するのに用いられてもよい。
【0117】
RF回路部108、音声回路部110、スピーカ111、マイク113、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、電話番号に対応する文字のシーケンスを入力し、連絡先モジュール137の中の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、それぞれの電話番号をダイヤルし、会話を行い、そして、会話が完了した時に接続を切るかまたは電話を切るのに電話モジュール138を用いてもよい。上記のように、ワイヤレス通信が、複数の通信標準、プロトコルおよび技術のいずれを用いてもよい。
【0118】
RF回路部108、音声回路部110、スピーカ111、マイク113、タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134、連絡先モジュール137および電話モジュール138と連動して、テレビ会議モジュール139は、ユーザと1人以上の他の参加者との間でユーザの命令に従ってテレビ会議を開始し、実行し、終了するための実行可能な命令を含んでいる。
【0119】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、電子メールクライアントモジュール140は、ユーザの命令に応じて電子メールを作成し、送信し、受信し、管理するための実行可能な命令を含んでいる。画像管理モジュール144と連動して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像またはビデオ画像を添えて電子メールを作成して送信することを非常に容易にする。
【0120】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、インスタントメッセージングモジュール141は、インスタントメッセージに対応する文字のシーケンスを入力し、以前に入力した文字を修正し、それぞれのインスタントメッセージを(例えば、電話に基づくインスタントメッセージについてのSMS(Short Message Service)またはMMS(Multimedia Message Service)プロトコルを用いてかまたは、インターネットに基づくインスタントメッセージについてのXMPP、SIMPLE、IMPSを用いて)送信し、インスタントメッセージを受信し、そして受信されたインスタントメッセージを見るための実行可能な命令を含んでいる。一部の実施形態では、送信された、および/または、受信されたインスタントメッセージには、MMSおよび/またはEMS(Enhanced Messaging Service)でサポートされるように、グラフィックス、写真、音声ファイル、ビデオファイル、および/または、その他の添付物が含まれてもよい。本書では、「インスタントメッセージング」とは、電話に基づくメッセージ(例えばSMSまたはMMSを用いて送信されるメッセージ)とインターネットに基づくメッセージ(例えばXMPP、SIMPLE,またはIMPSを用いて送信されるメッセージ)との両方のことを言う。
【0121】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154および音楽プレーヤモジュールと連動して、エクササイズサポートモジュール142は、エクササイズを(例えば、時間、距離、および/またはカロリー燃焼目標を添えて)作成し、エクササイズセンサ(スポーツデバイス)と通信し、エクササイズセンサデータを受信し、エクササイズを監視するのに用いられるセンサを較正し、エクササイズ用の音楽を選択して演奏し、そして、エクササイズデータを表示・記憶・送信するための実行可能な命令を含んでいる。
【0122】
タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触/動きモジュール130、グラフィックスモジュール132および画像管理モジュール144と連動して、カメラモジュール143は、静止画像またはビデオ(ビデオストリームを含めて)をキャプチャしてそれらをメモリ102の中に記憶し、静止画像またはビデオの特性を修正し、あるいは、静止画像またはビデオをメモリ102から削除するための実行可能な命令を含んでいる。
【0123】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134およびカメラモジュール143と連動して、画像管理モジュール144は、静止画像および/またはビデオ画像を構成し、修正(例えば編集)し、または他の要領で操作し、ラベルを付け、削除し、(例えばデジタルスライドショーまたはアルバムとして)提示し、そして、記憶するための実行可能な命令を含んでいる。
【0124】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、ブラウザモジュール147は、ウェブページまたはその部分だけでなくウェブページにリンクされた添付ファイルおよびその他のファイルをも、検索し、それにリンクし、受信し、そして表示することを含めて、ユーザ命令に従ってインターネットを閲覧するための実行可能な命令を含んでいる。
【0125】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140およびブラウザモジュール147と連動して、カレンダモジュール148は、ユーザ命令に従って、カレンダおよびカレンダに関連するデータ(例えばカレンダのエントリ、やることリスト等)を作成し、表示し、修正し、記憶するための実行可能な命令を含んでいる。
【0126】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134およびブラウザモジュール147と連動して、ウィジェットモジュール149は、ユーザによってダウンロードされ、使用されうる(例えば、天気ウィジェット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!Widgets)とを含んでいる。
【0127】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134およびブラウザモジュール147と連動して、ウィジェットクリエータモジュール150が、(例えば、ウェブページのユーザ指定部分をウィジェットに変えて)ウィジェットを作成するためにユーザによって使用されてもよい。
【0128】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、検索モジュール151は、ユーザの命令による1つ以上の検索基準(例えば1つ以上のユーザ指定の検索条件)に合致するテキスト、音楽、音声、画像、ビデオ、および/またはメモリ102の中のその他のファイルを検索するための実行可能な命令を含んでいる。
【0129】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、音声回路部110、スピーカ111、RF回路部108およびブラウザモジュール147と連動して、ビデオおよび音楽プレーヤモジュール152は、例えばMP3またはAACファイルのような1つ以上のファイル形式で記憶された、録音された音楽およびその他の音声ファイルをユーザがダウンロードして再生することを可能にする実行可能な命令と、(例えば、タッチスクリーン112上に、または外部ポート124を介して外部の接続されたディスプレイ上に)ビデオを表示し、提示し、またはその他の要領で再生するための実行可能な命令とを含んでいる。一部の実施形態では、デバイス100は、オプションとして、例えばiPod(Apple Inc.の商標)のようなMP3プレーヤの機能性を含む。
【0130】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132およびテキスト入力モジュール134と連動して、メモモジュール153は、ユーザ命令に従って、メモ、やることリスト等を作成して管理するための実行可能な命令を含んでいる。
【0131】
RF回路部108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、テキスト入力モジュール134、GPSモジュール135およびブラウザモジュール147と連動して、地図モジュール154は、ユーザ命令に従って、地図および地図に関連するデータ(例えば、ドライブの方向、店に関するデータ、および個別の位置またはその近くにおけるその他の観光スポット、およびその他の位置特定に基づくデータ)を受信し、表示し、修正し、そして記憶するために用いられうる。
【0132】
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックスモジュール132、音声回路部110、スピーカ111、RF回路部108、テキスト入力モジュール134、電子メールクライアントモジュール140およびブラウザモジュール147と連動して、オンラインビデオモジュール155は、ユーザが例えばH.264のような1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、(例えばストリーミングおよび/またはダウンロードによって)受信し、(例えばタッチスクリーン上で、または、外部ポート124を介して接続された外部のディスプレイ上で)再生し、個別のオンラインビデオへのリンクを持つ電子メールを送信し、そして、その他の要領でオンラインビデオを管理することを可能にする命令を含んでいる。一部の実施形態では、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141を用いて、個別のオンラインビデオへのリンクを送信する。オンラインビデオアプリケーションに関する追加の説明は、米国仮特許出願第60/936,562号「Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos」(2007年6月20日出願)、および米国特許出願第11/968,067号「Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos」(2007年12月31日出願)において見ることができ、これらの出願の内容は、参照によりその全体が本願に組み込まれる。
【0133】
上記の識別されたモジュールおよびアプリケーションの各々は、上記の1つ以上の機能と本願に記述する方法(例えば、本書で記述したコンピュータに実装された方法と、その他の情報処理方法)とを行うための実行可能な命令の集合に対応する。これらのモジュール(例えば、命令の集合)は、別個のソフトウェアプログラム、手順またはモジュールとして実装される必要はなく、それゆえ、各種のこれらのモジュールの部分集合が、各種の実施形態の中で、組み合わされたり、そうでなければ再構成されたりしてもよい。例えば、ビデオプレーヤモジュールは、音楽プレーヤモジュールと組み合わされて単一のモジュール(例えば、
図1Aのビデオおよび音楽プレーヤモジュール152)となってもよい。一部の実施形態では、メモリ102は、上記で識別したモジュールおよびデータ構造の部分集合を記憶してもよい。さらに、メモリ102は、上記で記述されていない追加のモジュールおよびデータ構造を記憶してもよい。
【0134】
一部の実施形態では、デバイス100は、デバイス上の機能の事前設定された集合の操作が、まったくタッチスクリーンおよび/またはタッチパッドだけを通して行われるようなデバイスである。タッチスクリーンおよび/またはタッチパッドをデバイス100の操作用の主要な入力制御デバイスとして用いることによって、デバイス100上の物理的入力制御デバイス(例えばプッシュボタン、ダイヤル等)の数が削減されうる。
【0135】
専らタッチスクリーンおよび/またはタッチパッドを通して行われる事前設定された機能の集合には、オプションとして、ユーザインタフェース間のナビゲーションが含まれる。一部の実施形態では、ユーザがタッチすると、タッチパッドがデバイス100を、デバイス100上に表示されるいかなるユーザインタフェースからもメイン、ホーム、またはルートメニューへとナビゲートする。そのような実施形態では、「メニューボタン」は、タッチパッドを用いて実装される。一部のその他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタンまたはその他の物理的な入力制御デバイスである。
【0136】
図1Bは、一部の実施形態によるイベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、(
図1Aの)メモリ102または(
図3の)370は、(例えばオペレーティングシステム126の中に)イベントソータ170と、それぞれのアプリケーション136−1(例えば前述のアプリケーション137乃至151、155、380乃至390のうちのいずれか)とを含んでいる。
【0137】
イベントソータ170は、イベント情報を受信して、アプリケーション136−1と、イベント情報の配信先であるアプリケーション136−1のアプリケーションビュー191とを判定する。イベントソータ170は、イベントモニタ171とイベント発送モジュール174とを含んでいる。一部の実施形態では、アプリケーション136−1は、アプリケーションがアクティブであるか実行中である場合にタッチセンシティブディスプレイ112上に表示される現在のアプリケーションビューを示す、アプリケーション内部状態192を含んでいる。一部の実施形態では、イベントソータ170は、デバイス/グローバル内部状態157を用いて、どのアプリケーションが現在アクティブであるのかを判定し、そして、アプリケーション内部状態192を用いて、イベント情報の配信先であるアプリケーションビュー191を判定する。
【0138】
一部の実施形態では、アプリケーション内部状態192は、追加情報として、例えば、アプリケーション136−1が実行を再開する時に用いられることになる再開情報と、アプリケーション136−1によって表示されているかまたは表示される準備ができている情報を示すユーザインタフェース状態情報と、アプリケーション136−1の以前の状態またはビューにユーザが戻ることを可能にするための状態の待ち行列と、ユーザが行った以前の動作のやり直しまたは取り消しの待ち行列とのうちの1つ以上を含んでいる。
【0139】
イベントモニタ171は、周辺装置インタフェース118からイベント情報を受信する。イベント情報には、サブイベント(例えば、マルチタッチジェスチャの一部として、タッチセンシティブディスプレイ112上のユーザのタッチ)についての情報が含まれる。周辺装置インタフェース118は、I/Oサブシステム106、または、例えば近接センサ166のようなセンサ、加速度計168、および/または(音声回路部110を通して)マイク113から受信する情報を送信する。周辺装置インタフェース118がI/Oサブシステム106から受信する情報は、タッチセンシティブディスプレイ112またはタッチセンシティブ表面からの情報を含んでいる。
【0140】
一部の実施形態では、イベントモニタ171は、所定の間隔で周辺装置インタフェース118に要求を送信する。それに応じて、周辺装置インタフェース118は、イベント情報を送信する。その他の実施形態では、周辺装置インタフェース118は、重大なイベント(例えば、所定の雑音閾値を超える、および/または、所定の持続時間を超える入力を受信すること)がある場合に限って、イベント情報を送信する。
【0141】
また、一部の実施形態では、イベントソータ170は、ヒットビュー判定モジュール172および/またはアクティブイベント・レコグナイザ判定モジュール173を含んでいる。
【0142】
ヒットビュー判定モジュール172は、タッチセンシティブディスプレイ112が2つ以上のビューを表示した時、サブイベントが1つ以上のビューの中のどこで発生したかを判定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることのできる制御部およびその他の要素で構成されている。
【0143】
アプリケーションに関連するユーザインタフェースのもう1つの態様は、本書ではアプリケーションビューまたはユーザインタフェースウィンドウと呼ばれることもあるビューの集合であり、その中で情報が表示され、タッチに基づくジェスチャが行われる。その中でタッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラマチック階層またはビュー階層の中のプログラマチックレベルに対応してもよい。例えば、タッチが検出される最低のレベルのビューは、ヒットビューと呼ばれてもよく、適切な入力として認められるイベントの集合は、タッチに基づくジェスチャを開始する最初のタッチのヒットビューに、少なくとも部分的に、基づいて判定されてもよい。
【0144】
ヒットビュー判定モジュール172は、タッチに基づくジェスチャのサブイベントに関する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、ヒットビューを、サブイベントを処理すべき階層の中の最低のビューとして識別する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベントまたは潜在的イベントを形成するサブイベントのシーケンスの中の最初のサブイベント)が生じる最低レベルのビューである。一旦ヒットビューがヒットビュー判定モジュール172によって識別されると、ヒットビューは典型的には、ヒットビューとして識別された同じタッチすなわち入力源に関するすべてのサブイベントを受信する。
【0145】
アクティブイベント・レコグナイザ判定モジュール173は、ビューの階層の中でどのビューがサブイベントの個別のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベント・レコグナイザ判定モジュール173は、ヒットビューだけが、サブイベントの個別のシーケンスを受信するべきだと判定する。その他の実施形態では、アクティブイベント・レコグナイザ判定モジュール173は、サブイベントの物理的位置を含むすべてのビューが、アクティブに関わっているビューであると判定し、従って、すべてのアクティブに関わっているビューが、サブイベントの個別のシーケンスを受信すべきだと判定する。その他の実施形態では、たとえタッチサブイベントが、1つの個別のビューに関連するエリアに完全に限定されたとしても、階層の中のより上位のビューは、やはり、アクティブに関わっているビューのままであり続けるだろう。
【0146】
イベント発送モジュール174は、イベント情報をイベントレコグナイザ(例えばイベントレコグナイザ180)へ発送する。アクティブイベント・レコグナイザ判定モジュール173を含む実施形態では、イベント発送モジュール174は、アクティブイベント・レコグナイザ判定モジュール173によって判定されたイベントレコグナイザへイベント情報を配信する。一部の実施形態では、イベント発送モジュール174は、それぞれのイベント受信器182によって検索されたイベント情報を、イベント待ち行列に記憶する。
【0147】
一部の実施形態では、オペレーティングシステム126はイベントソータ170を含んでいる。あるいは、アプリケーション136−1がイベントソータ170を含んでいる。別の実施形態では、イベントソータ170は、スタンドアロンモジュールであるかまたは、例えば接触/動きモジュール130のような、メモリ102の中に記憶された別のモジュールの一部である。
【0148】
一部の実施形態では、アプリケーション136−1は、複数のイベントハンドラ190と1つ以上のアプリケーションビュー191とを含んでおり、その各々は、アプリケーションのユーザインタフェースのそれぞれのビューの中で生じるタッチイベントを処理するための命令を含んでいる。アプリケーション136−1の個々のアプリケーションビュー191は、1つ以上のイベントレコグナイザ180を含んでいる。典型的には、それぞれのアプリケーションビュー191は、複数のイベントレコグナイザ180を含んでいる。他の実施形態では、1つ以上のイベントレコグナイザ180は、例えばユーザインタフェースキット(図示せず)かまたは、そこからアプリケーション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の中に含まれている。
【0149】
それぞれのイベントレコグナイザ180は、イベント情報(例えばイベントデータ179)をイベントソータ170から受信し、そして、イベント情報からイベントを識別する。イベントレコグナイザ180は、イベント受信器182と、イベント比較器184とを含んでいる。また、一部の実施形態では、イベントレコグナイザ180は、メタデータ183と、(サブイベント配信命令を含みうる)イベント配信命令188との少なくとも部分集合を含んでいる。
【0150】
イベント受信器182は、イベント情報をイベントソータ170から受信する。イベント情報は、サブイベントについての情報、例えば、タッチまたはタッチの移動を含んでいる。また、サブイベントに依存して、イベント情報は、例えばサブイベントの位置のような、追加情報を含んでいる。また、サブイベントが、タッチの動きに関わる場合、イベント情報は、サブイベントの速度および向きを含んでもよい。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えばポートレートの向きからランドスケープの向きへの、またはその逆の)デバイスの回転を含んでおり、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含んでいる。
【0151】
イベント比較器184は、イベント情報を事前設定されたイベントまたはサブイベント定義と比較し、そして、比較に基づいて、イベントもしくはサブイベントを判定するかまたは、イベントもしくはサブイベントの状態を判定または更新する。一部の実施形態では、イベント比較器184は、イベント定義186を含んでいる。イベント定義186は、イベントの定義(例えば、事前設定されたサブイベントのシーケンス)、例えば、イベント1(187−1)、イベント2(187−2)等を含んでいる。一部の実施形態では、イベント(187)のサブイベントは、例えば、タッチ開始、タッチ終了、タッチ移動、タッチ中止、およびマルチタッチを含んでいる。一例では、イベント1(187−1)についての定義は、表示されたオブジェクト上の2回のタップである。2回のタップは、例えば、所定の段階についての表示されたオブジェクト上の第1のタッチ(タッチ開始)と、所定の段階についての第1のリフトオフ(タッチ終了)と、所定の段階についての表示されたオブジェクト上の第2のタッチ(タッチ開始)と、所定の段階についての第2のリフトオフ(タッチ終了)とを含んでいる。別の例では、イベント2(187−2)についての定義は、表示されたオブジェクト上のドラッギングである。ドラッギングは、例えば、所定の段階についての表示されたオブジェクト上のタッチ(または接触)と、タッチセンシティブディスプレイ112全域でのタッチの移動と、タッチのリフトオフ(タッチ終了)とを含んでいる。また、一部の実施形態では、イベントは、1つ以上の関連するイベントハンドラ190についての情報を含んでいる。
【0152】
一部の実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含んでいる。一部の実施形態では、イベント比較器184は、どのユーザインタフェースオブジェクトがサブイベントに関連しているかを判定するため、ヒットテストを行う。例えば、3つのユーザインタフェースオブジェクトがタッチセンシティブディスプレイ112上に表示されているアプリケーションウィンドウにおいて、タッチセンシティブディスプレイ112上でタッチが検出された時、イベント比較器184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連しているかを判定するため、ヒットテストを行う。個々の表示されたオブジェクトがそれぞれのイベントハンドラ190に関連付けられると、イベント比較器は、ヒットテストの結果を用いて、どのイベントハンドラ190が起動されるべきかを判定する。例えば、イベント比較器184は、ヒットテストをトリガするサブイベントおよびオブジェクトに関連するイベントハンドラを選択する。
【0153】
また、一部の実施形態では、それぞれのイベント(187)についての定義は、サブイベントのシーケンスがイベントレコグナイザのイベントタイプに対応しているか否かが判定されるまでイベント情報の配信を遅らせる遅延作用を含んでいる。
【0154】
それぞれのイベントレコグナイザ180が、一連のサブイベントはイベント定義186の中のいずれのイベントにも合致しないと判定した場合、それぞれのイベントレコグナイザ180は、イベント不可能、イベント失敗、またはイベント終了状態を入力し、その後は、タッチに基づくジェスチャのその後のサブイベントを無視する。この状況では、もしあれば、ヒットビューについてアクティブであり続けるその他のイベントレコグナイザは、進行中のタッチに基づくジェスチャのサブイベントの追跡と処理とを続ける。
【0155】
一部の実施形態では、それぞれのイベントレコグナイザ180は、構成可能なプロパティと、フラグと、および/または、イベント配信システムがどのようにしてアクティブに関わっているイベントレコグナイザへのサブイベント配信を行うかを示すリストとを備えたメタデータ183を含んでいる。一部の実施形態では、メタデータ183は、設定可能なプロパティと、フラグと、および/または、イベントレコグナイザがどのようにして相互に対話しうるか(または、相互に対話可能にされるか)を示すリストとを含んでいる。一部の実施形態では、メタデータ183は、構成可能なプロパティと、フラグと、および/または、サブイベントがビュー階層またはプログラマチック階層の中の多様なレベルへ配信されるかどうかを示すリストとを含んでいる。
【0156】
一部の実施形態では、それぞれのイベントレコグナイザ180は、イベントのうちの1つ以上の個別のサブイベントが認識された場合にイベントに関連するイベントハンドラ190を起動する。一部の実施形態では、それぞれのイベントレコグナイザ180は、イベントに関連するイベント情報をイベントハンドラ190に配信する。イベントハンドラ190を起動することは、サブイベントをそれぞれのヒットビューに送信すること(および送信を延期すること)とは区別される。一部の実施形態では、イベントレコグナイザ180は、認識されたイベントに関連するフラグを投げ、そして、フラグに関連するイベントハンドラ190は、フラグを捕まえて事前設定されたプロセスを行う。
【0157】
一部の実施形態では、イベント配信命令188は、イベントハンドラを起動することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含んでいる。代わりに、サブイベント配信命令は、イベント情報を、一連のサブイベントに関連するイベントハンドラに、またはアクティブに関わっているビューに配信する。一連のサブイベントにかまたはアクティブに関わっているビューに関連するイベントハンドラは、イベント情報を受信して、事前設定されたプロセスを行う。
【0158】
一部の実施形態では、データ更新器176は、アプリケーション136−1で用いられるデータを作成して更新する。例えば、データ更新器176は、連絡先モジュール137の中で用いられる電話番号を更新し、またはビデオプレーヤモジュールの中で用いられるビデオファイルを記憶する。一部の実施形態では、オブジェクト更新器177は、アプリケーション136−1で用いられるオブジェクトを作成して更新する。例えば、オブジェクト更新器177は、新たなユーザインタフェースオブジェクトを作成するかまたは、ユーザインタフェースオブジェクトの位置を更新する。GUI更新器178は、GUIを更新する。例えば、GUI更新器178は、ディスプレイ情報を準備して、それをグラフィックスモジュール132へ送信してタッチセンシティブディスプレイ上に表示させる。
【0159】
一部の実施形態では、イベントハンドラ190は、データ更新器176と、オブジェクト更新器177と、GUI更新器178とを含んでいるかまたはそれらにアクセスする。一部の実施形態では、データ更新器176と、オブジェクト更新器177と、GUI更新器178とは、それぞれのアプリケーション136−1またはアプリケーションビュー191の単一のモジュールの中に含まれている。その他の実施形態では、それらは、2つ以上のソフトウェアモジュールの中に含まれている。
【0160】
理解されるべきだが、タッチセンシティブディスプレイ上のユーザのタッチについてのイベント処理に関する前述の議論は、入力デバイスを使って多機能デバイス100を操作するための他の形のユーザ入力にも適用されるのであるが、そのすべてがタッチスクリーン上で開始されるのではない。例えば、マウスの移動やマウスボタンの押し下げ(オプションとして、1つまたは複数のキーボードの押し下げや保持とコーディネートされる)、タッチパッド上の接触移動(タップ、ドラッグ、スクロール等)、ペンスタイラス入力、デバイスの動き、口頭の命令、検出された目の動き、バイオメトリック入力、および/またはいずれかのそれらの組み合わせが、オプションとして、認識されることになるイベントを定義するサブイベントに対応する入力として利用される。
【0161】
図2は、一部の実施形態によるタッチスクリーン112を有する携帯用多機能デバイス100を示す図である。タッチスクリーンは、オプションとして、ユーザインタフェース(UI)200の中に1つ以上のグラフィックスを表示する。本実施形態および以下に記述するその他の実施形態では、ユーザは、例えば1つ以上の指202(図では原寸に比例して描かれてはいない)または1つ以上のスタイラス203(図では原寸に比例して描かれてはいない)を使ってグラフィックス上でジェスチャを行うことによって、1つ以上のグラフィックスを選択可能にされる。一部の実施形態では、1つ以上のグラフィックスの選択は、ユーザが1つ以上のグラフィックスとの接触を中断する時に行われる。一部の実施形態では、ジェスチャには、オプションとして、デバイス100と接触していた指の1つ以上のタップ、1つ以上のスワイプ(左から右へ、右から左へ、上へおよび/または下へ)および/またはローリング(右から左へ、左から右へ、上へおよび/または下へ)が含まれる。一部の実装または状況では、グラフィックとの不注意な接触は、グラフィックを選択しない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションのアイコンをさっと掃くスワイプジェスチャは、オプションとして、対応するアプリケーションを選択しない。
【0162】
また、デバイス100は、例えば「ホーム」またはメニューボタン204のような、1つ以上の物理的ボタンを含んでいてもよい。前述したように、メニューボタン204を用いて、デバイス100上で実行されうるアプリケーションの集合の中のいずれかのアプリケーション136へのナビゲートが行われてもよい。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン112上に表示されるGUIの中のソフトキーとして実装される。
【0163】
一実施形態では、デバイス100は、タッチスクリーン112と、メニューボタン204と、デバイスの電源をオン/オフにしてデバイスをロックするためのプッシュボタン206と、音量調節ボタン208と、SIM(Subscriber Identity Module)カードスロット210と、ヘッドフォンジャック212と、ドッキング/充電用外部ポート124とを含んでいる。オプションとして、プッシュボタン206を用いて、ボタンを押して事前設定された時間間隔の間ボタンを押された状態に保持することによってデバイスの電源をオン/オフにし、ボタンを押して事前設定された時間間隔が経過する前にボタンを解放することによってデバイスをロックし、および/または、デバイスのロックを解除するかまたはロック解除プロセスを開始する。また、代替的実施形態では、デバイス100は、マイク113を通して一部の機能の起動または停止のための口頭入力を受け入れる。デバイス100はまた、オプションとして、タッチスクリーン112上の接触強度を検出するための1つ以上の接触強度センサ165、および/またはデバイス100のユーザのための触感出力を生成するための1つ以上の触感出力生成器167を含む。
【0164】
図3は、一部の実施形態によるディスプレイとタッチセンシティブ表面とを備えた例示的な多機能デバイスのブロック図である。デバイス300は携帯用である必要はない。一部の実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、(例えば子供の学習玩具のような)教育デバイス、ゲーミングシステム、または制御デバイス(例えばホームまたは業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク通信インタフェースまたはその他の通信インタフェース360と、メモリ370と、これらの構成要素を相互接続するための1つ以上の通信バス320とを含んでいる。通信バス320は、オプションとして、システムの構成要素間の通信を相互接続して制御する回路部(チップセットと呼ばれることもある)を含む。デバイス300は、典型的にはタッチスクリーンディスプレイであるディスプレイ340を含むI/O(input/output)インタフェース330を含んでいる。また、I/Oインタフェース330は、オプションとして、キーボードおよび/またはマウス(またはその他のポインティングデバイス)350と、タッチパッド355と、デバイス300における触感出力を生成するための触感出力生成器357(例えば、
図1Aを参照して上述した触感出力生成器167に類似したもの)と、センサ359(例えば、
図1Aを参照して上述した接触強度センサ165に類似する、光、加速度、近接、タッチセンシティブ、および/または接触強度のセンサ)と、を含む。メモリ370は、高速ランダムアクセスメモリ、例えばDRAM、SRAM、DDR RAMまたはその他のランダムアクセス・ソリッドステート・メモリデバイスを含んでおり、また、オプションとして、不揮発性メモリ、例えば、1つ以上の磁気ディスクストレージデバイス、光学ディスクストレージデバイス、フラッシュメモリデバイス、またはその他の不揮発性ソリッドステート・ストレージデバイスを含む。メモリ370は、オプションとして、CPU310から離れた位置の1つ以上のストレージデバイスを含む。一部の実施形態では、メモリ370は、携帯用多機能デバイス100(
図1A)のメモリ102の中に記憶されたプログラム、モジュールおよびデータ構造と類似したプログラム、モジュールおよびデータ構造、またはそのサブセットを記憶している。さらに、メモリ370は、オプションとして、携帯用多機能デバイス100のメモリ102の中に現存しない追加のプログラム、モジュールおよびデータ構造を記憶している。例えば、デバイス300のメモリ370は、オプションとして、描画モジュール380、プレゼンテーションモジュール382、文章処理モジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、および/または、表計算モジュール390を記憶しているが、一方で、携帯用多機能デバイス100(
図1A)のメモリ102は、オプションとして、これらのモジュールを記憶していない。
【0165】
上記で識別した
図3の個々の要素は、前述した1つ以上のメモリデバイスの中に記憶されてもよい。上記で識別した個々のモジュールは、上記の機能を行うための命令の集合に対応する。上記で識別したモジュールまたはプログラム(例えば、命令の集合)は、別個のソフトウェアプログラム、手順またはモジュールとして実装される必要はなく、それゆえ、これらのモジュールの各種の部分集合が、各種の実施形態の中で、組み合わされてもよいし、そうでなければ再構成されてもよい。一部の実施形態では、メモリ370は、上記で識別したモジュールおよびデータ構造の部分集合を記憶してもよい。さらに、メモリ370は、上述していない追加のモジュールおよびデータ構造を記憶してもよい。
【0166】
次に、例えば携帯用多機能デバイス100に実装されうるユーザインタフェースの実施形態に注意を向けよう。
【0167】
図4Aは、一部の実施形態による携帯用多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインタフェースを示す図である。同様のユーザインタフェースがデバイス300上に実装されてもよい。一部の実施形態では、ユーザインタフェース400は、以下の要素、またはその部分集合または上位集合を含んでいる。
・例えばセルラーおよびWiFi信号のようなワイヤレス通信用の信号強度インジケータ402、
・時刻404、
・Bluetoothインジケータ405、
・電池状態インジケータ406、
・以下のような頻繁に使用するアプリケーション用のアイコンを備えたトレイ408
・「電話」とラベル付けされた、電話モジュール138のためのアイコン416、これは、オプションとして、不在着信もしくはボイスメールメッセージの数のインジケータ414を含む。
・「メール」とラベル付けされた、電子メールクライアントモジュール140のためのアイコン418、これは、オプションとして、未読の電子メールの数のインジケータ410を含む。
・「ブラウザ」とラベル付けされた、ブラウザモジュール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、そして
・「設定」とラベル付けされた、設定アプリケーションまたはモジュールのためのアイコン446、これは、デバイス100の設定およびその各種のアプリケーション136に対するアクセスを提供する。
【0168】
なお、
図4Aに示されるアイコンのラベルは、例示的なものに過ぎない。例えば、ビデオおよび音楽プレーヤモジュール152のためのアイコン422は、オプションとして、「音楽」または「音楽プレーヤ」とラベル付けされていてもよい。他のラベルが、オプションとして、各種のアプリケーションアイコンのために使用される。一部の実施形態では、個々のアプリケーションアイコンのラベルは、個々のアプリケーションアイコンに対応するアプリケーションの名称を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、この特定のアプリケーションアイコンに対応するアプリケーションの名称と異なる。
【0169】
図4Bは、ディスプレイ450(例えばタッチスクリーンディスプレイ112)とは別のタッチセンシティブ表面451(例えば
図3のタブレットまたはタッチパッド355)を備えたデバイス(例えば
図3のデバイス300)上の例示的なユーザインタフェースを示す図である。デバイス300はまた、オプションとして、タッチセンシティブ表面451上の接触強度を検出するための1つ以上の接触強度センサ(例えば、1つ以上のセンサ357)、および/またはデバイス300のユーザのための触感出力を生成するための1つ以上の触感出力生成器359を含む。
【0170】
以下に記す例の一部は、(タッチセンシティブ表面とディスプレイとが組み合わされた)タッチスクリーンディスプレイ112上の入力に言及しながら与えられるであろうが、一部の実施形態では、デバイスは、
図4Bに示すように、ディスプレイとは別のタッチセンシティブ表面上の入力を検出する。一部の実施形態では、タッチセンシティブ表面(例えば
図4Bの451)は、ディスプレイ(例えば450)上の主軸(例えば
図4Bの453)に対応する主軸(例えば
図4Bの452)を有する。これらの実施形態によれば、デバイスは、タッチセンシティブ表面451との接触(例えば
図4Bの460および462)を、ディスプレイ上のそれぞれの位置に対応する位置で検出する(例えば
図4Bでは460は468に対応し、462は470に対応する)。このようにして、タッチセンシティブ表面がディスプレイとは別である場合に、タッチセンシティブ表面(例えば
図4Bの451)上でデバイスによって検出されたユーザの入力(例えば接触460および462、およびそれらの移動)が、多機能デバイスのディスプレイ(例えば
図4Bの450)上のユーザインタフェースを操作するためにデバイスによって用いられる。理解されるべきだが、同様の方法が、オプションとして、本書で記述されたその他のユーザインタフェースについて用いられる。
【0171】
加えて、以下に記す例は、主に指入力(例えば指の接触、指のタップジェスチャ、指のスワイプジェスチャ)に言及しながら与えられるであろうが、理解されるべきだが、一部の実施形態では、1つ以上の指入力が、別の入力デバイスからの入力(例えば、マウスベースの入力またはスタイラス入力)に置換される。例えば、スワイプジェスチャは、オプションとして、マウスクリック(例えば、接触の代わりに)とこれに続くスワイプの経路に沿ったカーソル移動(例えば、接触の移動の代わりに)に置換される。別の例として、タップジェスチャは、オプションとして、カーソルがタップジェスチャの位置上に配置されている間のマウスクリック(例えば、接触の検出とこれに続く接触の検出の終了の代わりに)に置換される。同様に、複数のユーザ入力が同時に検出された場合、理解されるべきこととして、複数のコンピュータマウスが、オプションとして、同時に使用されているか、または、マウスおよび指の接触が、オプションとして、同時に使用されている。
【0172】
図4Cは、例示的なパーソナル電子デバイス460を示す図である。デバイス460は、本体462を有する。一部の実施形態では、デバイス460は、(例えば、
図1A乃至
図4Bの)デバイス100および300に関して述べた特徴の一部または全部を有することがある。一部の実施形態では、デバイス460は、タッチセンシティブ・ディスプレイ・スクリーン464を有しており、以下タッチスクリーン464と言う。代わりに、またはタッチスクリーン464に加えて、デバイス460は、ディスプレイとタッチセンシティブ表面とを有する。デバイス100および300の場合と同じく、一部の実施形態では、タッチスクリーン464(またはタッチセンシティブ表面)は、加えられる接触(例えば、タッチ)の強度を検出するための1つ以上の強度センサを有してもよい。タッチスクリーン464(またはタッチセンシティブ表面)の1つ以上の強度センサが、タッチの強度を表す出力データを提供しうる。デバイス460のユーザインタフェースは、タッチの強度に基づいてタッチに応答してもよく、それは、多様な強度のタッチがデバイス460上の多様なユーザインタフェース操作を呼び出しうることを意味する。
【0173】
タッチ強度を検出して処理するための技法は、例えば、以下のような関連出願の中で見つけてもよい。すなわち、2013年5月8日に出願され、「Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際特許出願第PCT/US2013/040061号と、2013年11月11日に出願され、「Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された国際特許出願第PCT/US2013/069483号とであり、それらはそれぞれ、全体として参照により本願に援用する。
【0174】
一部の実施形態では、デバイス460は、1つ以上の入力メカニズム466および468を有する。入力メカニズム466および468が含まれる場合、それらは物理的なものでありうる。物理的入力メカニズムの例として、プッシュボタンおよび回転可能メカニズムがある。一部の実施形態では、デバイス460は、1つ以上の結合メカニズムを有する。そのような結合メカニズムが含まれる場合、例えば、帽子、メガネ、イヤリング、ネックレス、シャツ、上着、ブレスレット、腕時計のバンド、チェーン、ズボン、ベルト、靴、財布、リュック等とデバイス460とが結合できるようになりうる。これらの結合メカニズムによって、ユーザがデバイス460を着用できるようになりうる。
【0175】
図4Dは、例示的なパーソナル電子デバイス470を示す図である。一部の実施形態では、デバイス470は、
図1A、
図1B、および
図3に関して述べた構成要素の一部または全部を有することがある。デバイス470は、I/Oセクション474を1つ以上のコンピュータプロセッサ476およびメモリ478と動作可能なように結合するバス472を有する。I/Oセクション474は、タッチセンシティブ構成要素482と、任意でタッチ強度センシティブ構成要素484とを有しうる、ディスプレイ480に接続されてもよい。加えて、I/Oセクション474は、Wi−Fi、Bluetooth、近距離通信(NFC)、セルラーおよび/またはその他のワイヤレス通信技法を用いてアプリケーションおよびオペレーティングシステムデータを受信するために通信ユニット490に接続されてもよい。デバイス470は、入力メカニズム486および/または488を備えていることがある。入力メカニズム486は、例えば、回転可能な入力デバイスあるいは、押下可能で回転可能な入力デバイスであってもよい。入力メカニズム488は、一部の例ではボタンであってもよい。
【0176】
入力メカニズム488は、一部の例ではマイクであってもよい。パーソナル電子デバイス470は、GPSセンサ492、加速度計494、方向センサ495(例えば、コンパス)、ジャイロスコープ496、動きセンサ498、および/またはそれらの組み合わせのような各種のセンサを備えていることがあり、それらはすべて、I/Oセクション474に動作可能なように接続されうる。
【0177】
パーソナル電子デバイス470のメモリ478は、例えば1つ以上のコンピュータプロセッサ476によって実行された場合にはプロセス900乃至1500および2000乃至2200(
図9乃至
図15、および
図20乃至
図22)を含めてコンピュータプロセッサに上記の技法を実行させうる、コンピュータで実行可能な命令を格納するための非一時的なコンピュータ可読記憶媒体でありうる。また、コンピュータで実行可能な命令は、命令実行システム、装置もしくはデバイス、例えばコンピュータに基づくシステム、プロセッサを含むシステム、あるいは、命令実行システム、装置もしくはデバイスから命令をフェッチして命令を実行することができるその他のシステムによって使用されるかまたはそれと接続される、いずれかの非一時的なコンピュータ可読記憶媒体の中に格納されるか、および/またはトランスポートされうる。本明細書において、「非一時的なコンピュータ可読記憶媒体」とは、命令実行システム、装置、またはデバイスによって使用されるかまたはそれと接続される、コンピュータで実行可能な命令を明白に含みうるかまたは格納しうるいずれかの媒体である。非一時的なコンピュータ可読記憶媒体には、磁気、光学、および/または半導体記憶装置が含まれうるが、それらに限定されない。そのような記憶装置の例として、磁気ディスク、CD、DVDまたはブルーレイ技術に基づいた光学ディスク、および、永続ソリッドステートメモリ、例えばフラッシュ、ソリッドステートドライブ等がある。パーソナル電子デバイス470は、
図4Dの構成要素および構成に限定されないが、複数の構成においてその他のまたは追加の構成要素を含みうる。
【0178】
本明細書では、「アフォーダンス」という用語は、(
図1、
図3、
図4Cおよび
図4Dの)デバイス100、300、460および/または470の表示画面上に表示されうる、ユーザ対話型グラフィカルユーザインタフェースオブジェクトのことを言う。例えば、画像(例えば、アイコン)、ボタン、テキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスとなりうる。
【0179】
本明細書では、「フォーカス選択器」という用語は、ユーザが対話しているユーザインタフェースの現行(カレント)部分を指示する入力要素のことを言う。カーソルまたはその他の位置マーカを含む一部の実装では、カーソルが「フォーカス選択器」として動作し、それにより、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、またはその他のユーザインタフェース要素)上にある間にタッチセンシティブ表面(例えば
図3のタッチパッド355または
図4Bのタッチセンシティブ表面451)上で入力(例えば、押圧入力)が検出された場合に、検出された入力に従って特定のユーザインタフェース要素が調整される。タッチスクリーンディスプレイ上でのユーザインタフェース要素との直接対話を可能にするタッチスクリーンディスプレイ(例えば、
図1Aのタッチセンシティブ・ディスプレイ・システム112または
図4Aのタッチスクリーン112)を含む一部の実装では、タッチスクリーン上で検出された接触が「フォーカス選択器」として動作し、それにより、タッチスクリーンディスプレイ上で特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、またはその他のユーザインタフェース要素)の位置で入力(例えば、接触による押圧入力)が検出された場合に、検出された入力に従って特定のユーザインタフェース要素が調整される。一部の実装では、対応するカーソルの動きやタッチスクリーンディスプレイ上での接触の動きがなくても、(例えば、タブキーまたは矢印キーを用いてフォーカスを1つのボタンから別のボタンへと移動させることによって)フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域へと動かされ、これらの実装では、フォーカス選択器が、フォーカスの移動に従ってユーザインタフェースのさまざまな領域間で移動する。フォーカス選択器がとる特定の形に関係なく、フォーカス選択器は一般に、ユーザが意図する対話を(例えば、ユーザが対話しようと意図しているユーザインタフェースの要素をデバイスに示すことによって)ユーザインタフェースに伝えるためにユーザによって制御されるユーザインタフェース要素(またはタッチスクリーンディスプレイ上での接触)である。例えば、タッチセンシティブ表面(例えば、タッチパッドまたはタッチスクリーン)上で押圧入力が検出されている間の各ボタン上のフォーカス選択器(例えば、カーソル、接触、または選択ボックス)の位置は、ユーザが(デバイスのディスプレイ上に示す他のユーザインタフェース要素ではなく)各ボタンを起動することを意図していることを示すであろう。
【0180】
明細書および請求項では、接触の「特性的強度」という用語は、接触の1つ以上の強度に基づく接触の特性のことを言う。一部の実施形態では、特性的強度は、複数の強度サンプルに基づいている。特性的強度は、任意で、事前設定された数の強度サンプル、または、事前設定されたイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触動作の開始を検出する前または後、接触の終了を検出する前、接触の強度の増加を検出する前または後、および/または、接触の強度の減少を検出する前または後)に関して事前設定された時間枠(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に集められた強度サンプルの集合に基づいている。接触の特性的強度は、任意で、接触の強度の最大値と、接触の強度の平均値(ミーンバリュー)と、接触の強度の平均値(アベレージバリュー)と、接触の強度の上位10%の値と、接触の強度の最大値の半分の値と、接触の強度の最大値の90%の値と、またはその種の他のものとのうちの1つ以上に基づいている。一部の実施形態では、接触の継続時間を用いて(例えば、特性的強度が、長時間の接触強度の平均である場合)、特性的強度が判定される。一部の実施形態では、ユーザによって操作が行われたのかどうかを判定するため、特性的強度が、1つ以上の強度閾値の集合と比較される。例えば、1つ以上の強度閾値の集合の中に、第1の強度閾値と第2の強度閾値とが含まれているとする。この例では、第1の閾値を超えない特性的強度を持つ接触は、第1の操作という結果になり、第1の強度閾値を超えるが第2の強度閾値を超えない特性的強度を持つ接触は、第2の操作という結果になり、第2の閾値を超える特性的強度を持つ接触は、第3の操作という結果になる。一部の実施形態では、特性的強度と1つ以上の閾値の間の比較を用いて、第1の操作を行うか第2の操作を行うのかを判定するのではなく、1つ以上の操作を行うか否か(例えば、それぞれの操作を行うのか、あるいは、それぞれの操作を行うのを見合わせるのか)が判定される。
【0181】
一部の実施形態では、特性的強度を判定するために、ジェスチャの一部分が識別される。例えば、タッチセンシティブ表面が、開始位置から移行して終了位置まで到達する連続的スワイプ接触を受信し、終了位置では接触の強度が増加することがある。この例では、終了位置での接触の特性的強度は、連続的スワイプ接触の部分だけに基づいてもよく、スワイプ接触全体(例えば、終了位置におけるスワイプ接触の部分だけ)には基づかなくてもよい。一部の実施形態では、接触の特性的強度を判定する前に、スムージングアルゴリズムがスワイプ接触の強度に適用されてもよい。例えば、スムージングアルゴリズムには、任意で、重み付けされない平滑化平均スムージングアルゴリズムと、三角スムージングアルゴリズムと、メディアンフィルタスムージングアルゴリズムと、および/または、指数スムージングアルゴリズムとのうちの1つ以上が含まれる。一部の状況下では、これらのスムージングアルゴリズムは、特性的強度を判定するために、スワイプ接触の強度のきつい急増や落ち込みを除去する。
【0182】
タッチセンシティブ表面上の接触の強度は、1つ以上の強度閾値、例えば、接触検出強度閾値、弱押圧強度閾値、強押圧強度閾値、および/または1つ以上のその他の強度閾値と比べて特性付けられることがある。一部の実施形態では、弱押圧強度閾値は、デバイスが物理的なマウスまたはトラックパッドのボタンをクリックすることに典型的に関連する操作を行う際の強度に対応する。一部の実施形態では、強押圧強度閾値は、デバイスが物理的なマウスまたはトラックパッドのボタンをクリックすることに典型的に関連する操作とは異なる操作を行う際の強度に対応する。一部の実施形態では、弱押圧強度閾値を下回る(例えば、且つ、それを下回ると接触が検出されないような名目上の接触検出強度閾値は上回る)特性的強度で接触が検出される場合、デバイスは、弱押圧強度閾値または強押圧強度閾値に関連する操作を行うことなく、タッチセンシティブ表面上で接触の動きに従ってフォーカス選択器を動かすであろう。一般に、他に記述されない限り、これらの強度閾値は、さまざまなユーザインタフェース図の間で一貫している。
【0183】
弱押圧強度閾値を下回る強度から、弱押圧強度閾値と強押圧強度閾値との間の強度への、接触の特性的強度の増加を、「弱押圧」入力と言うことがある。強押圧強度閾値を下回る強度から、強押圧強度閾値を上回る強度への、接触の特性的強度の増加を、「強押圧」入力と言うことがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と弱押圧強度閾値との間の強度への、接触の特性的強度の増加を、タッチ表面上での接触の検出と言うことがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性的強度の減少を、タッチ表面からの接触のリフトオフの検出と言うことがある。一部の実施形態では、接触検出強度閾値はゼロである。一部の実施形態では、接触検出強度閾値はゼロより大きい。
【0184】
本明細書で記述した一部の実施形態では、それぞれの押圧入力を含むジェスチャを検出するのに応じて、または、それぞれの接触(または複数の接触)と共に行われるそれぞれの押圧入力を検出するのに応じて、1つ以上の操作が行われ、この場合、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(または複数の接触)の強度の増加を検出することに少なくとも部分的に基づいて検出される。一部の実施形態では、それぞれの操作は、(例えば、それぞれの押圧入力の「ダウンストローク」のような)押圧入力強度閾値を上回るそれぞれの接触の強度の増加を検出することに応じて行われる。一部の実施形態では、押圧入力には、押圧入力強度閾値を上回るそれぞれの接触の強度の増加と、押圧入力強度閾値を下回る接触の強度のその後の減少とが含まれ、それぞれの操作は、(例えば、それぞれの押圧入力の「アップストローク」のような)押圧入力閾値を下回るそれぞれの接触の強度のその後の減少を検出することに応じて行われる。
【0185】
一部の実施形態では、「ジッタ」と呼ばれることもある偶発的な入力を避けるためにデバイスは強度ヒステリシスを採用し、この場合、デバイスは、押圧入力強度閾値に対する事前設定された関係を使ってヒステリシス強度閾値を定義するかまたは選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値をX単位下回る、あるいは、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、または何らかの合理的な割合である)。従って、一部の実施形態では、押圧入力には、押圧入力強度閾値を上回るそれぞれの接触の強度の増加と、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度のその後の減少とが含まれ、それぞれの操作は、(例えば、それぞれの押圧入力の「アップストローク」のような)ヒステリシス強度閾値を下回るそれぞれの接触の強度のその後の減少を検出することに応じて行われる。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増加と、任意で、ヒステリシス強度以下の強度への接触の強度のその後の減少とを検出する場合に限って検出され、そして、それぞれの操作が、(例えば、状況によって、接触の強度の増加、または接触の強度の減少のような)押圧入力を検出することに応じて行われる。
【0186】
説明を簡単にするために、押圧入力に関連する押圧入力に応じてかまたは押圧入力を含むジェスチャに応じて行われる動作の記述は、任意で、押圧入力強度閾値を上回る接触の強度の増加と、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増加と、押圧入力強度閾値を下回る接触の強度の減少と、および/または、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少とのうちのいずれかを検出することに応じてトリガされる。加えて、押圧入力強度閾値を下回る接触の強度の減少を検出することに応じて操作が行われると記述した例において、操作は、任意で、押圧入力強度閾値に対応し、かつそれを下回るヒステリシス強度閾値を下回る接触の強度の減少を検出することに応じて行われる。
【0187】
本明細書では、「インストールされたアプリケーション」とは、電子デバイス(例えば、デバイス100、300、460および/または470)上にダウンロードされていて、デバイス上で起動される(例えば、オープンされる)準備ができているソフトウェアアプリケーションのことを言う。一部の実施形態では、ダウンロードされたアプリケーションが、ダウンロードされたパッケージからプログラム部分を抽出した後に、抽出された部分をコンピュータシステムのオペレーティングシステムに統合するようなインストールプログラムによって、インストールされたアプリケーションとなる。
【0188】
本明細書では、「オープンアプリケーション」または「実行中のアプリケーション」という用語は、(例えば、デバイス/グローバル内部状態157および/またはアプリケーション内部状態192の一部として)保持された状態情報を持つソフトウェアアプリケーションのことを言う。オープンアプリケーションまたは実行中のアプリケーションは、下記のタイプのアプリケーションのうちのいずれか1つでありうる。
・アプリケーションがその上で使用されているデバイスの表示画面上に現在表示されている、アクティブなアプリケーション、
・現在表示されていないが、アプリケーション用の1つ以上のプロセスが1つ以上のプロセッサによって処理されている、バックグラウンドアプリケーション(またはバックグラウンドプロセス)、
・実行中ではないが、(揮発性または不揮発性の)メモリ内に格納されていてアプリケーションの実行を再開するのに用いられうる状態情報を有する、サスペンドまたは休止状態のアプリケーション。
【0189】
本明細書では、「閉じたアプリケーション」という用語は、保持された状態情報を持たない(例えば、閉じたアプリケーションのための状態情報が、デバイスのメモリ内に記憶されていない)ソフトウェアアプリケーションのことを言う。従って、アプリケーションを閉じることには、そのアプリケーション用のアプリケーションプロセスを停止および/または削除して、そのアプリケーション用の状態情報をデバイスのメモリから削除することが含まれる。一般に、第1のアプリケーションの間に第2のアプリケーションを開いても、第1のアプリケーションは閉じない。第2のアプリケーションを表示していて第1のアプリケーションが表示されなくなる場合、第1のアプリケーションはバックグラウンドアプリケーションになる。
【0190】
次に、異なる電子デバイス間で移行する際のユーザ体験を向上させるため、デバイス100、300、460および/または470のような、ディスプレイとタッチセンシティブ表面とを備えた多機能デバイス上に実装されうるユーザインタフェース(「UI」)および関連のプロセスの実施形態に注意を向けよう。簡潔にするために、本明細書で記述される機能は、「連続性(Continuity)」機能と呼ばれることがある。
【0191】
1.連続性機能の例示的用途
図5A乃至
図5Dは、連続性機能を用いた2つの異なる電子デバイス間の例示的な移行を示す図である。
図5Aで、ユーザ502は電子デバイス504を使用している。電子デバイス504は、一部の実施形態では携帯用多機能デバイス100であってもよい。図示するように、電子デバイス504はセルラー電話である。セルラー電話504は、ユーザインタフェース画面506を表示している。ユーザインタフェース画面506は、セルラー電話504上で実行中のメッセージングアプリケーションの一部である。ユーザインタフェース画面506は、ユーザ502とジョンという名前の参加者510との間のメッセージの内容を示す。例示するメッセージの内容には、メッセージング会話を表すメッセージの吹き出し508が含まれている。進行中の会話では、ジョン(参加者510)がユーザ504にウェブサイトのURLを尋ねたところである。
【0192】
セルラー電話504は比較的小さな表示画面を有しているため、要求されたウェブサイトのURLをセルラー電話504で調べるのは、効率が悪いと判明することがある。代わりに、ユーザ504は、要求された情報を比較的大きいディスプレイを持つ電子デバイス上で見つけようとすることがありうる。
図5Bに示すように、ユーザ504は、この目的でタブレットコンピュータ512に近づくのだが、それは、タブレットコンピュータ512の画面の方が大きいため、このタスクにより適しているからである。セルラー電話504を保持しているユーザ502がタブレットコンピュータ512に近づくにつれて、2つのデバイスは互いのワイヤレス通信圏内に入り、ワイヤレス通信を開始する。タブレットコンピュータ512は、低エネルギのワイヤレスプロトコルを介してセルラー電話504の存在を検出してもよい。検出した時点で、タブレットコンピュータ512は、セルラー電話504から、セルラー電話504上でメッセージングアプリケーションがアクティブであることを示す使用情報のような、追加の情報を入手してもよい。
【0193】
図5Cを参照すると、この情報に基づいて、タブレットコンピュータ512がアフォーダンス514を表示して、ユーザが進行中のメッセージング会話をタブレットコンピュータ512上で続けることができることを示す。アフォーダンス514は、ユーザインタフェースロック状態画面515上に表示されてもよい。言い換えると、セルラー電話504を検出して(セルラー電話504上で使用されているメッセージングアプリケーションに関する)使用情報を受信することに応じて、タブレットコンピュータ512は、連続性アフォーダンス(例えば、アイコン)514を表示して、デバイス間のメッセージングアプリケーションの連続性が可能であることをユーザに知らせる。
【0194】
本明細書では、「アフォーダンス」という用語は、(
図1、
図3、および
図4Cの)デバイス100、300、および/または460の表示画面上に表示されうる、ユーザ対話型グラフィカルユーザインタフェースオブジェクトのことを言う。例えば、画像(例えば、アイコン)、ボタン、テキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスとなりうる。
【0195】
ユーザは、表示された連続性アフォーダンスを選択して、対応するメッセージングアプリケーションを起動することができる。一部の実施形態では、ユーザは、タッチジェスチャ(例えば、タップ、スワイプ、フリック、長押し)を介して連続性アフォーダンスを選択してもよい。一部の実施形態では、ユーザは、マウスのジェスチャ(例えば、ホバリング、クリック、ダブルクリック、ドラッグ)を介して連続性アフォーダンスを選択してもよい。
図5Dの例では、ユーザ502は、(矢印516で示すように)アフォーダンス514を上方にスワイプして、タブレットコンピュータ512上の対応するメッセージングアプリケーションを起動してもよい。すなわち、特定の向き(例えば、上向き)でのスワイプジェスチャに応じて、タブレットコンピュータ512はメッセージングアプリケーションをロック解除して起動する。タブレットコンピュータ512上で起動されるメッセージングアプリケーションは、セルラー電話504上のアクティブなメッセージングアプリケーションのバージョンであってもよい。例えば、タブレットコンピュータ512上のアクティブなメッセージングアプリケーションが、iPad(登録商標)用のMessagesであり、他方、セルラー電話504上でアクティブなメッセージングアプリケーションは、iPhone(登録商標)用のMessagesであってもよく、どちらもカリフォルニア州CupertinoのApple Inc.によって製造されている。
【0196】
また、対応するメッセージングアプリケーションを起動するのに加えて、タブレットコンピュータ512は、セルラー電話504上で示されるのと同じメッセージの内容を表示してもよい。さらに、タブレットコンピュータ512は、より大きな表示画面を有することから、追加のメッセージの吹き出し518が示されてもよい(セルラー電話504上では吹き出し508だけが示されたことを思い出していただきたい)。ここからユーザ502は、参加者510についての要求されたURLを見つけるため、タブレットコンピュータ512上のウェブ閲覧アプリケーションに切り替えてもよい。
【0197】
上記の連続性技法によって、ユーザ502は、進行を止めることなくセルラー電話504からタブレットコンピュータ512へと移行した。移行の間、ユーザ502は、手動でメッセージアプリケーションを見つけて起動する必要がなかった。さらに、移行の間、ユーザ502は、参加者510に関するメッセージの内容を他のメッセージの内容の中から探す必要がなかった。そうではなく、メッセージングアプリケーションの状態が、セルラー電話504からタブレットコンピュータ512への移行の後でも残存していた。
【0198】
米国特許出願第11/322,549号は、現在では米国特許第7,657,849号であるが、ユーザインタフェースロック状態(以下「ロック状態」と言う)において、デバイス100、300または460のようなデバイスは、電源が入っていて使用できるけれども、全部ではないにしてもほとんどのユーザ入力を無視することを記述している。すなわち、デバイスは、ユーザ入力に応じて動作をすることはなく、および/または、デバイスは、ユーザ入力に応じて事前設定された操作の集合を行うことを防止されている。事前設定された操作の集合には、ユーザインタフェース間のナビゲーションと、事前設定された機能の集合の起動および停止とが含まれうる。ロック状態を用いて、デバイスの意図されていないかまたは許可されていない使用、あるいは、デバイスの機能の起動もしくは停止を防止しうる。デバイスがロック状態にある場合、デバイスはロックされていると言ってもよい。一部の実施形態では、ロック状態にあるデバイスは、デバイスをユーザインタフェースロック解除状態へ移行させるための試行に相当する入力、または、デバイスの電源を切ることに相当する入力を含めて、限定的な一組のユーザ入力に応答してもよい。言い換えると、ロックされたデバイスは、デバイスをユーザインタフェースロック解除状態へ移行させるための試行に相当するユーザ入力かまたはデバイスの電源を切ることに相当するユーザ入力には応答するが、ユーザインタフェース間をナビゲートするための試行に相当するユーザ入力には応答しない。理解されるべきだが、たとえデバイスがユーザ入力を無視したとしても、デバイスはやはり、入力を検出した時点で、入力が無視されるであろうということを示すために、ユーザに(視覚的、聴覚的、または振動によるフィードバックのような)感覚的フィードバックを提供してもよい。しかし、ロックされたデバイスは、やはり、限定的なクラスの入力には応答することがある。限定的なクラスには、連続性フィーチャを呼び出す入力を含めて、デバイスをユーザインタフェースロック解除状態へ移行するための試行に相当するとデバイスによって判断される入力が含まれうる。
【0199】
ユーザインタフェースロック解除状態(以下、「ロック解除状態」と言う)において、デバイスは通常の操作状態にあり、ユーザインタフェースとの対話に相当するユーザ入力を検出してそれに応答している。ロック解除状態にあるデバイスは、ロック解除デバイスと記述されてもよい。ロック解除デバイスは、ユーザインタフェース間のナビゲーション、データの入力、および機能の起動もしくは停止について、ユーザ入力を検出してそれに応答する。デバイスがタッチスクリーンを含む実施形態では、ロック解除デバイスは、タッチスクリーンを通じて、ユーザインタフェース間のナビゲーション、データの入力、および機能の起動もしくは停止に対応する接触を検出してそれに応答する。
【0200】
図5Eは、セルラー電話504とタブレットコンピュータ512との間の連続性の別例を示す図であるが、別の例示的アプリケーション、この場合はウェブ閲覧アプリケーションを含む図である。
図5Eは、連続性機能がどのようにして長い文書を作成しているユーザに貢献するかを示す図である。図のように、セルラー電話504が、ウェブ閲覧アプリケーションによってウェブページ520を表示している。セルラー電話504は比較的小さな表示画面を有しているため、ユーザは、タブレットコンピュータ512のような、圏内にあるより大きなデバイスへの移行を望むことがある。2つのデバイスは圏内にあるのだから、タブレットコンピュータ512は、セルラー電話504の近接をワイヤレスで検出してもよく、アクティブなウェブ閲覧アプリケーションに関する使用情報をセルラー電話504から受信してもよい。この検出と受信された使用情報とに応じて、タブレットコンピュータ512は、連続性アフォーダンス522を表示する。連続性アフォーダンス522は、起動されることになるアプリケーションはウェブ閲覧アプリケーションであることを示すサムネイル画像を含んでいてもよい。アフォーダンスが選択されると、タブレットコンピュータ512は、ウェブ閲覧アプリケーションのそのバージョンを起動する。さらに、対応するウェブ閲覧アプリケーションを起動した後、タブレットコンピュータ512は、セルラー電話504上で表示されているウェブページ520の部分を表示する。従って、ユーザ502は、自分が中断したところから読み続けてもよい。タブレットコンピュータ512は表示画面がより大きいため、ウェブページ520の追加部分521も閲覧のため表示されてもよいことに留意されたい。
【0201】
一部の実施形態では、特定の向きにアフォーダンスをスワイプすることによってユーザが連続性アフォーダンスを選択する(例えば、呼び出す)。
図5Dの例では、上向きのスワイプを用いて連続性アフォーダンス514を呼び出す。この場合、連続性アフォーダンス上のタップに応じて―これでは連続性フィーチャを呼び出すには不十分だったため―デバイスは、連続性アフォーダンスを(視覚的アニメーションを介して)飛び跳ねさせて、連続性フィーチャを呼び出すにはスワイプが必要であることをユーザに示してもよい。任意で、デバイスは、スワイプが必要であることをユーザに知らせるため、注意書き(説明テキスト)を表示してもよい。任意で、デバイス100は、スワイプを選択として登録するため、事前設定された閾値距離を越えて連続性アフォーダンスをスワイプすることをユーザに求めてもよい。この場合、閾値より短いスワイプに応じて、デバイスは、アフォーダンスを飛び跳ねさせ、それによって、連続性フィーチャを呼び出すにはより長いスワイプが必要であることをユーザに示唆してもよい。任意で、デバイスは、注意書きを表示して、連続性フィーチャを呼び出すにはより長いスワイプが必要であることをユーザに知らせてもよい。任意で、デバイスは、ユーザがアフォーダンスと数回対話したのにどの試行でも特徴を呼び出し損ねた後に限って、注意書きを表示してもよい。あるいは、一部の実施形態では、アフォーダンスをタップすることによって、ユーザが連続性アフォーダンスを選択する。
図5Eの例では、連続性アフォーダンス522がタップによって選択されてもよい。
【0202】
2.連続性機能を呼び出すための例示的ユーザインタフェース
次に、
図5F乃至
図5Nを参照しながら、連続性機能を呼び出すためのアフォーダンスが表示されうる別のやり方に注意を向けよう。
図5Fに示すように、一部の実施形態では、デバイス100aが、圏内にあって関連のアプリケーション使用データを送信している互換性のある外部デバイスを感知した場合に、連続性アフォーダンス522が、ユーザインタフェースロック画面523上に表示される。(デバイス100aは、一部の実施形態ではデバイス100であってもよい。)連続性アフォーダンス522の表示は一時的であってもよいので、連続性アフォーダンス522は、何らかの条件の後では表示されなくなることがある。例えば、連続性アフォーダンス522が、事前設定された時間(例えば、8秒間)表示された後で表示から削除されてもよい。別の例として、互換性のある外部デバイスが通信圏から離れた場合に、連続性アフォーダンス522が表示から削除されてもよい。任意で、たとえデバイスが関連のアプリケーション使用データを送信しても、互換性のある外部デバイスが圏内に入ってから、事前設定された時間(例えば、8秒間)が経過した後にデバイス100aのタッチセンシティブディスプレイの電源が入った場合には、連続性アフォーダンス522は表示されない。任意で、互換性のある外部デバイス(またはその上のアクティブなアプリケーション)が事前設定された最近の時間内に(例えば、直近の8秒以内に)使用された場合に限って、連続性アフォーダンス522がロック画面523上に表示される。
【0203】
また、
図5Fにも示すように、一部の実施形態では、連続性アフォーダンス526が、デバイス100bのユーザインタフェースロック画面525上に常設的に現れるので、アフォーダンスは、ロック画面525が表示されている時にはいつでも表示されるということになる。(デバイス100bは、一部の実施形態ではデバイス100でありうる。)常設的連続性アフォーダンス526は、互換性のあるデバイスが近くにあって連続性が可能である場合に、1つの視覚的外観を呈してもよい。アフォーダンスは、移行するためのデバイスが存在しない場合、別の視覚的外観を呈してもよく、例えば、無効のように見えてもよい。常設的連続性アフォーダンス526は、強調された視覚的プロフィールを有することが連続性フィーチャにとって望ましい場合に用いられてもよい。
【0204】
また、
図5Fに示すように、一部の実施形態では、連続性アフォーダンス526が、デバイス100cのロック画面527上に、他のシステムメッセージの待ち行列の中のメッセージとして表示される。(デバイス100cは、一部の実施形態ではデバイス100であってもよい。)図示するように、デバイス100は、ユーザに着信メッセージ、電話の呼び出し、カレンダの入力等を通知する通知メッセージを表示してもよい。デバイス100cは、これらの通知メッセージを整理して待ち行列にしてもよい。これらの実施形態では、連続性アフォーダンス526は、対応するアプリケーションを起動するデバイスの能力をユーザに通知するために同様に現れてもよい。この配置は、縮小され限定された視覚的プロフィールを有することが連続性フィーチャにとって望まれる場合に用いられてもよい。
【0205】
図5Gは、バイオメトリック読取装置を使った連続性フィーチャの組み込みを示す図である。デバイス100は、デバイスをロック解除するのに用いられるバイオメトリック読取装置を有する。
図5Gでは、デバイス100は、指紋読取装置5
24の形をしたバイオメトリック読取装置を備えている。デバイス100は、指紋読取装置5
24が既知の指紋を読み取る場合、ロック解除するように構成されてもよい。ロック解除する場合、デバイス100が、圏内にあって関連のアプリケーション使用データを送信している互換性のある外部デバイスを検出すると、デバイス100は、ダイアログ5
26を表示してもよい。ダイアログ5
26は、連続性を所望するかどうかユーザに尋ねる。ユーザが「イエス」を示すと、デバイス100は、上記で論じたように、連続性技法を用いて対応するアプリケーションを起動する。例えば、デバイス100は、デバイス504(
図5A)上で実行中のメッセージングアプリケーションに対応するメッセージングアプリケーションを起動してもよい。起動されたメッセージングアプリケーションは、ユーザインタフェース画面506(
図5A)に示すメッセージの内容を表示してもよい。
【0206】
図5Hは、一部の実施形態におけるマルチタスク・ユーザインタフェース画面への連続性フィーチャの組み込みを示す図である。図示するように、デバイス100は、マルチタスク画面5
28を表示してもよい。マルチタスク画面5
28は、複数のアクティブなアプリケーションから、デバイス100上でアクティブなアプリケーションになるべきアプリケーションを選択するためのユーザインタフェースであってもよい。このために、マルチタスク画面5
28には、多様なアプリケーションに対応するアフォーダンス540、542、544が含まれうる。アフォーダンス540、542、544は、それぞれ、画面5
28の左側、中央、右側に位置している。中央のアフォーダンス542は、デバイス100上の直近のアクティブなアプリケーションを表してもよい。右のアフォーダンス544は、デバイス100上で実行中のバックグラウンドアプリケーション表してもよい。アフォーダンス542または544をユーザが選択(例えば、タップ)することによって、対応するアプリケーションをデバイス100上でアクティブなアプリケーションにしてもよい。
【0207】
最も左側のアフォーダンス540は、連続性フィーチャを呼び出すための予備とされてもよい。アフォーダンス540は、デバイス100が、圏内にあって関連のアプリケーション使用データを送信している互換性のある外部デバイスを検出した時に表示されてもよい。ここに示す例では、アフォーダンス540をユーザが選択すること(例えば、タップ)により、デバイス100は、連続性の技法を用いて対応するアプリケーションを起動する。例えば、アフォーダンス540をユーザが選択するのに応じて、デバイス100が、デバイス504(
図5A)上で最後に使用されたメッセージングアプリケーションに対応するメッセージングアプリケーションを起動してもよい。起動されたメッセージングアプリケーションが、ユーザインタフェース画面506(
図5A)に示すメッセージの内容を表示してもよい。
【0208】
アフォーダンス540、542、544によって表されるアプリケーションをユーザが識別しやすくするため、個々のアフォーダンスが、アプリケーションのサムネイル画像を表示してもよい。例えば、アフォーダンス540は、ユーザがアフォーダンスを選択するのに応じて起動されるであろうメッセージの内容(例えば、アプリケーションの状態)を示すためにユーザインタフェース画面506のサムネイル画像を表示してもよい。加えて、ユーザがアフォーダンス540を選択しやすくするために、マルチタスク画面538はスクロール可能であってもよい。すなわち、選択をより便利にするために、ユーザが中央のアフォーダンス542を右側にスワイプして、アフォーダンス540を画面の中央に持って来てもよい。
【0209】
図5Iは、連続性フィーチャを別のユーザインタフェース画面に含めることを示す図である。デバイス100のようなデバイスのオペレーティングシステムが、画面は一般にオペレーティング環境内にアクセス可能であるという意味で、幾つかの「広範囲の」画面を提供してもよい。1つ以上のこれらの広範囲の画面の中に連続性アフォーダンスを組み込むことにより、オペレーティング環境全体を通じて連続性フィーチャのアクセス可能性が促進されうる。
図5Iに示すように、デバイス100がユーザインタフェース画面550を表示している間に、ユーザが、矢印546で示すように画面550の上端から下向きにスワイプして、通知画面530を表示させてもよい。(ユーザインタフェース画面550は、アプリケーション画面または「ホーム」画面であってもよい。)あるいは、ユーザが、矢印547で示すように画面550の左端から右向きにスワイプして、検索画面560を表示させてもよい。あるいは、ユーザが、矢印548で示すように画面550の下端から上向きにスワイプして、コントロール画面570を表示させてもよい。(本明細書では、左端、上端、下端は、表示画面と同一面である平面の上にある。)
【0210】
通知画面530は、着信メッセージ、電話の呼び出し、カレンダの入力等のデバイスの活動をユーザに通知する通知メッセージを表示してもよい。また、通知画面530は、圏内にある外部デバイスのアクティブなアプリケーションに対応するアプリケーションを起動するためのデバイスの能力をユーザに通知するための、連続性アフォーダンス5
72を含んでいてもよい。ユーザが、デバイス100上で対応するアプリケーションを起動するために連続性アフォーダンス5
72を選択(例えば、タップ)してもよい。検索画面560は、検索基準と、関連する検索結果の集合とを表示してもよい。検索結果には、連続性アフォーダンス562が含まれていてもよい。ユーザが、デバイス100上で対応するアプリケーションを起動するために連続性アフォーダンス562を選択(例えば、タップ)してもよい。コントロール画面570は、飛行機モード、ワイヤレス通信、セルラー通信、ピア・ツー・ピア通信等をトグルするためのスイッチのような、デバイス100の操作をコントロールするためのアフォーダンスを有してもよい。一部の実施形態では、コントロール画面570は、連続性フィーチャのオン/オフを切り替えるための連続性アフォーダンス572を含みうるため、ユーザは、連続性アフォーダンス572を選択(例えば、タップ)して、連続性フィーチャを有効/無効にすることができる。一部の実施形態では、コントロール画面570は、連続性フィーチャを用いてアプリケーションを起動するための連続性アフォーダンス572を含んでいるため、ユーザは、連続性アフォーダンス572を選択(例えば、タップ)して、デバイス100上で対応するアプリケーションを起動することができる。
【0211】
通知画面530、検索画面560およびコントロール画面570を呼び出すのに用いられる正確なスワイプジェスチャ(もっと一般的に言うと、入力モダリティ)は、実施形態が異なれば、異なりうる。例えば、一部の実施形態では、通知画面530およびコントロール画面570は、
図5Iで示したのとは逆のやり方で呼び出されることがある。すなわち、上端から下向きのスワイプ(例えば、546)がコントロール画面570を呼び出し、下端から上向きのスワイプ(例えば、548)が通知画面530を呼び出すことが可能である。別の実施形態では、デバイス100は、スワイプがタッチセンシティブディスプレイの端から行われるのかどうかに基づいてスワイプジェスチャを区別してもよい。すなわち、デバイス100が、タッチセンシティブディスプレイの上端からの下向きのスワイプに応じて通知画面530を表示するが、タッチセンシティブディスプレイの周辺部から始まる下向きのスワイプに応じて検索画面560を表示することが可能である。1つ以上のこれらの広範囲の画面の中に連続性アフォーダンスを組み込むことにより、オペレーティング環境全体を通じて連続性フィーチャのアクセス可能性を有利に進めることができる。
【0212】
図5J乃至
図5Lは、各種のユーザインタフェースにおける連続性アフォーダンスのさらなる配置を示す図である。
図5Jでは、ラップトップ599は、ユーザインタフェースがロック状態になっており、ロック解除するにはパスワードの入力が必要である。ラップトップ599は、一部の実施形態ではデバイス300であってもよい。パスワード入力フィールド574に加えて、ロック画面576には、連続性アフォーダンス578が含まれている。図示した例では、連続性アフォーダンス578は、ロック画面576の上部右隅に位置しており、ここに通知メッセージも表示される。一部の実施形態では、ユーザは、パスワード入力フィールド574に適切なパスワードを入力して連続性アフォーダンス578をクリックすることによって連続性フィーチャを呼び出してもよい。すなわち、連続性アフォーダンス578に関する有効なパスワードとマウスイベント(例えば、クリック)を受信するのに応じて、デバイス599は、圏内のデバイスのアクティブなアプリケーションに対応するアプリケーションをロック解除して起動してもよい。(
図5Jに示されていない)一部の実施形態では、連続性アフォーダンス578は、パスワード入力フィールド574の中に位置している。(
図5Jに示されていない)一部の実施形態では、ロック画面576には、連続性アフォーダンス578が呼び出された場合に起動されるであろうアプリケーションを示すサムネイル画像が含まれている。一部の実施形態では、ロック解除した後、対応するアプリケーションを起動する前に、ラップトップ599がユーザに確認を求める。
【0213】
また、
図5Jに示すように、ラップトップ599がロック解除され、デスクトップ画面580を表示してもよい。デスクトップ画面580は、ドックエリア582を有していてもよい。ドックエリア582は、アプリケーションを起動するためのアイコンを有していてもよい。ドックエリア582は、連続性機能を用いてアプリケーションを起動するための連続性アフォーダンス584を含んでいてもよい。一部の実施形態では、連続性アフォーダンス584は、恒久的にエリア582に常駐する。一部の実施形態では、連続性アフォーダンス584は、互換性のあるデバイスがラップトップ599の圏内に入ってラップトップ599に関連のアプリケーション使用データを送信する場合に、ドックエリア582に挿入される。任意で、連続性アフォーダンス584は、ドックエリア582へ挿入される際に視認性を高めるため飛び跳ねてもよい。一部の実施形態では、表示される場合、連続性アフォーダンス584は、ドックエリア582上の最も左のアイコンである。一部の実施形態では、連続性アフォーダンス584は、所定の時間(例えば、8秒間)表示された後、エリア582から削除される。ユーザが連続性アフォーダンス584を選択(例えば、タップ)するのに応じて、ラップトップ599は、連続性フィーチャに基づいてアプリケーションを起動してもよく、例えば、セルラー電話504(
図5A)上でアクティブであるメッセージングアプリケーションの別バージョンでもよい。
【0214】
ドックエリア582の一例は、カリフォルニア州CupertinoのApple Inc.によって製造されているMac OSオペレーティングシステムによって提供されるDockである。しかし、ドックエリア582は、異なる実施形態では他の視覚的形態を取りうる。例えば、ドックエリア582は、画面の最下部または他の端部の端から端までのバーとして示され、それに、アプリケーションを起動するための各アイコンが固定されていてもよい。
【0215】
図5Kに示すように、ラップトップ599によって表示されるデスクトップ画面580は、メニューバー586を有していてもよい。メニューバー586は、連続性機能を用いてアプリケーションを起動するためのアフォーダンス588を含んでいてもよい。一部の実施形態では、連続性アフォーダンス588は、メニューバー586上の最も右のアイコンである。一部の実施形態では、連続性アフォーダンス588は、恒久的にメニューバー586に常駐する。一部の実施形態では、連続性アフォーダンス588は、互換性のあるデバイスがラップトップ599の圏内に入ってラップトップ599に関連のアプリケーション使用データを送信する場合に、メニューバー586に挿入される。連続性アフォーダンス588は、メニューバー586へ挿入される際に視認性を高めるため(例えば、アニメーションを介して)飛び跳ねてもよい。一部の実施形態では、連続性アフォーダンス588は、所定の時間(例えば、8秒間)表示された後、メニューバー586から削除される。ユーザが連続性アフォーダンス588を選択(例えば、タップ)するのに応じて、ラップトップ599は、連続性フィーチャに基づいてアプリケーションを起動してもよく、例えば、デバイス504(
図5A)上でアクティブであるメッセージングアプリケーションの別バージョンでもよい。
【0216】
図5Kに示すメニューバー586の一例は、カリフォルニア州CupertinoのApple Inc.によって製造されているMac OSオペレーティングシステムの中の「Finder」と呼ばれるメニューバーである。しかし、メニューバー586は、異なる実施形態では、画面上の異なる位置に常駐することがあるので、画面の最上端から離れた位置にありうるということになる。例えば、メニューバー586は、画面の最下部の端から端までのバーとして示され、そこに、アプリケーションプログラムを起動するための階層メニューがある。そのような実装では、連続性アフォーダンス588は、例えば画面の右下のエリアに現れてもよい。
【0217】
また、
図5Kに示すように、ラップトップ599は、ロック解除され、デスクトップ画面590を表示してもよい。デスクトップ画面590は、アイコングリッド591を有してもよい。アイコングリッド591は、ラップトップ599上で各アプリケーションを起動するための各アイコンを有してもよい。例えば、アイコングリッド591は、デバイス100上でウェブ閲覧アプリケーションを起動するためのアイコン592を有してもよい。また、アイコングリッド590は、連続性機能を用いてアプリケーションを起動するための連続性アフォーダンス593を含んでいてもよい。ユーザが連続性アフォーダンス593を選択(例えば、タップ)するのに応じて、ラップトップ599は、連続性フィーチャに基づいてアプリケーションを起動してもよく、例えば、デバイス504(
図5A)上でアクティブであるメッセージングアプリケーションの別バージョンでもよい。
【0218】
図5Lに示すように、ラップトップ599は、ラップトップ599上で実行中の異なるアプリケーション間を切り替えるためのタスク切替ユーザインタフェース(タスク・スイッチャ)594を表示してもよい。タスク・スイッチャ594は、アクティブなアプリケーションを表すアフォーダンスを含んでいる。図示するように、タスク・スイッチャ594は、ラップトップ599のフォアグラウンドでアクティブであるアプリケーションを表すアフォーダンス596を含んでいてもよい。また、タスク・スイッチャ594は、ラップトップ599上のバックグラウンドアプリケーションを表すアフォーダンス597を含んでいてもよい。また、タスク・スイッチャ594は、連続性機能を用いてアプリケーションを起動するための連続性アフォーダンス595を含んでいてもよい。一部の実施形態では、連続性アフォーダンス595は、タスク・スイッチャ594上の最も左のアフォーダンスである。一部の実施形態では、連続性アフォーダンス595は、タスク・スイッチャ594上の最も右のアフォーダンスである。
【0219】
一部の実施形態では、ラップトップ599は、ユーザからのコマンド・タブ入力に応じて、タスク・スイッチャ594を表示する。一部の実施形態では、ラップトップ599は、ユーザからのオルト・タブ入力のようなキーストロークまたはキーストロークの組み合わせに応じて、タスク・スイッチャ594を表示する。一部の実施形態では、ラップトップ599は、画面の隅(例えば、右下)にマウスのカーソルを置くことに応じて、タスク・スイッチャ594を表示する。ユーザが、連続性アフォーダンス595を選択して連続性機能を呼び出してもよい。一部の実施形態では、ユーザが、コマンドキー(またはオルトキー)を保持しながらタブキーを繰り返し押して、表示されたアフォーダンスを横切るように連続性アフォーダンス595に達してもよい。タブキーを毎回押すのに応じて、ラップトップ599は、タスク・スイッチャ594の中の別のアフォーダンスを強調表示(またはその他の要領で視覚的に強調)してもよい。連続性アフォーダンス595が視覚的に強調表示される場合、ユーザは、コマンドキー(またはオルトキー)を解放して連続性アフォーダンス595を選択してもよい。ユーザの選択に応じて、ラップトップ599は、連続性フィーチャに基づいてアプリケーションを起動してもよく、例えば、デバイス504(
図5A)上でアクティブであるメッセージングアプリケーションの別バージョンであってもよい。
【0220】
また、
図5Lに示すように、ラップトップ599は、ロック解除されてデスクトップ画面581を表示してもよい。ラップトップ599は、通信圏内にいる互換性のある電子デバイスからアプリケーション使用情報を受信した場合、通知メッセージ583を表示してもよい。ユーザは、圏内の互換性のある電子デバイス上で実行中のアクティブなアプリケーションに対応するアプリケーションを起動するため、通知メッセージ583を選択(例えば、クリックオン)してもよい。
【0221】
一部の実施形態では、デバイスがアプリケーションを別のデバイス上に「プッシュ」することができる。
図5M乃至
図5Nは、一部の実施形態によるこの「プッシュ」技法を図解する、例示的なユーザインタフェースを示す図である。
図5Mに示すように、セルラー電話504がメッセージングアプリケーション511を実行している。加えて、デバイス199(一部の実施形態ではデバイス100またはデバイス300でありうる)が、セルラー電話504の通信圏内にいる。セルラー電話504は、メッセージングアプリケーション511をデバイス199上にプッシュするためのアフォーダンス513を表示してもよい。ユーザがアフォーダンス513の中の「イエス」を選択するのに応じて、セルラー電話504は、メッセージングアプリケーション511を識別する情報(例えば、命令)をデバイス199に送信する。また、セルラー電話504は、メッセージングアプリケーション511に関する状態情報を送信してもよく、そのような情報は、表示されているメッセージの内容を識別している。
図5Nに示すように、一部の実施形態では、連続性アフォーダンス519がデバイス199上に現れて、対応するメッセージングアプリケーションを起動するためにユーザによって選択されてもよい。(図示しない)一部の実施形態では、デバイス199は、識別情報をセルラー電話504から受信した後、対応するメッセージングアプリケーションを自動的に起動してもよい。一部の実施形態では、プッシュ命令がデバイス199へ送信されたという確認メッセージ517が、セルラー電話504上に表示される。
【0222】
図17A乃至
図17Eは、一部の実施形態による「プッシュ」技法に関する別の例示的ユーザインタフェースを描いた図である。
図17Aに示すように、ユーザ1702が身に着けているウェアラブル電子デバイス1704が、ウェブページ1706を入手して表示してもよい。ウェアラブル電子デバイス1704は、一部の実施形態ではデバイス460(
図4C)であってもよい。ウェアラブル電子デバイス1704は、そのフォームファクタにより、可読性を高めるために、デフォルトでウェブページ1706の比較的小さい部分を表示することがある。しかし、ユーザはウェブページのもっと広い部分を見たいと望むことがある。
【0223】
次に、この状況で、ユーザがどのようにしてウェブページ1706のもっと広い部分を、互換性のあるデバイスで、閲覧できるかに注意を向けよう。
図17Bに示すように、ユーザ1702がタブレットコンピュータ1708のワイヤレス通信圏内を歩行する場合、デバイス1704は、タブレットコンピュータ1708と通信して、2つのデバイスが連続性について互換性があると判断してもよい。
図17Cに描くように、メニュー1711を呼び出すためにウェブページ1706が表示されている間に、ユーザ1702が(接触1710で示すように)ウェアラブル電子デバイス1704のタッチセンシティブディスプレイにタッチしてもよい。メニュー1711は、デバイス1704の多様なフィーチャを呼び出すためのアフォーダンスを含んでいてもよく、それには、ウェアラブル電子デバイス1704とタブレットコンピュータ1708との間の連続性フィーチャを呼び出すためのアフォーダンス1712も含まれている。
【0224】
一部の実施形態では、ウェアラブル電子デバイス1704は、接触1710が、閾値強度を超える最大強度を持つ、タッチセンシティブディスプレイ上の接触であることを必要とすることがある。言い換えると、接触1710の最大強度が閾値を超えない場合、デバイス1704は、別のフィーチャを呼び出すことがあり、例えば選択1710の位置がウェブページのハイパーリンクに対応している場合、別のウェブページを入手して表示するためのフィーチャを呼び出すことがある。
【0225】
図17Cを参照しながら
図17Dを見ると、ユーザ1702が(接触1714で示すように)アフォーダンス1712を選択すると、ウェアラブル電子デバイス1704は、ウェアラブル電子デバイス1704のフォアグラウンドでアクティブであるウェブ閲覧アプリケーションを識別する情報(例えば、命令)をタブレットコンピュータ1708へ送信してもよい。また、ウェアラブル電子デバイス1704は、例えばウェブページ1706のような、表示されているウェブページのインジケーションをタブレットコンピュータ1708へ送信してもよい。一部の実施形態では、確認メッセージ1715がウェアラブル電子デバイス1704上に表示されて、プッシュ命令が外部デバイスへ送信されたことを示す。外部デバイス、すなわちタブレットコンピュータ1708は、命令を入手した時点で連続性アフォーダンス1716を表示してもよい。
【0226】
図17Eを見ると、ユーザ1702がアフォーダンス1716を、例えば上向きにアフォーダンスをスワイプすることによって、選択すると、タブレットコンピュータ1708は、ウェアラブル電子デバイス460上で実行されているウェブブラウザに対応するアプリケーションを起動する。例えば、タブレットコンピュータ1708は、カリフォルニア州CupertinoのApple Inc.によるSafari(登録商標)を起動してもよい。任意で、起動された場合、アプリケーションは、ウェブページ1706を表示してもよい。また、任意で、起動された場合、アプリケーションは、ウェブページ1706を、ウェアラブル電子デバイス1704上に表示された(比較的小さな)部分は、タブレットコンピュータ1708上で表示された(比較的広い)部分の一部であるように表示してもよい。タブレットコンピュータ1708はウェアラブル電子デバイス460より広い表示画面を有しているのだから、ウェブページ1706のより広い部分は、一度に表示されてよい。
【0227】
図18A乃至18Dは、一部の実施形態による「プッシュ」技法に関する別の例示的ユーザインタフェースを描いた図である。
図18Aに示すように、ユーザ1802が身に着けているウェアラブル電子デバイス1804が、アラート1806を表示してもよい。一部の実施形態では、ウェアラブル電子デバイス1804は、デバイス460であってもよい。アラート1806は、着信したアプリケーションデータについてユーザに知らせるメッセージであってもよい。着信したアプリケーションデータは、図の例ではメッセージである。アラートは、データを処理するための対応するアプリケーションがデバイスのフォアグラウンドで実行中でない時に新たなアプリケーションデータの利用可能性をユーザに警告する場合に有益でありうる。ユーザ1802がウェアラブル電子デバイス1804上で着信メッセージを見ることが可能な場合、ユーザは、場合によっては、メッセージの本文をより広い外部コンピュータデバイス上で見る方を好むことがある。
【0228】
次に、ユーザ1804がどのようにしてそれを行うかに注意を向けよう。
図18Bを見ると、互換性のある外部デバイスが利用可能な場合、ユーザは、タッチ入力1808を介してアラート1806にタッチして、特定の方向へ、例えば左へまたは右へ、スライドすることによって、連続性機能を呼び出してもよい。それに応じて、ウェアラブル電子デバイス1804が、着信メッセージを識別する情報(例えば、命令)を近くのデバイスへ送信してもよい。
図18Cでは、一部の実施形態では、ウェアラブル電子デバイス1804が、確認メッセージ1810を表示して、プッシュ命令が外部デバイスへ送信されたことを示す。命令を入手した後、外部デバイス、すなわちタブレットコンピュータ1812は、連続性アフォーダンス1814を表示してもよい。
【0229】
図18Cに示すように、ユーザは、アフォーダンス1814を(例えば、アフォーダンスを上向きにスライドすることによって)選択することによって、タブレットコンピュータ1812上で連続性フィーチャを呼び出してもよい。アフォーダンス1814の選択に応じて、デバイス1812は、アラート1806(
図18A)に対応する着信メッセージ1822を見るためのアプリケーションを起動してもよい。起動した場合、アプリケーションは、タブレットコンピュータ1812の画面上に着信メッセージ1822を表示する。カリフォルニア州CupertinoのApple Inc.によるMessages(登録商標)は、この状況において着信メッセージ1822のコピーを見るために起動されうる、例示的なアプリケーションである。
【0230】
理解されるべきだが、デバイス199(
図5M乃至
図5N)、デバイス1708(
図17A乃至
図17E)、デバイス1812(
図18A乃至
図18D)、および/またはデバイス1910(
図19A乃至
図19C)は、多様なやり方で連続性フィーチャを呼び出すためにアフォーダンスを表示することができる。例えば、
図5C乃至
図5Lに示された連続性アフォーダンスを表示するための例示的ユーザインタフェースのいずれか1つが用いられてもよい。
【0231】
3.アプリケーション間の対応
次に、
図6Aおよび
図6Bに関して、連続性機能を用いて呼び出されうるアプリケーション間の対応について注意を向けよう。
図6Aは、連続性機能を用いて、1つのデバイス上に、別のデバイス上で実行中のアプリケーションの別バージョンを起動することを示す図である。
図6Aで示すように、セルラー電話504が、ウェブページ602を表示するウェブ閲覧アプリケーションを実行している。セルラー電話504は、タブレットコンピュータ512の通信圏内にあり、アクティブなウェブ閲覧アプリケーションとウェブページ602とを識別するアプリケーション使用データをタブレットコンピュータ512に送信する。ユーザがタブレットコンピュータ512上の連続性機能を呼び出す場合、タブレットは、同じウェブページ602を示すウェブ閲覧アプリケーションの自分自身のバージョンを起動する。すなわち、この例では、2つのアプリケーションは、それらが同じアプリケーションの異なるバージョンであった場合、対応していると考えられる。一部の実施形態では、セルラー電話504は、iPhone用のSafari(登録商標)を実行し、タブレットコンピュータ512は、iPad(登録商標)用のSafariを実行していることがある。一部の実施形態では、タブレットコンピュータ512は、携帯型文書エディタを実行し、セルラー電話504は、携帯型文書ビューワを実行していることがある。
【0232】
図6Bは、連続性機能を用いて、1つのデバイス上で、別のデバイス上で実行中の(または最近実行された)アプリケーションとは異なるけれども関連するアプリケーションを起動することを示す図である。関連するアプリケーションの一例は、コンパニオンアプリケーションである。例えば、ラップトップ599上で音楽管理アプリケーション604(例えば、カリフォルニア州CupertinoのApple Inc.によるiTunes(登録商標))が楽曲を演奏中である時にユーザがセルラー電話504から連続性機能を呼び出す場合には、セルラー電話504は、同じ楽曲を演奏するために音楽プレーヤ606を起動してもよい。関連するアプリケーションの別例は、別のアプリケーションを制御するアプリケーションである。例えば、ラップトップ599上で音楽プレーヤアプリケーションが実行中である場合にセルラー電話504上で連続性が呼び出される時には、セルラー電話504は、ラップトップ599上でアクティブである音楽プレーヤを制御するためのトランスポート制御部を有するリモートコントロールを起動してもよい。
【0233】
次に、アプリケーション状態の連続性に注意を向けよう。本明細書では、アプリケーションの「状態」とは、アプリケーションのモードまたは条件のことを言う。例示的なアプリケーション状態には、個別の画面を示す条件と、アプリケーションが動作中であるモードまたは構成設定と、アプリケーションのナビゲーション階層の中で個別の位置を表示する条件と、文書の中で個別の部分または位置を表示する条件等が含まれる。
【0234】
図5Bに戻ると、セルラー電話504がタブレットコンピュータ512と通信する場合、セルラー電話504は、一定の使用データをタブレットコンピュータ512へ送信してもよい。使用データは、メッセージングアプリケーションのような、セルラー電話504上のアクティブなアプリケーションの状態を示してもよい。受信しているタブレットコンピュータ512は、この情報を用いて、対応するアプリケーションを同じアプリケーション状態で起動してもよい。例えば、セルラー電話504上でユーザが或るメッセージの内容を見ている場合にタブレットコンピュータ512上で連続性が呼び出される時には、タブレットコンピュータ512は、対応するメッセージングアプリケーションを起動して、同じメッセージの内容を表示してもよい。メッセージの内容が、スクロールが必要なほど十分に長い場合、タブレットコンピュータ512は、使用データによって提供された位置情報に基づいて、同じスクロール位置でメッセージの内容を表示してもよい。
【0235】
セルラー電話504のアクティブなアプリケーションがアプリケーションのナビゲーション階層の中で個別の位置(例えば、アプリケーション内の個別の画面またはサブ画面)からの情報を提示している場合に、タブレットコンピュータ512上で連続性が呼び出される時には、タブレットコンピュータ512は、同じアプリケーション画面またはサブ画面を表示してもよい。例えば、セルラー電話504が、高度なメッセージング設定を構成するための画面を表示している場合、タブレットコンピュータ512は、ユーザがタブレットコンピュータ512からの連続性を呼び出す時には、同じ構成画面を表示してもよい。言い換えれば、表示状態は、連続性の後でも残存してもよい。
【0236】
セルラー電話504のアクティブなアプリケーションが特定のモードにある時にタブレットコンピュータ512上で連続性が呼び出される場合には、タブレットコンピュータ512は、対応するアプリケーションを同じモードで起動してもよい。例えば、セルラー電話504が、(i)横向きで、(ii)16:9の縦横比で、(iii)音声をミュートさせて、(iv)クローズドキャプションを有効にして、ビデオを映している場合にタブレットコンピュータ512上で連続性が呼び出される時には、タブレットコンピュータ512は、対応するビデオプレーヤを、設定(i)乃至(iv)を使って同じ位置から同じビデオを映すように起動してもよい。
【0237】
次に、
図6Cおよび
図6Dに関して、連続性フィーチャを用いて、注目ポイントに関連するアプリケーションを呼び出すことに注意を向けよう。
図6Cは、連続性機能を用いて、電子的注目ポイントに関連するアプリケーションを起動することを示す図である。例えば、電子的注目ポイントは、スマートテレビのような家電デバイスであってもよい。家電デバイスが、ワイヤレス信号を発して、自分の識別情報をセルラー電話504に伝達してもよい。ユーザがセルラー電話504から連続性機能を呼び出す時、セルラー電話504は、この情報を用いて、スマートテレビを制御するためのアプリケーションを起動してもよい。アプリケーションは、例えば、スマートテレビコントローラ610であってもよい。
図6Dは、連続性技法を用いて物理的な注目ポイントに関連するアプリケーションを起動することを示す図である。例えば、セルラー電話504が、自由の女神像のような名所旧跡(ランドマーク)の指定圏内にいてもよい。この状況で、セルラー電話504上で連続性機能が呼び出される場合、セルラー電話504は、この像とその歴史とを記述するアプリケーション612を起動してもよい。一部の実施形態では、セルラー電話504と名所旧跡との物理的近接が、セルラー電話504からのGPS測定値と、名所旧跡の既知の座標とに基づいて判定されてもよい。一部の実施形態では、セルラー電話504は、名所旧跡の地域情報を放送しているWi−Fi「ビーコン」から受信する信号のような、名所旧跡のために行われるローカル放送を受信して説明することができる。
【0238】
場合によっては、セルラー電話504は注目ポイントのワイヤレス通信圏内にあって、アプリケーションはインターネット上で入手可能だが、アプリケーションがまだセルラー電話504上にインストールされていないことがありうる。例えば、セルラー電話にまだインストールされていないモバイル注文および/または支払アプリケーションを提供するコーヒーショップに、ユーザがセルラー電話504を持って入る場合がある。一部の実施形態では、この状況でユーザがセルラー電話504上で連続性機能を呼び出す場合、セルラー電話504は、関連のアプリケーションをダウンロードしてインストールするためのアフォーダンスを表示してもよい。このようにして、ユーザは、セルラー電話504に命令して、単純にアフォーダンスを選択(例えば、タップ)するだけで関連のアプリケーションを入手してもよい。一部の実施形態では、この状況でユーザがセルラー電話504上で連続性機能を呼び出す場合、セルラー電話504は、注目ポイントに関連するアプリケーションをインストールするかどうかについてもっと情報を得てから決定できるように、例えばウェブページのような、注目ポイントについての中間的な情報源をユーザに教えてもよい。これらの状況では、セルラー電話504は、ユーザのさらなる考慮のため、ディープリンクを入手して、ディープリンクを表示するかまたはそこにアクセスしてもよい。
【0239】
利用可能なアプリケーションと注目ポイントとの間には多対1の対応がありうるので、セルラー電話504は、連続性のためにはどのアプリケーションが最も関連があるかを判定する際、さらなる要因を考慮する可能性がある。一部の実施形態では、セルラー電話504は、起動されるべき正確なアプリケーションを識別するため、個別の注目ポイントでのいくつかのアプリケーションの使用頻度を考慮する。例えば、セルラー電話504は、フィットネス(エクササイズと呼ばれることもある)アプリケーションとジム会員アプリケーションとがどちらもユーザのジムに関連していることを発見することがある。さらにデバイス100は、ユーザがジムにいる間はエクササイズアプリケーションにより頻繁にアクセスすると判断することがある。この判断に応じて、デバイス100は、ユーザがジムに到着した時点でセルラー電話504上で連続性機能を呼び出す時には、エクササイズアプリケーションを起動してもよい。
【0240】
一部の実施形態では、セルラー電話504は、起動されるべき正確なアプリケーションを識別するため、時刻を考慮する。例えば、セルラー電話504は、ユーザが通勤電車の駅で待っている間、列車時刻アプリケーションとニュースアプリケーションとがいずれも頻繁にアクセスされることを見つけてもよい。さらに、セルラー電話504は、朝ユーザが駅で待っている間にニュースアプリケーションにアクセスする傾向があると判断してもよい。この判断に応じて、セルラー電話504は、ユーザが朝、駅に到着した時点で連続性フィーチャを呼び出す場合には、ニュースアプリケーションを起動してもよい。
【0241】
一部の実施形態では、セルラー電話504は、起動されるべき正確なアプリケーションを識別するために、その他の文脈上の情報を考慮する。例えば、電話のGPSセンサが、デバイスはスピードを出して移動していることを示しており、かつ、セルラー電話504のRF回路機構が、デバイスは「CAR MEDIA」という名前のBluetoothデバイスに接続されていることを示している時には、セルラー電話504は、車内娯楽アプリケーションが頻繁に使用されることを見つけてもよい。従って、この状況でユーザがセルラー電話504上で連続性機能を呼び出す場合、セルラー電話504は、それに応じて車内娯楽アプリケーションを起動してもよい。
【0242】
アプリケーション間の関係を判断するためのさらなる技法が、以下の同時係属の仮出願の中にありうる。すなわち、2014年5月30日に出願され、「ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES」と題された米国特許出願第62/005,781号と、2014年5月30日に出願され、「COMPANION APPLICATION FOR ACTIVITY COOPERATION」と題された米国特許出願第62/005,793号と、2014年5月30日に出願され、「PREDEFINED WIRELESS PAIRING」と題された米国特許出願第62/005,751号と、2014年5月30日に出願され、「OPERATING−MODE TRANSITIONS BASED ON ADVERTISING INFORMATION」と題された米国特許出願第62/005,755号とである。これらの出願の内容を、全体として参照により本願に援用する。
【0243】
次に、
図19A乃至
図19Cを参照しながら、音声に基づくインテリジェント自動アシスタントフィーチャと組み合わせて連続性フィーチャを使用することに注意を向けよう。カリフォルニア州CupertinoのApple Inc.によって製造されるSiri(登録商標)は、例示的なインテリジェント自動アシスタントである。また、インテリジェント自動アシスタント技法は、例えば、2011年1月10日に出願され、「Intelligent Automated Assistant」についての米国実用出願第12/987,982号にも記述されており、その開示全体を参照により本願に援用する。
【0244】
図19Aに示すように、ユーザ1902は、ウェアラブル電子デバイス1904に音声コマンド1903を供給してもよい。ウェアラブル電子デバイス1904は、一部の実施形態では、デバイス460(
図4C)であってもよい。音声コマンド1903は、近くのコーヒーショップへの道順の質問であってもよい。一部の実施形態では、音声コマンド1903を受信した後、ウェアラブル電子デバイス1904は、音声コマンドを示す情報を、圏内にある外部デバイス、この例ではセルラー電話1910へ送信してもよい。一部の実施形態では、セルラー電話1910は、デバイス100(
図1)であってもよい。
【0245】
ウェアラブル電子デバイス1902からの命令を受信するのに応じて、セルラー電話1910は、連続性フィーチャを呼び出すためにアフォーダンス1912を表示してもよい。ユーザがアフォーダンス1912を介して(例えば、
図19Bに示すようにスワイプジェスチャによって)連続性を呼び出す場合、セルラー電話1910は、音声コマンド1906に応じて入手された情報を表示してもよい。図の例では、セルラー電話1910が、コマンド1903に応じて近くのコーヒーショップへの進路変更ごとの(turn-by-turn)ナビゲーション1914を表示する。
【0246】
ウェアラブル電子デバイス1904によって外部デバイス(セルラー電話)1910へ送信される情報は、一部の例では、音声コマンド1906を表すデータを含んでいてもよい。ウェアラブル電子デバイス1904によって外部デバイス(セルラー電話)1910へ送信される情報は、一部の例では、音声コマンド1906に応答する情報を入手するためのウェブサービスを表すデータを含んでいてもよい。ウェアラブル電子デバイス1904によって外部デバイス(セルラー電話)1910へ送信される情報は、一部の例では、音声コマンド1906に応じて入手された情報を表すデータを含んでいてもよい。
【0247】
これらの例は、インテリジェント自動応答を処理および提供することに関するウェアラブル電子デバイス1904と外部デバイス1910との間の分業は、実施形態によって異なっているが、個々の実施形態では依然として、ユーザが、1つ以上の関連するデバイス上でインテリジェント自動応答をどのように入手するかを好きなように選択しうる、ということを示すのに役立つ。携帯性の高いデバイス(例えば、ウェアラブル電子デバイス1904)を用いてアシスタントに質問し、後で、アシスタントの応答を同じデバイス上で、および/または、互換性のある外部デバイス(例えば、セルラー電話1910)上で受信するのかを決定できるということは、2つのデバイスのうちの1つは、結果としての応答を提示するのにより適したオーディオ/ビジュアル機能(例えば、スピーカ、高解像度画面)を有しうるのだから、ユーザにとって特に有益である。
【0248】
一例として、
図19Cに示すように、一部の実施形態で、ウェアラブル電子デバイス1904が、音声コマンド1906を受信した後で、進路変更ごとの道順1914を表示してもよい。しかし、一時に表示される情報の量は、ウェアラブル電子デバイス1904のフォームファクタによって限定されることがある。進路変更ごとの道順1914のもっと完全な表示は、セルラー電話1910はもっと広い表示画面を備えているのだから、ユーザがセルラー電話1910上で連続性フィーチャを選択する場合にはセルラー電話1910によって表示されてもよい。このようにして、ユーザは便利に音声アシスタント機能を1つのデバイスを通じて呼び出すことができ、所望するように、1つまたは両方のデバイスを用いて、音声アシスタントによって提供された情報を検討することができる。
【0249】
4.明確化
どのアプリケーションが起動されるべきかを、デバイスが、着信データ、履歴データ、および/または文脈上の情報に基づいて明確に判断することができない状況が生じうる。デバイスの圏内に複数の外部デバイスがあることによって、この状況が起こりうる。
図7Aについて考えると、ここでは、メッセージングアプリケーション704を実行中の第1の外部デバイス702と、ウェブ閲覧アプリケーションを実行中の外部デバイス706とを示す。ユーザが、ウェブ閲覧をしながら断続的に文字通信をしているという点で、ユーザは両方のデバイスと対話している。どちらのデバイスも、タブレットコンピュータ710の圏内にある。また、どちらのデバイスも、アプリケーション704および708に関する使用データをタブレットコンピュータ710に対してワイヤレスに送信している。この状況では、タブレットコンピュータ710は、2つのアプリケーションのうちのどちらがユーザに関連が深いかを判断できないことがありうる。
【0250】
一部の実施形態では、タブレットコンピュータ710は、より最近使用したアプリケーションを、連続性では、より関連が深いアプリケーションであると識別することがある。すなわち、連続性がタブレットコンピュータ710上で呼び出された時、ユーザがメッセージングアプリケーション704に6秒前に最後にアクセスし、ウェブブラウザに10秒前に最後にアクセスしたのであれば、タブレットコンピュータ710は、メッセージングアプリケーション704がユーザによってより最近アクセスされたのだから、対応するメッセージングアプリケーションを起動する。任意で、タブレットコンピュータ710は、起動されることになるアプリケーションを示すために、連続性アフォーダンス714にメッセージングアプリケーションのサムネイル表現を表示してもよい。
【0251】
しかし、この取り扱いは、常に適切であるとは限らない。例えば、ユーザは、より大きいタブレットコンピュータ710上でのウェブ閲覧に重点を置くことがある。一部の実施形態では、この状況に直面した場合、タブレットコンピュータ710は、起動すべきアプリケーションを情報に基づいてユーザが選択できるようにするため、追加情報を表示してもよい。例えば、タブレットコンピュータ710は、そこから続くことになる複数のアプリケーションの利用可能性を示すため、2つ以上の連続性アフォーダンスをロック画面上に表示してもよい。
図7Bに示すように、タブレットコンピュータ710は、アフォーダンス714および716を表示して、それら2つのうちからユーザが選択する必要性を合図してもよい。
【0252】
図7C乃至
図7Eは、タブレットコンピュータ710がどのようにしてアフォーダンス714と716というグループの選択(例えば、タップ)に応答しうるかを示す図である。一部の実施形態では、
図7Cに示すように、タブレットコンピュータ710がアフォーダンスのグループに対するユーザ入力(例えば、タップ)を受信すると、タブレットコンピュータ710は、視覚的にアフォーダンスをグループ解除して画面上のアフォーダンスを平行移動し、アフォーダンスの間隔が適切に空いてタッチオブジェクトを用いてそれらを個別に選択できるようにする。グループ解除には、アフォーダンス714と716とをグループ化された位置からグループ解除された位置へと視覚的に平行移動することが含まれてもよい。連続性アフォーダンス714をユーザが選択(例えば、スワイプまたはタップ)するのに応じて、タブレットコンピュータ710は、デバイス702のメッセージングアプリケーションに対応するメッセージングアプリケーションを起動してもよい。連続性アフォーダンス716をユーザが選択するのに応じて、タブレットコンピュータ710は、デバイス706のウェブ閲覧アプリケーションに対応するウェブ閲覧アプリケーションを起動してもよい。
【0253】
一部の実施形態では、
図7Dに示すように、タブレットコンピュータ710は、ユーザがアフォーダンス714または716を選択する場合、明確化画面718を表示する。明確化画面718は、連続性アフォーダンス714および716を、個別に選択できるように表示してもよい。連続性アフォーダンス714をユーザが選択(例えば、スワイプまたはタップ)するのに応じて、タブレットコンピュータ710は、デバイス702のメッセージングアプリケーションに対応するメッセージングアプリケーションを起動してもよい。連続性アフォーダンス716をユーザが選択するのに応じて、タブレットコンピュータ710は、デバイス706のウェブ閲覧アプリケーションに対応するウェブ閲覧アプリケーションを起動してもよい。
【0254】
一部の実施形態では、
図7Eに示すように、タブレットコンピュータ710は明確化画面720を表示する。明確化画面720は、連続性機能を通じて起動するために利用可能なアプリケーションを、カテゴリ別に、編成してもよい。アプリケーションのカテゴリ化は、利用可能な各アプリケーションと外部デバイス上で実行中の各アプリケーションとの間の関係に基づいていてもよい。例えば、外部デバイス上で実行中のアプリケーションの別バージョンである対応するアプリケーションは、1つのカテゴリ722の下に置かれてもよく、他方、関連の(例えば、コンパニオン)アプリケーションは、別のカテゴリ724の下に置かれてもよい。さらに、デバイスが注目ポイントに近接しているために表示されているアプリケーションは、さらに別のアプリケーションカテゴリ726として表示されてもよい。
【0255】
一部の実施形態では、
図7Fに示すように、タブレットコンピュータ710は明確化画面730を表示する。明確化画面730は、連続性機能を通じて起動するために利用可能なアプリケーションを、タブ付きリストに、編成してもよい。タブによるアプリケーションの分類は、利用可能なアプリケーションと外部デバイス上で実行中のアプリケーションとの間の関係に基づいていてもよい。タブの表題が、関係を識別してもよい。各カテゴリ(タブ)の中のアプリケーションを起動するためのアフォーダンスは、それらが属するタブが選択された時に表示される。例えば、対応するアプリケーションを呼び出すためのアフォーダンスは、タブ732の下に表示され、関連の(例えば、コンパニオン)アプリケーションを呼び出すためのアフォーダンスは、タブ734の下に表示される。
【0256】
一部の実施形態では、
図7Gに示すように、タブレットコンピュータ710は明確化画面740を表示する。明確化画面740は、通信圏内にある互換性のある外部デバイスのそれぞれに対応するアプリケーションをリストしてもよい。図示するように、明確化画面740は、第1の外部デバイス(例えば、
図7Aの702)を表す表題742を含んでいる。また、明確化画面740は、第2の外部デバイス(例えば、
図7Aの706)を表す表題744を含んでいる。また、明確化画面740は、第3の外部デバイスを表す表題745を含んでいる。また、タブレットコンピュータ710は、各表題の下に、それぞれの外部デバイス上で実行中の(および/または実行したことがある)アプリケーションに対応するアプリケーションを表すアフォーダンスを表示する。
【0257】
図7Gに示すように、アフォーダンス746、748および750は、外部デバイス702上で実行中の(および/または実行したことがある)3つのアプリケーションの対応するバージョンを表す。任意で、アフォーダンス746、748および750の順序付けは、各アプリケーションが、互いに比べて、ユーザによってどれくらい前に使用されたかを反映してもよい。同様に、表題744で一緒にリストされているアフォーダンスは、外部デバイス706上で実行中の(および/または実行したことがある)アプリケーションの対応するバージョンを表す。画面740は、さらなる外部デバイスを示すため、1つの方向(例えば、水平方向)にスクロール出来てもよい。画面740は、アプリケーションのアフォーダンスを増やせるように、別の方向(例えば、垂直方向)にスクロール出来てもよい。
【0258】
一部の実施形態では、明確化画面740は、「お気に入り」の表題(図示せず)を含んでいてもよい。タブレットコンピュータ710は、この「お気に入り」の表題の下に、ユーザによってお気に入りと指定されたアプリケーションを示すアフォーダンスを表示してもよい。一部の実施形態では、タブレットコンピュータ710は、この情報をタブ付きリスト(図示せず)へと編成してもよい。そのようなタブ付きリストは、
図7Fに示すタブ付きリストと同様に見えることがあり、個々の外部デバイスに対応するアプリケーションが、タブの下に表示されうることになる。
【0259】
図7A乃至
図7Gを参照しながら記述した要領でアプリケーションが起動される場合、デバイス710は、上記で論じたように、連続するアプリケーションを、外部デバイス上の対応するアプリケーションと同じアプリケーション状態にすることに留意されたい。
【0260】
特に、
図7A乃至
図7Gで記述したユーザインタフェースは、ユーザに、複数の電子デバイスにわたる自分のアプリケーション使用をカタログ化して、これらのそれぞれのアプリケーション使用の間をシームレスに移行するという、強力な手段を提供する。例えば、1人のユーザが、互換性のあるセルラー電話とタブレットコンピュータとラップトップコンピュータとを所有している状況を考えよう。明確化画面740(
図7G)をモデルにしたユーザインタフェース画面なら、そこから続くことになる可能なオープン(そしてオプションで、クローズされた)アプリケーションの世界をユーザに提示することによって、或るタスクにどのデバイスが最適であるかに依存して異なるデバイス間でユーザが移行するための、特に強力な手段を提供するであろう。
【0261】
5.ワイヤレス通信技法の向上
一部の実施形態では、ワイヤレス通信が、連続性機能を目的として、Bluetoothおよび/またはBluetooth Low Energy(BTLE)のようなピア・ツー・ピアのワイヤレス通信プロトコルを介して行われる。一部の実施形態では、連続性機能を目的とするワイヤレス通信は、2つ以上の通信プロトコルを利用する。例えば、BTLEに加えてWiFiが使われることがある。これらの実施形態では、2つのデバイス間の当初の通信は、BTLEのような低電力のプロトコルを介して行われることがあり、たとえこのプロトコルのもたらすデータ転送速度が低速であったとしてもそうされる。その後の通信は、WiFiのような比較的高速の二次的ネットワーク上で行われてもよい。
【0262】
一例として、電子メールメッセージを作成するのに圏内のiPhone(登録商標)が使用されていることを示す使用情報を、ラップトップコンピュータがBTLEを介して入手することがある。ユーザがラップトップコンピュータ上で電子メールの連続性を呼び出す場合、ユーザが進行を止めることなくラップトップ上で原稿作成を続けることができるように、2つのデバイスは、WiFiを介して通信し、電子メールの原稿部分と付随の添付ファイルとを含めてアプリケーションデータを送信してもよい。この二股のアプローチを通じて、デバイスは、デバイスの電力系統に過度の電力要件を課すことなく、圏内にあるその他の互換性のあるデバイスにポーリングできる。また、電力消費率が低下することにより、より頻繁にポーリングすることが可能になりうる。同時に、アプリケーションデータおよび/またはアプリケーション状態情報の通信のようなデータ集約型通信には、より高速のチャネルが確保される。
【0263】
一部の実施形態では、より低速の通信プロトコルを介して送信される使用情報は、デバイス認証情報を含んでいる。認証情報には、トークンまたは、少なくとも部分的にユーザIDに基づいて計算された(例えば、ハッシュされた)その他の識別子が含まれうる。一部の例では、ユーザIDは電子メールアドレスである。一部の実施形態では、ユーザIDは、カリフォルニア州CupertinoのApple Inc.によって提供されるiCloud IDであり、それが次には、電子メールアドレスに関連付けられてもよい。2つの互換性のあるデバイスは、デバイスが同じユーザIDに関連しているのかどうかに(少なくとも部分的に)基づいて、連続性機能の使用を許可するか拒否するかを決定してもよい。このようにして、異なる(けれども物理的に近接している)ユーザによって所有されているデバイス間のプライバシが維持できるため、異なるユーザのデバイス間の連続性を、希望どおりに、防止する(あるいは許可する)ことができる。
【0264】
一部の実施形態では、デバイスは、さらに、ワイヤレス通信圏内の互換性のあるデバイスからどの程度の量の連続性情報が自動的に入手されるべきかをユーザが指定できるようにすることによって、電力を節約してもよい。これらの実施形態では、デバイスは、低電力のピア・ツー・ピア通信プロトコルを介して、1つ以上の互換性のあるデバイスを識別する初期情報を受信してもよい。外部デバイスと初期情報とを検出することに応じて、デバイスは、連続性フィーチャの見込まれる利用可能性についてユーザに知らせる連続性アフォーダンスを表示してもよい。しかし、表示された連続性アフォーダンスは、連続性フィーチャが十分に有効になっていないことを示す視覚的外観を有することがある。特に、デバイスは、追加の使用および/またはアプリケーションデータ情報を互換性のあるデバイスから入手するのを、そうするためのユーザの命令を受信しない限り、控えてもよい。ユーザは、表示されたアフォーダンスを選択(例えば、タップ)することによって、そうしてもよい。ユーザの選択に応じて、デバイスは、適切なアプリケーション状態において対応するアプリケーションを起動することをデバイスに許可することになる、追加の使用および/またはアプリケーションデータ情報を入手してもよい。加えて、デバイスは、互換性のあるデバイスとの連続性が現在は有効であるのでデバイスから(例えば、スワイプによって)呼び出されうるということを示すために、アフォーダンスの視覚的外観を更新してもよい。
【0265】
この節電の技法を
図8A乃至
図8Cに示す。
図8Aでは、デバイス504とデバイス199とは、通信圏内にあり、連続性を目的として互換性がある。2つのデバイスが圏内にある間、デバイス199は、最初にそのプレゼンスと連続性機能のサポートとを示す使用情報の第1の部分を、デバイス504から受信する。この最初の通信801は、BTLEのような低電力の通信プロトコルを介して行われてもよい。使用情報のこの第1の部分を受信するのに応じて、デバイス199は、無効の外観を有する連続性アフォーダンス802を表示する。ユーザは、連続性を目的としてデバイス間でさらなる通信803を有効にするため、アフォーダンス802を選択(例えば、タップ)してもよい。
図8Bを参照すると、ユーザがアフォーダンス802を選択するのに応じて、デバイス199は、使用情報の追加の第2の部分をデバイス504から入手する。追加の使用情報は、特に、デバイス504上のメッセージングアプリケーション804の使用と、メッセージングアプリケーション804の状態とを示してもよい。また、デバイス199は、アフォーダンス802の視覚的外観を、それが有効であると見えるように、変更してもよい。任意で、デバイス199は、アフォーダンス802と共にアプリケーション804を示すサムネイル画像を含んでいてもよい。次いで、
図8Cに示すように、ユーザは、スワイプまたはその他のやり方でアフォーダンス802を起動し、デバイス199上で対応するアプリケーションを起動してもよい。
【0266】
図9は2つの電子デバイス間で移行するためのプロセス900を示すフロー図である。プロセス900は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、ディスプレイとタッチセンシティブ表面とを有する電子デバイスで実行されてもよい。ブロック902で、デバイスが、ワイヤレス通信を介して、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であるかまたは実行したことがある。ブロック904で、デバイスが、外部デバイス上の第1のアプリケーションの使用を示す使用情報を外部デバイスから受信する。任意で、使用情報には、いつ、どれくらい前に第1のアプリケーションが使用されたかについての使用統計が含まれる。任意で、使用情報は、第1のアプリケーションの状態を示す。ブロック906で、外部デバイスを検出して使用情報を受信するのに応じて、デバイスが、その画面上にアフォーダンスを表示する。任意で、ブロック906で、デバイスが、どれくらい長くアフォーダンスが表示されていたかを判断し、所定の時間の後でアフォーダンスの表示を中止してもよい。ブロック908で、デバイスは、表示されたアフォーダンスのユーザ選択を表す入力データを受信する。ブロック910で、入力データを受信するのに応じて、デバイスは、第2のアプリケーションを電子デバイス上で起動し、その第2のアプリケーションは第1のアプリケーションに対応している。一部の実施形態では、第2のアプリケーションは第1のアプリケーションの別バージョンであるという点で、第2のアプリケーションが第1のアプリケーションに対応していてもよい。一部の実施形態では、いずれのアプリケーションも少なくとも1つのアプリケーションフィーチャを共通して有するという点で、第2のアプリケーションが第1のアプリケーションに対応していてもよい。例えば、いずれのアプリケーションも、特定のタイプのプレゼンテーションファイルを見ることができてもよい。一部の実施形態では、第2のアプリケーションは第1のアプリケーションに対するコンパニオンである、および/または、第2のアプリケーションは第1のアプリケーションの操作を制御するフィーチャを提供するという点で、第2のアプリケーションが第1のアプリケーションに対応していてもよい。また、任意で、デバイスが第2のアプリケーションを起動する場合、デバイスは、第2のアプリケーションを、第1のアプリケーションと同じアプリケーション状態にする。
【0267】
一部の実施形態(例えば、タッチスクリーンの実施形態)では、プロセス900を実行中のデバイスは、タッチスクリーンディスプレイを有しており、タッチセンシティブ表面がディスプレイ上にある。一部の実施形態(例えば、非タッチスクリーンの実施形態)では、デバイスは、タッチセンシティブ表面とは別のディスプレイを有する。従って、ブロック908で表示される連続性アフォーダンス514の外観は、異なる可能性がある。例えば、タッチスクリーンの実施形態では、表示されるアフォーダンスは、
図5C乃至
図5I、
図7A乃至
図7G、および/または、
図8A乃至8Cに示すものと類似してもよい。非タッチスクリーンの実施形態では、表示されるアフォーダンスは、
図5J乃至
図5Lに示すものと類似してもよい。また、ブロック910の間にデバイスが応答する正確なユーザ入力も、異なりうる。例えば、タッチスクリーンの実施形態では、表示されるアフォーダンスは、タップ、長押し、フリック、スワイプ、またはその他の適用可能なタッチジェスチャのような、タッチオブジェクトを用いたタッチ入力に応答してもよい。非タッチスクリーンの実施形態では、表示されるアフォーダンスは、クリック、ダブルクリック、ドラッグ等のような、マウスまたは同等の入力デバイスを用いて生成されたマウスイベントに応答してもよい。これらの実施形態の組み合わせも可能である。例えば、タッチスクリーンデバイスは、外部のワイヤレスマウスに応答することができ、従って、タッチスクリーンの実施形態のデバイスは、マウスおよびマウスカーソル入力技法にも応答することができる。同様に、非タッチスクリーンデバイスは、タッチセンシティブ表面(例えば、タッチパッド)に応答することができ、従って非タッチスクリーンの実施形態は、タッチ入力にも応答することができる。言い換えれば、タブレットコンピュータは、
図5J乃至
図5Lに示す画面の1つを表示して、ワイヤレスキーボード/マウス入力に応答して連続性機能を用いてアプリケーションを起動することが完全に可能である。同様に、ラップトップコンピュータも、タッチセンシティブディスプレイを有し、従って
図5C乃至
図5I、
図7A乃至
図7G、および/または
図8A乃至
図8Cに示す画面を提供してキーボード、マウス、およびタッチ入力に応答することが完全に可能である。他の組み合わせも可能である。
【0268】
図43は、2つの電子デバイス間で移行するためのプロセス4300を示すフロー図である。プロセス4300は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイを備えた電子デバイスで実行されてもよい。ブロック4302で、電子デバイスは、ユーザインタフェースがロック状態にある間に、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4304で、デバイスは、第1のアプリケーションに対応するアフォーダンスを所定の時間表示する。ブロック4306で、デバイスは、タッチセンシティブディスプレイ上の接触を、表示されたアフォーダンスの位置で検出する。ブロック4308で、デバイスは、接触に応じて、第2のアプリケーションを起動し、第2のアプリケーションは第1のアプリケーションに対応している。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0269】
図44は、2つの電子デバイス間で移行するためのプロセス4400を示すフロー図である。プロセス4400は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイとボタンとを備えた電子デバイスで実行されてもよい。ブロック4402で、電子デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4404で、電子デバイスは、ボタンの2度押しを検出する。ブロック4406で、電子デバイスは、2度押しを検出するのに応じて、左のアフォーダンスと中央のアフォーダンスと右のアフォーダンスとを表示し、左のアフォーダンスは、第1のアプリケーションに対応する第2のアプリケーションを電子デバイス上で起動するためであり、中央のアフォーダンスは、電子デバイス上で直近に使用されたアプリケーションを表す。ブロック4408で、電子デバイスが、左のアフォーダンス上の接触を検出する。ブロック4410で、電子デバイスは、左のアフォーダンス上の接触に応じて、電子デバイス上で第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0270】
図45は、2つの電子デバイス間で移行するためのプロセス4500を示すフロー図である。プロセス4500は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイを備えた電子デバイスで実行されてもよい。ブロック4502で、デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4504で、電子デバイスは、タッチセンシティブディスプレイ上で下向きのスワイプを検出し、下向きのスワイプは、タッチセンシティブディスプレイの上端からのものである。ブロック4506で、電子デバイスは、下向きのスワイプに応じて、第2のアプリケーションを電子デバイス上で起動するためのアフォーダンスを表示し、第2のアプリケーションは第1のアプリケーションに対応している。ブロック4508で、電子デバイスはアフォーダンス上の接触を検出する。ブロック4510で、電子デバイスは、アフォーダンス上の接触に応じて、電子デバイス上で第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0271】
図46は、2つの電子デバイス間で移行するためのプロセス4600を示すフロー図である。プロセス4600は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイとバイオメトリック読取装置とを備えた電子デバイスで実行されてもよい。ブロック4602で、電子デバイスは、ユーザインタフェースがロック状態にある間に、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4604で、電子デバイスは、バイオメトリック読取装置からバイオメトリック入力を受信する。ブロック4606で、電子デバイスは、バイオメトリック入力を受信するのに応じて、電子デバイスをロック解除する。ブロック4608で、電子デバイスは、ロック解除した後、第1のアプリケーションに対応するアフォーダンスを表示する。ブロック4610で、電子デバイスは、表示されたアフォーダンス上の接触を検出する。ブロック4612で、電子デバイスは、接触を検出するのに応じて、第2のアプリケーションを起動し、第2のアプリケーションは第1のアプリケーションに対応している。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0272】
図47は、2つの電子デバイス間で移行するためのプロセス4700を示すフロー図である。プロセス4700は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイを備えた電子デバイスで実行されてもよい。ブロック4702で、デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4704で、電子デバイスが、タッチセンシティブディスプレイ上で複数のアプリケーションアイコンを表示する。ブロック4706で、電子デバイスは、タッチセンシティブディスプレイ上で右向きのスワイプを検出し、右向きのスワイプは、タッチセンシティブディスプレイの左端からのものである。ブロック4708で、電子デバイスは、右向きのスワイプに応じて、第2のアプリケーションを電子デバイス上で起動するためのアフォーダンスを表示し、第2のアプリケーションは第1のアプリケーションに対応している。ブロック4710で、電子デバイスはアフォーダンス上の接触を検出する。ブロック4712で、電子デバイスは、アフォーダンス上の接触に応じて、電子デバイス上で第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0273】
図48は、2つの電子デバイス間で移行するためのプロセス4800を示すフロー図である。プロセス4800は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、ユーザインタフェースカーソルを制御するための入力デバイスを備えた電子デバイスで実行されてもよい。ブロック4802で、電子デバイスは、ユーザインタフェースがロック状態にある間に、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4804で、電子デバイスは、パスワード入力フィールドと、第1のアプリケーションに対応するアフォーダンスとを表示する。ブロック4806で、電子デバイスが、パスワードを受信する。ブロック4808で、電子デバイスが、表示されたアフォーダンス上でマウスイベントを検出する。ブロック4810で、電子デバイスは、パスワードを受信してマウスイベントを検出するのに応じて、第2のアプリケーションを起動し、第2のアプリケーションは第1のアプリケーションに対応している。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0274】
図49は、2つの電子デバイス間で移行するためのプロセス4900を示すフロー図である。プロセス4900は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、キーボードを備えた電子デバイスで実行されてもよい。ブロック4902で、電子デバイスは外部デバイスを検出し、ここで外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック4904で、電子デバイスは、キーボードの第1のキーのキー押圧と、キーボードの第2のキーのキー押圧とを同時に検出する。ブロック4906で、電子デバイスは、同時キー押圧に応じて、電子デバイス上の複数のアクティブなアプリケーションを識別するアフォーダンスと第1のアプリケーションに対応する第2のアプリケーションを起動するためのアフォーダンスとを含む、複数のアフォーダンスを表示する。ブロック4908で、電子デバイスは、(i)第2のキーを少なくとも1度、追加でキー押圧することと、(ii)第1のキーを保持した間であることと、(iii)その後、第1のキーと第2のキーとを両方共解放することとを含むキーボード入力のシーケンスを検出する。ブロック4910で、電子デバイスは、キーボード入力のシーケンスに応じて、第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0275】
図50は、2つの電子デバイス間で移行するためのプロセス5000を示すフロー図である。プロセス5000は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、ユーザインタフェースカーソルを制御するための入力デバイスを備えた電子デバイスで実行されてもよい。ブロック5002で、電子デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック5004で、電子デバイスは、カーソルが電子デバイスの画面の隅へ移動するのを検出する。ブロック5006で、電子デバイスは、カーソルの移動を検出するのに応じて、電子デバイス上の複数のアクティブなアプリケーションを識別するアフォーダンスと第1のアプリケーションに対応する第2のアプリケーションを起動するためのアフォーダンスとを含む、複数のアフォーダンスを表示する。ブロック5008で、電子デバイスは、(i)第2のアプリケーションを起動するためのアフォーダンス上へのカーソルの移動と、(ii)アフォーダンス上でのマウスイベントとを含む入力のシーケンスを検出する。ブロック5010で、電子デバイスは、入力のシーケンスを検出するのに応じて、第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0276】
図51は、2つの電子デバイス間で移行するためのプロセス5100を示すフロー図である。プロセス5100は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、表示画面と、ユーザインタフェースカーソルを制御するための入力デバイスとを備えた電子デバイスで実行されてもよい。ブロック5102で、電子デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック5104で、電子デバイスが、電子デバイス上で複数のアプリケーションを起動するための複数のアプリケーションアイコンを、表示画面の一部分に、表示する。ブロック5106で、電子デバイスは、第1のアプリケーションに対応する第2のアプリケーションを起動するためのアイコンを、表示画面の一部分に、表示する。ブロック5108で、電子デバイスは、表示されたアイコン上へのカーソルの移動と、表示されたアイコン上のマウスイベントとを、検出する。ブロック5110で、電子デバイスは、それに応じて、第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0277】
図52は、2つの電子デバイス間で移行するためのプロセス5200を示すフロー図である。プロセス5200は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、ユーザインタフェースカーソルを制御するための入力デバイスを備えた電子デバイスで実行されてもよい。ブロック5202で、電子デバイスが外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であり、第1のアプリケーションは或る状態にある。ブロック5204で、電子デバイスが、メニューバーを表示し、メニューバーは、第1のアプリケーションに対応する第2のアプリケーションを起動するためのアイコンを含んでいる。ブロック5206で、電子デバイスは、表示されたアイコン上へのカーソルの移動と、表示されたアイコン上でのマウスイベントとを検出する。ブロック5208で、電子デバイスは、それに応じて、第2のアプリケーションを起動する。第2のアプリケーションの状態は、第1のアプリケーションの状態に対応している。
【0278】
図10は、2つの電子デバイス間で移行するためのプロセス1000を示すフロー図である。プロセス1000は、デバイス100(
図1)、デバイス300(
図3)、およびデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1002で、デバイスは、ワイヤレス通信を介して、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中であるかまたは実行したことがある。ブロック1004で、デバイスは、外部デバイス上での第1のアプリケーションの使用を示す使用情報を外部デバイスから受信する。この使用情報は、第1のワイヤレス通信プロトコルを用いて受信されてもよい。ブロック1006で、デバイスは、第1のアプリケーションのアプリケーションデータを外部デバイスから受信する。この使用情報は、第1のプロトコルとは異なる第2の通信プロトコルを用いて受信されてもよい。ブロック1008で、外部デバイスの検出と、ブロック1004および1006で受信された情報とに応じて、デバイスは、連続性アフォーダンスを表示する。任意で、ブロック1008で、デバイスは、どれくらい長くアフォーダンスが表示されていたかを判断し、所定の時間の後でアフォーダンスの表示を中止してもよい。ブロック1010で、デバイスは、表示されたアフォーダンスのユーザ選択を表す入力データを受信する。ブロック1012で、入力データを受信するのに応じて、デバイスは、第2のアプリケーションを電子デバイス上で起動し、第2のアプリケーションは第1のアプリケーションに対応している。デバイスが第2のアプリケーションを起動する場合、デバイスは、第2のアプリケーションにも、第1のアプリケーションによって表示されたのと同じアプリケーションデータを表示させる。
【0279】
一部の実施形態では、ブロック1004で受信される使用情報は、低電力のワイヤレス通信プロトコルを用いて受信され、ブロック1006で受信される情報は、高電力のワイヤレス通信プロトコルを用いて受信される。低電力のワイヤレス通信プロトコルは、低帯域幅および/または低データ転送レートを有することがあるので、低電力のワイヤレス通信プロトコルは、データ転送能力が低いということになる。一部の実施形態では、低電力のワイヤレス通信プロトコルは、ピア・ツー・ピアのプロトコルであり、高電力のワイヤレス通信プロトコルは、ローカル・エリア・ネットワークのプロトコルである。一部の実施形態では、低電力のワイヤレス通信プロトコルは、BluetoothまたはBluetooth Low Energyプロトコルであり、高電力のワイヤレス通信プロトコルは、IEEE802.11x WiFiプロトコルである。
【0280】
第1および第2のワイヤレス通信プロトコルの下での通信間の分業は、多様でありうる。言い換えると、連続性機能を提供するために一定の領域の情報をデバイスが受信する必要がある場合、その領域の情報のうちのどの程度が、第2のワイヤレス通信プロトコルではなく第1のワイヤレス通信プロトコルを介して送信されるのかは、実施形態によって多様でありうる、および/または、デバイス上の電池寿命のような要因に基づいて個別の実施形態の中でも変動しうる。一部の実施形態では、デバイス認証情報が、第1のワイヤレス通信プロトコルを介して送信される。一部の実施形態では、デバイス識別情報が、第1のワイヤレス通信プロトコルを介して送信され、電子メールの原稿の内容のようなアプリケーションデータが、第2のワイヤレス通信プロトコルを介して送信される。デバイス識別情報とは、例えば、Bluetoothトークン、アップル社のiCloud(登録商標)IDのようなユーザID、または電子メールアドレスであってもよい。
【0281】
連続性機能をサポートする情報の転送に関するさらなる詳細は、以下の同時係属仮出願の中にありうる。すなわち、2014年5月30日に出願され、「ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES」と題された米国特許出願第62/005,781号と、2014年5月30日に出願され、「COMPANION APPLICATION FOR ACTIVITY COOPERATION」と題された米国特許出願第62/005,793号と、2014年5月30日に出願され、「PREDEFINED WIRELESS PAIRING」と題された米国特許出願第62/005,751号と、2014年5月30日に出願され、「OPERATING−MODE TRNSITIONS BASED ON ADVERTISING INFORMATION」と題された米国特許出願第62/005,755号とである。これらの出願の内容を、全体として参照により本願に援用する。
【0282】
図11は、2つの電子デバイス間で移行するためのプロセス1100を示すフロー図である。プロセス1000は、デバイス100(
図1)、デバイス300(
図3)、およびデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1102で、デバイスは、自分自身と注目ポイントとの間の近接を検出する。ブロック1104で、デバイスは、近接が閾値範囲内にあるかどうかを判断する。ブロック1106で、近接が閾値範囲内にあるという判断に従って、デバイスは、画面上にアフォーダンスを表示する。ブロック1108で、デバイスは、表示されたアフォーダンスの選択を表す入力データを受信する。ブロック1110で、入力データを受信するのに応じて、デバイスは、注目ポイントに関連する電子デバイス上のアプリケーションを起動する。
【0283】
一部の実施形態では、デバイスは、ブロック1102でロックされ、ブロック1110でロック解除される。注目ポイントは、電子的であってもよいし、その位置を識別する電子デバイスを有する物理的名所旧跡であってもよい。注目ポイントが電子デバイスである場合、ブロック1110で、デバイスは、電子的注目ポイントを制御するためのアプリケーションを起動してもよい。例えば、注目ポイントがスマートTVである場合、ブロック1110で、TV用のリモートコントロールアプリケーションが起動されてもよい。注目ポイントが物理的な名所旧跡である場合、ブロック1110で、デバイスは、名所旧跡に関するアプリケーションを起動してもよい。例えば、デバイスは、ブロック1110で、名所旧跡用の観光パンフレットを起動してもよい。
【0284】
任意で、ブロック1110で、デバイス100が、どのアプリケーションを起動するかを判断する際、他の要因を考慮してもよい。上記で論じたように、デバイス100は、どのアプリケーションを起動するかを判断する際、アクセスの時刻や頻度のような文脈情報を考慮してもよい。また、上記で論じたように、デバイス100は、所望のアプリケーションがまだインストールされていないことを見つけることがある。これらの状況では、デバイス100は、ブロック1112へ進んで、アプリケーションをダウンロードし、インストールし、起動してもよい。あるいは、デバイス100は、或るアプリケーションをインストールすべきかどうかをユーザが判断するための追加情報を表示してもよい。
【0285】
図12は、複数のアプリケーションが連続性の目的で利用可能である場合に起動すべきアプリケーションを選択するためのプロセス1200を示すフロー図である。プロセス1200は、デバイス100(
図1)、デバイス300(
図3)、およびデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1202で、デバイスが、ワイヤレス通信を介して、第1の外部デバイスを検出する。第1の外部デバイスは、第1のアプリケーションを実行中であってもよい。第1のアプリケーションは、或る状態を有していてもよい。ブロック1204で、デバイスが、ワイヤレス通信を介して、第1の外部デバイスとは別個の第2の外部デバイスを検出する。第2の外部デバイスは第2のアプリケーションを実行中である。第2のアプリケーションは、或る状態を有していてもよい。ブロック1206で、デバイスは、第1の外部デバイスと第2の外部デバイスとを検出することに基づいて、少なくとも1つのアフォーダンスを、電子デバイスの画面上に表示する。表示されたアフォーダンスは、例えば、
図7A乃至
図7Gに示すユーザインタフェース画面の視覚的外観を有してもよい。ブロック1208で、デバイスは、その少なくとも1つの表示されたアフォーダンスのうちの或るアフォーダンスをユーザが選択したことを表す入力データを受信する。見込まれる入力には、プロセス900(
図9)を参照しながら論じたものを含めて、上述したものが含まれる。ブロック1210で、入力データを受信するのに応じて、デバイスが、電子デバイス上に第3のアプリケーションを起動する。第3のアプリケーションは、第1のアプリケーションまたは第2のアプリケーションのバージョンであってもよい。
【0286】
図13は、2つの電子デバイス間で移行するためのプロセス1300を示すフロー図である。プロセス1300は、デバイス100(
図1)、デバイス300(
図3)、およびデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1302で、デバイスは、第1のアプリケーションを実行中であり、ワイヤレス通信プロトコルを介して外部デバイスを検出する。ブロック1304で、デバイスは、第1のアプリケーションに対応する第2のアプリケーションを起動するよう外部デバイスに命令するためのプッシュアフォーダンスを画面上に表示する。ブロック1306で、デバイスは、プッシュアフォーダンスのユーザ選択を検出する。ブロック1308で、ユーザ選択を検出するのに応じて、デバイスは命令を外部デバイスへ送信し、外部デバイス上で第2のアプリケーションを起動するためのアフォーダンスを外部デバイスに表示させる。
【0287】
図14は、2つの電子デバイス間で移行するためのプロセス1400を示すフロー図である。プロセス1400は、デバイス100(
図1)、デバイス300(
図3)、および/またはデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1402で、デバイスが、ワイヤレス通信を介して、外部デバイスを検出する。外部デバイスは、第1のアプリケーションを実行中である。ブロック1404で、デバイスが、外部デバイスから、或る時間間隔の間に第1のアプリケーションがユーザによって外部デバイス上で使用されたことを示す使用情報の第1の部分を受信する。ブロック1406で、外部デバイスを検出して使用情報の第1の部分を受信するのに応じて、デバイスが、電子デバイスの画面上にアフォーダンスを表示する。ブロック1408で、デバイスは、表示されたアフォーダンスのユーザ選択を検出する。ブロック1410で、ユーザ選択を検出するのに応じて、デバイスは、(i)表示されたアフォーダンスの視覚的外観を変更して、(ii)第1のアプリケーションに関連する使用情報の第2の部分を、外部デバイスから、入手する。ブロック1412で、デバイスは、変更されたアフォーダンス上のユーザ入力を検出する。ブロック1414で、ユーザ入力を受信するのに応じて、デバイスは、使用情報の少なくとも第2の部分に基づいて、第2のアプリケーションを電子デバイス上で起動する。第2のアプリケーションは第1のアプリケーションに対応している。
【0288】
図15は、複数の電子デバイス間で移行するためのプロセス1500を示すフロー図である。プロセス1500は、デバイス100(
図1)、デバイス300(
図3)、および/またはデバイス460(
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。ブロック1502で、デバイスが、第1の外部デバイス上で実行中であるか、および/または実行したことがある第1の複数のアプリケーションを表す第1のデータを、第1の外部デバイスからワイヤレス通信を介して、受信する。ブロック1504で、デバイスは、第1の複数のアプリケーションを表す第1の複数のアフォーダンスを表示し、その複数のアフォーダンスは、第1の外部デバイスの第1のアプリケーションに対応する第1のアフォーダンスを含んでいる。ブロック1506で、デバイスは、第1のアフォーダンスのユーザ選択を検出する。ブロック1508で、第1のアフォーダンスのユーザ選択を検出するのに応じて、デバイスは、第1のローカルなアプリケーションを電子デバイス上で起動する。第1のローカルなアプリケーションは、第1のアプリケーションのバージョンである。
【0289】
第1の外部デバイスから情報を受信することに加えて、プロセス1500を実行中のローカルなデバイスが、第2の外部デバイスから情報を受信してもよい。任意で、プロセス1500は、ブロック1510を含んでもよく、その間にデバイスは、ワイヤレス通信を介して第2の外部デバイスから、第2の外部デバイス上で実行中である、および/または実行したことがある第2の複数のアプリケーションを表す第2のデータを受信する。さらに、ブロック1512で、デバイスは、第2の外部デバイスの第2のアプリケーションに対応する第2のアフォーダンスを含めて、第2の複数のアプリケーションを表す第2の複数のアフォーダンスを表示してもよい。さらに、ブロック1514で、デバイスは、第2のアフォーダンスのユーザ選択を検出し、それに応じて、電子デバイス上で第2のローカルなアプリケーションを起動してもよく、ここで、ローカルなアプリケーションは、第2のアプリケーションのバージョンである。
【0290】
一部の実施形態では、第1および第2の複数のアフォーダンスは、第1および第2の外部デバイスのアプリケーションを表しており、同じ画面に一緒に表示されてもよいことに留意されたい。このユーザインタフェースは、例えば
図7Gの画面740の視覚的外観を有していてもよい。この画面から、ユーザは、近くのデバイス上で実行中の各種のアプリケーションを識別することができる。また、この画面から、ユーザは、対応するアプリケーションをローカルなデバイス上で呼び出すことによって、ローカルなデバイス上で自分の作業を続けることを選んでもよい。このようにして、プロセス1500は、複数の電子デバイス全体にわたってユーザのアプリケーション使用を登録して、ユーザが1つのデバイスの使用から別のデバイスの使用へとシームレスに移行できるようにするという強力な手段を提供する。例えば、1人のユーザが、互換性のあるセルラー電話とタブレットコンピュータとラップトップコンピュータとを所有している状況を考えよう。デバイスが明確化画面740(
図7G)を表示するためのプロセス1500を実行することにより、異なるデバイス間でもユーザは容易にローカルなデバイスへと移行できるようになるであろうし、その方が目の前の仕事にもっと適している可能性がある。
【0291】
図20は、2つの電子デバイス間で移行するためのプロセス2000を示すフロー図である。一部の実施形態では、プロセス2000は、タッチ接触の強度を検出することが可能な、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。一部の実施形態では、プロセス2000は、タッチセンシティブ表面上の接触の力または圧力の代わりのもの(プロキシ)を判断することができる、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。プロセス2000を実行しうる例示的なデバイスには、デバイス100、デバイス300、およびデバイス460(
図1、
図3、および
図4C)が含まれうる。
【0292】
ブロック2002で、第1のタッチ接触が、タッチセンシティブ表面上で検出される。第1の接触は、第1の最大強度を有する。タッチスクリーン上での第1の接触の位置は、デバイス上でアプリケーションを起動するためのアイコンに対応していてもよい。ブロック2004で、第1の最大強度が閾値強度を超えているかどうかについて判断が行われる。第1の最大強度が、閾値強度を下回る場合、処理は、ブロック2006へと続き、ここで、対応するアプリケーションが起動される。第1の最大強度が閾値強度を上回る場合、処理はブロック2005へと進み、ここで、対応するアプリケーションを起動すること以外のフィーチャが実行される。例えば、一部の実施形態では、文脈依存のメニューが表示される。
【0293】
ブロック2008で、第2の接触がタッチセンシティブ表面上で検出されてもよく、第2の接触は、第2の最大強度を有する。ブロック2010で、第2の最大強度が閾値強度を超えているかどうかについて判断が行われる。第2の最大強度が閾値強度を上回る場合、処理はブロック2012へと続き、ここで、ワイヤレス通信を介して、命令が外部デバイスへ送信されてもよい。命令により、外部デバイスは、第1のアプリケーションに対応する第2のアプリケーションを外部デバイス上で起動するためのアフォーダンスを表示してもよい。一部の実施形態では、第2の接触と、命令を送信することとは、1つ以上の中間ステップによって分けられる。例えば、ユーザは、命令が送信されることを目的として、第2の接触の後で追加のアフォーダンス(例えば、画面上のアイコン)を選択するよう求められることがある。追加のアフォーダンスは、ユーザが或る電子デバイスから別の電子デバイスへと情報を「プッシュ」しようとしていることをユーザに示すように、ラベル付けされることがある。第2の最大強度が、閾値強度を下回る場合、処理は、ブロック2011へと進み、ここで、第2のアプリケーションを起動する命令を送信すること以外のフィーチャが、行われる。例えば、一部の実施形態では、第1のアプリケーションのフィーチャが呼び出されてもよい。
【0294】
図21は、2つの電子デバイス間で移行するためのプロセス2100を示すフロー図である。一部の実施形態では、プロセス2100は、デバイス100、デバイス300、およびデバイス460(
図1、
図3、および
図4C)のような、ディスプレイとタッチセンシティブ表面とを備えた電子デバイスで実行されてもよい。アプリケーションがインストールされて、デバイス上で実行可能であってもよい。ブロック2102で、インストールされたアプリケーションが表示されていない間に(例えば、アプリケーションがフォアグラウンドでアクティブではない間に)、インストールされたアプリケーションのためのアプリケーションデータが入手されてもよい。ブロック2104で、入手されたアプリケーションデータを示すアラートが表示されてもよい。例えば、インストールされたアプリケーションは、カリフォルニア州CupertinoのApple Inc.によって製造されたMessages(登録商標)であってもよく、入手されたアプリケーションデータは、着信テキストメッセージであってもよく、アラートは、テキストメッセージの着信をユーザに通知するテキストを含んでいてもよい。ブロック2106で、アラートのスワイプが検出されてもよい。ブロック2108で、検出された移動が実質的に第1の向きであるという判断に応じて、命令が、ワイヤレス通信を介して外部デバイスへ送信されてもよい。命令は、第1のアプリケーションに対応する第2のアプリケーションを外部デバイス上で起動するためのアフォーダンスを外部デバイスが表示するための情報を提供してもよい。命令は、アフォーダンスを表示するよう外部デバイスに命令してもよい。本明細書では、「アラート」は、テキストおよび画像の形式で、グラフィカルユーザインタフェースオブジェクトと一貫していてもよい。
【0295】
図22は、2つの電子デバイス間で移行するためのプロセス2200を示すフロー図である。一部の実施形態では、プロセス2200は、デバイス100、デバイス300、およびデバイス460(
図1、
図3、および
図4C)のような、ディスプレイとマイクとを備えた電子デバイスで実行されてもよい。電子デバイスは、マイクを介して受信された音声入力に応答するインテリジェント自動アシスタントを有してもよい。ブロック2202で、音声入力が検出されてもよい。音声入力には、音声による情報要求が含まれうる。ブロック2204で、ワイヤレス通信圏内にある外部デバイスが検出されてもよい。ブロック2206で、音声入力を検出することと外部デバイスを検出することとに、少なくとも部分的に応答して、命令が、ワイヤレス通信を介して外部デバイスへ送信されてもよい。命令は、要求された情報を表示するためのアフォーダンスを外部デバイスが表示するための情報を提供してもよい。命令は、外部デバイスにアフォーダンスを表示するよう命令してもよい。
【0296】
図53は、2つの電子デバイス間で移行するためのプロセス5300を示すフロー図である。プロセス5300は、デバイス100(
図1)、デバイス300(
図3)、デバイス460(
図4C)、およびデバイス470(
図4D)のような、タッチセンシティブディスプレイとマイクとを備えた電子デバイスで実行されてもよい。ブロック5302で、電子デバイスが、マイクからの音声入力を検出する。音声入力には、音声による情報要求が含まれうる。ブロック5304で、電子デバイスが、ワイヤレス通信を介して、外部デバイスを検出する。ブロック5306で、電子デバイスは、音声入力を検出することと外部デバイスを検出することとに少なくとも部分的に応じて、ワイヤレス通信を介して、命令を外部デバイスへ送信する。命令により、外部デバイスは、要求された情報を表示するためのアフォーダンスを表示する。
【0297】
理解されるべきことだが、
図9乃至
図15、および
図20乃至
図22の中の動作が記述された個別の順序は例示的であって、記述された順序が、動作が行われうる唯一の順序であることを示そうという意図はない。当業者であれば、本明細書で記述された動作の順序を変えるさまざまなやり方が分かるであろう。簡潔にするため、これらの詳細はここでは繰り返さない。加えて、留意すべきことだが、プロセス900乃至1500(
図9乃至
図15)およびプロセス2000乃至プロセス2200(
図20乃至
図22)の態様は、相互に組み込まれてもよい。例えば、プロセス900は、タッチスクリーンを装備しているデバイスと非タッチスクリーンを装備しているデバイスとの両方における入力の受信について記述している。プロセス1000乃至プロセス1500およびプロセス2000乃至プロセス2200(
図10乃至
図15、および
図20乃至
図22)のうちの1つ以上を実行するのに、タッチスクリーンのデバイスと非タッチスクリーンのデバイスとが用いられうる。従って、プロセス900に関して記述した入力技法は、プロセス1000乃至プロセス1500およびプロセス2000乃至プロセス2200にも関連しうる。簡潔にするため、ユーザ入力技法の並べ替えについては繰り返さない。
【0298】
上記の情報処理方法における動作は、汎用プロセッサまたは特定用途向けチップのような情報処理装置における1つ以上の機能モジュールを実行することによって、実装されてもよい。これらのモジュール、これらのモジュールの組み合わせ、および/または(例えば、
図1A、1B、3、4C、および4Dに関して上述したような)一般的ハードウェアとそれらの組み合わせは、すべて、本発明の保護の範囲内に含まれている。
【0299】
図16は、上記のフィーチャを実行する電子デバイス1600の、一部の実施形態における、例示的な機能ブロックを示す図である。
図16に示すように、電子デバイス1600は、グラフィカルオブジェクトを表示するように構成されたディスプレイユニット1602と、ユーザのジェスチャを受信するように構成されたタッチセンシティブ表面ユニット1604と、外部電子デバイスを検出してそれらと通信するように構成された1つ以上のRFユニット1606と、ディスプレイユニット1602、タッチセンシティブ表面ユニット1604、およびRFユニット1606に接続された処理ユニット1608とを備えている。一部の実施形態では、処理ユニット1608は、1つ以上のアプリケーション1612を実行するオペレーティングシステム1610をサポートするように構成される。一部の実施形態では、処理ユニット1608は、ワイヤレス通信圏内にいる外部デバイスを表すデータを、RFユニット1606から、受信して、タッチセンシティブ表面ユニット1604上にグラフィカルユーザインタフェースのアフォーダンスを表示するように構成される。一部の実施形態では、連続性ユニット1610は、受信されたデータを解析して、デバイス1600上で起動すべき対応するアプリケーションならびにアプリケーション状態を判断するように構成される。また、一部の実施形態では、連続性ユニット1610は、受信されたデータを解析してアプリケーション状態を判断するように構成され、それにより、対応するアプリケーションはその状態の下で起動されうる。アプリケーションユニット1612は、対応するアプリケーションを所望の状態で起動するように構成されてもよい。
【0300】
デバイス1600の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図16で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0301】
一部の実施形態によれば、
図23は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2300の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2300の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2300の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図23で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0302】
図23に示すように、電子デバイス2300が、ディスプレイユニット2320と、処理ユニット2326に接続された任意のタッチセンシティブ表面ユニット2322とを備えている。タッチセンシティブ表面ユニット2322は、任意で、ディスプレイユニット2320と組み合わされてタッチスクリーンディスプレイを形成する。一部の実施形態では、処理ユニット2326が、外部デバイス検出ユニット2330と、データ受信ユニット2332と、表示有効化ユニット2334と、入力検出ユニット2336と、アプリケーション起動ユニット2338とを備えている。また、任意で、処理ユニット2326は、アプリケーション状態呼び出しユニット2340と、スワイプ距離判断ユニット2342とを備えている。
【0303】
処理ユニット2326は、ワイヤレス通信を介して、第1のアプリケーションを実行中であるか実行したことがある外部デバイスを(例えば、外部デバイス検出ユニット2330を使って)検出し、外部デバイス上での第1のアプリケーションの使用を示す使用情報を、外部デバイスから、(例えば、データ受信ユニット2332を使って)受信し、外部デバイスを検出して使用情報を受信するのに応じて電子デバイス2300の画面上のアフォーダンスの表示(例えば、ディスプレイユニット2320)を(例えば、表示有効化ユニット2334を使って)有効にし、表示されたアフォーダンスのユーザ選択を(例えば、入力検出ユニット2336を使って)検出し、ユーザ選択を検出するのに応じて、電子デバイス2300上で第1のアプリケーションに対応する第2のアプリケーションを(例えば、アプリケーション起動ユニット2338を使って)起動するように構成される。
【0304】
一部の実施形態では、処理ユニット2326は、さらに、所定の時間の後にアフォーダンスを表示するのを(例えば、表示有効化ユニット2334を使って)中止するように構成される。
【0305】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0306】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0307】
一部の実施形態では、使用情報は、第1のアプリケーションの状態を示し、第2のアプリケーションを起動することは、電子デバイス2300上の第2のアプリケーションにおいてこの状態を(例えば、アプリケーション状態呼び出しユニット2340を使って)呼び出すことを含んでいる。
【0308】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのユーザインタフェース画面に対応する。
【0309】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0310】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0311】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0312】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0313】
一部の実施形態では、処理ユニット2326は、さらに、電子デバイス2300が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2332を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0314】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2326は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0315】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2326は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0316】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0317】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2300上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2332を使って)有効にすることを含んでいる。
【0318】
一部の実施形態では、電子デバイス2300は、タッチセンシティブ・ディスプレイユニット2320を備えており、表示されたアフォーダンスのユーザ選択は、表示されたアフォーダンスからのスワイプである。
【0319】
一部の実施形態では、処理ユニット2326は、さらに、スワイプの距離が閾値距離を超えたかどうかを(例えば、スワイプ距離判断ユニット2342を使って)判断し、スワイプの距離が閾値距離を超えたと判断される場合に限って、第2のアプリケーションを(例えば、アプリケーション起動ユニット2338を使って)起動するように構成される。
【0320】
一部の実施形態では、処理ユニット2326は、さらに、スワイプの距離が閾値距離を超えていないという判断に従って、表示されたアフォーダンスを(例えば、表示有効化ユニット2334を使って)飛び跳ねさせるように構成される。
【0321】
一部の実施形態では、ディスプレイユニット2320とタッチセンシティブ表面2322とが、タッチスクリーンディスプレイを形成し、表示されたアフォーダンスのユーザ選択は、表示されたアフォーダンス上のタップであり、処理ユニット2326は、さらに、タップを検出するのに応じて、電子デバイス2300上で第1のアプリケーションに対応する第2のアプリケーションを(例えば、アプリケーション起動ユニット2338を使って)起動するように構成される。
【0322】
一部の実施形態では、ディスプレイユニット2320とタッチセンシティブ表面2322とが、タッチスクリーンディスプレイを形成し、表示されたアフォーダンスのユーザ選択は、表示されたアフォーダンス上のタップであり、処理ユニット2326は、タップを検出するのに応じて、表示されたアフォーダンスをアプリケーションの起動の要領を示すために(例えば、表示有効化ユニット2334を使って)飛び跳ねさせ、表示されたアフォーダンスのスワイプが検出された場合に限って第2のアプリケーションを(例えば、アプリケーション起動ユニット2338を使って)起動するように構成される。
【0323】
一部の実施形態では、処理ユニット2326は、さらに、タップを検出するのに応じて、表示されたアフォーダンスをスワイプするようにユーザに知らせる注意書きの表示を(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0324】
一部の実施形態では、電子デバイス2300は、ラップトップまたはデスクトップコンピュータである。
【0325】
一部の実施形態では、電子デバイス2300は、タブレットコンピュータである。
【0326】
一部の実施形態では、電子デバイス2300は、電話である。
【0327】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0328】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0329】
一部の実施形態では、外部デバイスは、電話である。
【0330】
図9に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図23で示した構成要素によって実装される。例えば、検出動作902、受信動作904、および表示動作906は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0331】
一部の実施形態によれば、
図24は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2400の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2400の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2400の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図24で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0332】
図24に示すように、電子デバイス2400が、タッチセンシティブ・ディスプレイユニット2420と、タッチセンシティブ・ディスプレイユニット2420に接続された処理ユニット2426とを備えている。一部の実施形態では、処理ユニット2426が、外部デバイス検出ユニット2430と、表示有効化ユニット2432と、入力検出ユニット2434と、アプリケーション起動ユニット2436とを備えている。また、任意で、処理ユニット2426は、データ受信ユニット2438と、スワイプ距離判断ユニット2440とを備えている。
【0333】
図24に示すように、電子デバイス2400が、タッチセンシティブ・ディスプレイユニット2420と、タッチセンシティブ・ディスプレイユニット2420に接続された処理ユニット2426とを備えている。一部の実施形態では、処理ユニット2426が、外部デバイス検出ユニット2430と、表示有効化ユニット2432と、入力検出ユニット2434と、アプリケーション起動ユニット2436とを備えている。また、任意で、処理ユニット2426は、データ受信ユニット2438と、スワイプ距離判断ユニット2440とを備えている。
【0334】
処理ユニット2426は、電子デバイス2400がユーザインタフェースロック状態にある間に、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2430を使って)検出し、タッチセンシティブ・ディスプレイユニット2420上で、所定の時間、第1のアプリケーションに対応するアフォーダンスの表示を(例えば、表示有効化ユニット2432を使って)有効にし、表示されたアフォーダンスの位置でタッチセンシティブ・ディスプレイユニット2420上の接触を(例えば、入力検出ユニット2434を使って)検出し、そして接触に応じて第1のアプリケーションに対応する第2のアプリケーションを(例えば、アプリケーション起動ユニット2436を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0335】
一部の実施形態では、接触は、表示されたアフォーダンス上のタップであり、処理ユニット2426は、さらに、タップを検出するのに応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット2436を使って)起動するように構成される。
【0336】
一部の実施形態では、接触は、表示されたアフォーダンス上のタップであり、処理ユニット2426は、さらに、タップを検出するのに応じて、アフォーダンスを(例えば、表示有効化ユニット2432を使って)飛び跳ねさせ、第2のアプリケーションを起動しないように構成される。
【0337】
一部の実施形態では、接触は、表示されたアフォーダンスからのスワイプであり、処理ユニット2426は、さらに、スワイプを検出するのに応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット2436を使って)起動するように構成される。
【0338】
一部の実施形態では、処理ユニット2426は、さらに、スワイプの距離が閾値距離を超えているかどうか(例えば、スワイプ距離判断ユニット2440を使って)判断し、スワイプの距離が閾値距離を超えていると判断された場合に限って第2のアプリケーションをロック状態から(例えば、アプリケーション起動ユニット2436を使って)起動するように構成される。
【0339】
一部の実施形態では、処理ユニット2426は、さらに、スワイプの距離が閾値距離を超えていないという判断により、アフォーダンスを(例えば、表示有効化ユニット2432を使って)飛び跳ねさせるように構成される。
【0340】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0341】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0342】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0343】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0344】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0345】
一部の実施形態では、処理ユニット2426は、さらに、電子デバイス2400が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2438を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2432を使って)有効にするように構成される。
【0346】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2426は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2432を使って)有効にするように構成される。
【0347】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2426は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2432を使って)有効にするように構成される。
【0348】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0349】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2400上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2432を使って)有効にすることを含んでいる。
【0350】
一部の実施形態では、電子デバイス2400は、ラップトップまたはデスクトップコンピュータである。
【0351】
一部の実施形態では、電子デバイス2400は、タブレットコンピュータである。
【0352】
一部の実施形態では、電子デバイス2400は、電話である。
【0353】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0354】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0355】
一部の実施形態では、外部デバイスは、電話である。
【0356】
図43に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図24で示した構成要素によって実装される。例えば、外部デバイス検出動作4302、表示動作4304、および入力検出動作4306は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0357】
一部の実施形態によれば、
図25は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2500の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2500の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2500の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図25で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0358】
図25に示すように、電子デバイス2500が、タッチセンシティブ・ディスプレイユニット2520と、ボタンユニット2522と、タッチセンシティブ・ディスプレイユニット2520およびボタンユニット2522に接続された処理ユニット2526とを備えている。一部の実施形態では、処理ユニット2526が、外部デバイス検出ユニット2530と、表示有効化ユニット2534と、入力検出ユニット2532と、アプリケーション起動ユニット2536とを備えている。また、任意で、処理ユニット2526は、データ受信ユニット2538を備えている。
【0359】
処理ユニット2526は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2530を使って)検出し、ボタンの2度押しを(例えば、入力検出ユニット2532を使って)検出し、2度押しを検出するのに応じて、第1のアプリケーションに対応する第2のアプリケーションを電子デバイス2500上で起動するための左のアフォーダンスと、電子デバイス2500上で一番最近使用されたアプリケーションを表す中央のアフォーダンスと、右のアフォーダンスとの表示を(例えば、表示有効化ユニット2534を使って)有効にし、左のアフォーダンス上の接触を(例えば、入力検出ユニット2532を使って)検出し、そして、左のアフォーダンス上の接触に応じて電子デバイス2500上で第2のアプリケーションを(例えば、アプリケーション起動ユニット2536を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0360】
一部の実施形態では、左のアフォーダンスの表示を有効にすることは、第1のアプリケーションの状態を示すサムネイル画像の表示を(例えば、表示有効化ユニット2534を使って)有効にすることを含んでいる。
【0361】
一部の実施形態では、右のアフォーダンスは、電子デバイス上で実行中の第3のアプリケーションを表す。
【0362】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0363】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0364】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0365】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0366】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0367】
一部の実施形態では、処理ユニット2526は、さらに、電子デバイス2500が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2538を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2534を使って)有効にするように構成される。
【0368】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2526は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2534を使って)有効にするように構成される。
【0369】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2526は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2534を使って)有効にするように構成される。
【0370】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0371】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2500上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2534を使って)有効にすることを含んでいる。
【0372】
一部の実施形態では、電子デバイス2500は、ラップトップまたはデスクトップコンピュータである。
【0373】
一部の実施形態では、電子デバイス2500は、タブレットコンピュータである。
【0374】
一部の実施形態では、電子デバイス2500は、電話である。
【0375】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0376】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0377】
一部の実施形態では、外部デバイスは、電話である。
【0378】
図44に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図25で示した構成要素によって実装される。例えば、外部デバイス検出動作4402、ボタン押圧検出動作4404、および表示動作4406は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0379】
一部の実施形態によれば、
図26は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2600の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2600の機能ブロックは、上記の技法を実行するように構成される。デバイス2600の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図26で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0380】
図26に示すように、電子デバイス2600が、タッチセンシティブ・ディスプレイユニット2620と、タッチセンシティブ・ディスプレイユニット2620に接続された処理ユニット2626とを備えている。一部の実施形態では、処理ユニット2626が、外部デバイス検出ユニット2630と、表示有効化ユニット2634と、入力検出ユニット2632と、アプリケーション起動ユニット2636とを備えている。また、任意で、処理ユニット2626は、データ受信ユニット2638を備えている。
【0381】
処理ユニット2626は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2630を使って)検出し、タッチセンシティブ・ディスプレイユニット2620上でタッチセンシティブ・ディスプレイユニット2620の上端からの下向きスワイプを(例えば、入力検出ユニット2632を使って)検出し、下向きスワイプを検出するのに応じて、第1のアプリケーションに対応する第2のアプリケーションを電子デバイス2600上で起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット2634を使って)有効にし、アフォーダンス上の接触を(例えば、入力検出ユニット2632を使って)検出し、そして、アフォーダンス上の接触に応じて電子デバイス2600上で第2のアプリケーションを(例えば、アプリケーション起動ユニット2636を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0382】
一部の実施形態では、アフォーダンスの表示を有効にすることは、第1のアプリケーションを識別するサムネイル画像の表示を(例えば、表示有効化ユニット2634を使って)有効にすることを含んでいる。
【0383】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0384】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0385】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0386】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0387】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0388】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0389】
一部の実施形態では、処理ユニット2626は、さらに、電子デバイス2600が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2332を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0390】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2626は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2634を使って)有効にするように構成される。
【0391】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2626は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2634を使って)有効にするように構成される。
【0392】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0393】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2600上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を有効にすることを含んでいる。
【0394】
一部の実施形態では、電子デバイス2600は、ラップトップまたはデスクトップコンピュータである。
【0395】
一部の実施形態では、電子デバイス2600は、タブレットコンピュータである。
【0396】
一部の実施形態では、電子デバイス2600は、電話である。
【0397】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0398】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0399】
一部の実施形態では、外部デバイスは、電話である。
【0400】
図45に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図26で示した構成要素によって実装される。例えば、外部デバイス検出動作4502、スワイプ検出動作4504、および表示動作4506は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0401】
一部の実施形態によれば、
図27は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2700の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2700の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2700の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図27で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0402】
図27に示すように、電子デバイス2700が、タッチセンシティブ・ディスプレイユニット2720と、バイオメトリック読取装置ユニット2722と、タッチセンシティブ・ディスプレイユニット2720およびバイオメトリック読取装置ユニット2722に接続された処理ユニット2726とを備えている。一部の実施形態では、処理ユニット2726は、外部デバイス検出ユニット2730と、データ受信ユニット2732と、ロック解除ユニット2734と、表示有効化ユニット2736と、入力検出ユニット2738と、アプリケーション起動ユニット2740とを備えている。
【0403】
処理ユニット2726は、電子デバイス2700がユーザインタフェースロック状態にある間に、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2630を使って)検出し、バイオメトリック読取装置ユニット2722からバイオメトリック入力を(例えば、データ受信ユニット2732を使って)受信し、バイオメトリック入力を受信するのに応じて電子デバイス2700を(例えば、ロック解除ユニット2734を使って)ロック解除し、ロック解除した後、第1のアプリケーションに対応するアフォーダンスの表示を(例えば、表示有効化ユニット2736を使って)有効にし、表示されたアフォーダンス上の接触を(例えば、入力検出ユニット2738を使って)検出し、そして接触を検出するのに応じて、第1のアプリケーションに対応する第2のアプリケーションを(例えば、アプリケーション起動ユニット2740を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0404】
一部の実施形態では、バイオメトリック読取装置ユニット2722は、指紋読取装置である。
【0405】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0406】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0407】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0408】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0409】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0410】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0411】
一部の実施形態では、処理ユニット2726は、さらに、電子デバイス2700が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2732を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2736を使って)有効にするように構成される。
【0412】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2726は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2736を使って)有効にするように構成される。
【0413】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2726は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2736を使って)有効にするように構成される。
【0414】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0415】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2700上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2736を使って)有効にすることを含んでいる。
【0416】
一部の実施形態では、電子デバイス2700は、ラップトップまたはデスクトップコンピュータである。
【0417】
一部の実施形態では、電子デバイス2700は、タブレットコンピュータである。
【0418】
一部の実施形態では、電子デバイス2700は、電話である。
【0419】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0420】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0421】
一部の実施形態では、外部デバイスは、電話である。
【0422】
図46に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図27で示した構成要素によって実装される。例えば、外部デバイス検出動作4602、バイオメトリック入力受信動作4604、およびロック解除動作4606は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0423】
一部の実施形態によれば、
図28は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2800の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2800の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2800の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図28で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0424】
図28に示すように、電子デバイス2800が、タッチセンシティブ・ディスプレイユニット2820と、タッチセンシティブ・ディスプレイユニット2820に接続された処理ユニット2826とを備えている。一部の実施形態では、処理ユニット2826は、外部デバイス検出ユニット2830と、表示有効化ユニット2834と、入力検出ユニット2832と、アプリケーション起動ユニット2836とを備えている。任意で、処理ユニット2826は、データ受信ユニット2838を備えている。
【0425】
処理ユニット2826は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2830を使って)検出し、タッチセンシティブ・ディスプレイユニット2820上の複数のアプリケーションアイコンの表示を(例えば、表示有効化ユニット2834を使って)有効にし、タッチセンシティブ・ディスプレイユニット2820上でタッチセンシティブ・ディスプレイユニット2820の左端からの右向きスワイプを(例えば、入力検出ユニット2832を使って)検出し、右向きスワイプに応じて、第1のアプリケーションに対応する第2のアプリケーションを電子デバイス2800上で起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット2834を使って)有効にし、アフォーダンス上の接触を(例えば、入力検出ユニット2832を使って)検出し、そして、アフォーダンス上の接触に応じて、電子デバイス2800上で第2のアプリケーションを(例えば、アプリケーション起動ユニット2836を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0426】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0427】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0428】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0429】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0430】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0431】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0432】
一部の実施形態では、処理ユニット2826は、さらに、電子デバイス2800が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2838を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2834を使って)有効にするように構成される。
【0433】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2826は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2834を使って)有効にするように構成される。
【0434】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2826は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2834を使って)有効にするように構成される。
【0435】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0436】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2800上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2834を使って)有効にすることを含んでいる。
【0437】
一部の実施形態では、電子デバイス2800は、ラップトップまたはデスクトップコンピュータである。
【0438】
一部の実施形態では、電子デバイス2800は、タブレットコンピュータである。
【0439】
一部の実施形態では、電子デバイス2800は、電話である。
【0440】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0441】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0442】
一部の実施形態では、外部デバイスは、電話である。
【0443】
図47に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図28で示した構成要素によって実装される。例えば、外部デバイス検出動作4702、表示動作4704、およびスワイプ検出動作4706は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0444】
一部の実施形態によれば、
図29は、上記のさまざまな実施形態の原理に従って構成された電子デバイス2900の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス2900の機能ブロックは、上記の技法を実行するように構成される。電子デバイス2900の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図29で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0445】
図29に示すように、電子デバイス2900が、任意のディスプレイユニット2920と、ユーザ入力を提供するための入力デバイスユニット2922と、入力デバイスユニット2920および任意でディスプレイユニット2920に接続された処理ユニット2926とを備えている。一部の実施形態では、処理ユニット2926は、外部デバイス検出ユニット2930と、表示有効化ユニット2934と、入力検出ユニット2932と、アプリケーション起動ユニット2936と、データ受信ユニット2938とを備えている。
【0446】
処理ユニット2926は、電子デバイス2900がユーザインタフェースロック状態にある間に、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット2930を使って)検出し、パスワード入力フィールドと第1のアプリケーションに対応するアフォーダンスの(例えば、ディスプレイユニット2920を使った)表示を(例えば、表示有効化ユニット2934を使って)有効にし、パスワードを(例えば、入力検出ユニット2932および/または入力デバイスユニット2922を使って)受信し、表示されたアフォーダンス上のマウスイベントを(例えば、入力検出ユニット2932を使って)検出し、そしてパスワードを受信してマウスイベントを検出するのに応じて、第1のアプリケーションに対応する第2のアプリケーションを(例えば、アプリケーション起動ユニット2936を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0447】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0448】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0449】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0450】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0451】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0452】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0453】
一部の実施形態では、処理ユニット2926は、さらに、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット2938を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2934を使って)有効にするように構成される。
【0454】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット2926は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット2934を使って)有効にするように構成される。
【0455】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット2926は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット2334を使って)有効にするように構成される。
【0456】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0457】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス2900上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット2934を使って)有効にすることを含んでいる。
【0458】
一部の実施形態では、電子デバイス2900は、ラップトップまたはデスクトップコンピュータである。
【0459】
一部の実施形態では、電子デバイス2900は、タブレットコンピュータである。
【0460】
一部の実施形態では、電子デバイス2900は、電話である。
【0461】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0462】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0463】
一部の実施形態では、外部デバイスは、電話である。
【0464】
図48に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図29で示した構成要素によって実装される。例えば、外部デバイス検出動作4802、表示動作4804、およびパスワード受信動作4806は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0465】
一部の実施形態によれば、
図30は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3000の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3000の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3000の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図30で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0466】
図30に示すように、電子デバイス3000が、任意のディスプレイユニット3020と、キーボードユニット3022と、キーボードユニット3020および任意でディスプレイユニット3020に接続された処理ユニット3026とを備えている。一部の実施形態では、処理ユニット3026は、外部デバイス検出ユニット3030と、表示有効化ユニット3034と、入力検出ユニット3032と、アプリケーション起動ユニット3036とを備えている。また、任意で、処理ユニット3026は、データ受信ユニット3038を備えている。
【0467】
処理ユニット3026は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット3030を使って)検出し、キーボードユニット3022の第1のキーのキー押圧をキーボードユニットの第2のキーのキー押圧と同時に(例えば、入力検出ユニット3032を使って)検出し、電子デバイス3000上の複数のアクティブなアプリケーションを識別するアフォーダンスと第1のアプリケーションに対応する第2のアプリケーションを起動するためのアフォーダンスとを含む複数のアフォーダンスの(例えば、ディスプレイユニット3020を使った)表示を(例えば、表示有効化ユニット3034を使って)有効にし、(i)第2のキーの少なくとも1つのさらなるキー押圧を(ii)第1のキーを保持している間に(iii)第1のキーと第2のキーとをいずれも解放するのに続いて、検出することを含めて一連のキーボード入力を(例えば、入力検出ユニット3032を使って)検出し、一連のキーボード入力に応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット3036を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0468】
一部の実施形態では、複数のアフォーダンスの表示を有効にすることは、アフォーダンスの1つを(例えば、表示有効化ユニット3034を使って)視覚的に強調表示することを含んでおり、処理ユニット3026は、さらに、一連のキーボード入力を検出している間、第1のキーが保持されている間の第2のキーのキー押圧に応じて複数のアフォーダンスのうちの別のアフォーダンスを(例えば、表示有効化ユニット3034を使って)強調表示するように構成される。
【0469】
一部の実施形態では、処理ユニット3026は、さらに、第1のキーと第2のキーとが解放されている時に第2のアプリケーションを起動するためのアフォーダンスが強調表示されている場合に限って、一連のキーボード入力に応じて第2のアプリケーションを(例えば、アプリケーション起動ユニット3036を使って)起動するように構成される。
【0470】
一部の実施形態では、第1のキーはコントロールキーであり、第2のキーはタブキーである。
【0471】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0472】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0473】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0474】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0475】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0476】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0477】
一部の実施形態では、処理ユニット3026は、さらに、電子デバイス3000が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3038を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3034を使って)有効にするように構成される。
【0478】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3026は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3034を使って)有効にするように構成される。
【0479】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3026は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3034を使って)有効にするように構成される。
【0480】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0481】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3000上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3034を使って)有効にすることを含んでいる。
【0482】
一部の実施形態では、電子デバイス3000は、ラップトップまたはデスクトップコンピュータである。
【0483】
一部の実施形態では、電子デバイス3000は、タブレットコンピュータである。
【0484】
一部の実施形態では、電子デバイス3000は、電話である。
【0485】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0486】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0487】
一部の実施形態では、外部デバイスは、電話である。
【0488】
図49に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図30で示した構成要素によって実装される。例えば、外部デバイス検出動作4902、キー押圧検出動作4904、および表示動作4906は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0489】
一部の実施形態によれば、
図31は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3100の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3100の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3100の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図31で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0490】
図31に示すように、電子デバイス3100が、任意のディスプレイユニット3120と、ユーザインタフェース入力を提供するための入力デバイスユニット3122と、入力デバイスユニット3122および任意でディスプレイユニット3120に接続された処理ユニット3126とを備えている。一部の実施形態では、処理ユニット3126が、外部デバイス検出ユニット3130と、表示有効化ユニット3134と、入力検出ユニット3132と、アプリケーション起動ユニット3136とを備えている。また、任意で、処理ユニット3126は、データ受信ユニット3138を備えている。
【0491】
処理ユニット3126は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット3130を使って)検出し、電子デバイス3100の画面(例えば、ディスプレイユニット3120)の隅へのカーソルの(例えば入力デバイスユニット3122を使った)移動を(例えば、入力検出ユニット3132を使って)検出し、カーソルの移動を検出するのに応じて、電子デバイス3100上の複数のアクティブなアプリケーションを識別するアフォーダンスと第1のアプリケーションに対応する第2のアプリケーションを起動するためのアフォーダンスとを含む複数のアフォーダンスの表示を(例えば、表示有効化ユニット3134を使って)有効にし、(i)第2のアプリケーションを起動するためのアフォーダンス上へのカーソルの移動と(ii)アフォーダンス上のマウスイベントとを含めて一連の入力を(例えば、入力検出ユニット3132を使って)検出し、一連の入力を検出するのに応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット3136を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0492】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0493】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0494】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0495】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0496】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0497】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0498】
一部の実施形態では、処理ユニット3126は、さらに、電子デバイス3100が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3138を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3134を使って)有効にするように構成される。
【0499】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3126は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3134を使って)有効にするように構成される。
【0500】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3126は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3134を使って)有効にするように構成される。
【0501】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0502】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3000上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3134を使って)有効にすることを含んでいる。
【0503】
一部の実施形態では、電子デバイス3100は、ラップトップまたはデスクトップコンピュータである。
【0504】
一部の実施形態では、電子デバイス3100は、タブレットコンピュータである。
【0505】
一部の実施形態では、電子デバイス3100は、電話である。
【0506】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0507】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0508】
一部の実施形態では、外部デバイスは、電話である。
【0509】
図50に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図31で示した構成要素によって実装される。例えば、外部デバイス検出動作5002、移動検出動作5004、および表示動作5006は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0510】
一部の実施形態によれば、
図32は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3200の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3200の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3200の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図32で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0511】
図32に示すように、電子デバイス3200が、表示画面ユニット3220と、ユーザインタフェースカーソルを制御するための入力デバイスユニット3222と、表示画面ユニット3220および入力デバイスユニット3222に接続された処理ユニット3226とを備えている。一部の実施形態では、処理ユニット3226は、外部デバイス検出ユニット3230と、表示有効化ユニット3234と、入力検出ユニット3232と、アプリケーション起動ユニット3236とを備えている。また、任意で、処理ユニット3226は、データ受信ユニット3238を備えている。
【0512】
処理ユニット3226は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット3230を使って)検出し、電子デバイス3200上で複数のアプリケーションを起動するための複数のアプリケーションアイコンの、表示画面ユニット3220の一部分における、表示を(例えば、表示有効化ユニット3234を使って)有効にし、第1のアプリケーションに対応する第2のアプリケーションを起動するためのアイコンの、表示画面ユニット3220の一部分における、表示を(例えば、表示有効化ユニット3234を使って)有効にし、表示されたアイコン上へのカーソルの移動と表示されたアイコン上のマウスイベントとを(例えば、入力検出ユニット3232を使って)検出し、そして、それに応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット3236を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0513】
一部の実施形態では、複数のアプリケーションアイコンおよび第2のアプリケーションを起動するためのアイコンは、表示画面ユニット3220の一部分を水平に横切るように配置される。
【0514】
一部の実施形態では、第1のアプリケーションに対応する第2のアプリケーションを起動するためのアフォーダンスは、ドックのうちで最も左のアフォーダンスである。
【0515】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0516】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0517】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0518】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0519】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0520】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0521】
一部の実施形態では、処理ユニット3226は、さらに、電子デバイス3200が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3238を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3234を使って)有効にするように構成される。
【0522】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3226は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3234を使って)有効にするように構成される。
【0523】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3226は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3234を使って)有効にするように構成される。
【0524】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0525】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3200上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3234を使って)有効にすることを含んでいる。
【0526】
一部の実施形態では、電子デバイス3200は、ラップトップまたはデスクトップコンピュータである。
【0527】
一部の実施形態では、電子デバイス3200は、タブレットコンピュータである。
【0528】
一部の実施形態では、電子デバイス3200は、電話である。
【0529】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0530】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0531】
一部の実施形態では、外部デバイスは、電話である。
【0532】
図51に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図32で示した構成要素によって実装される。例えば、外部デバイス検出動作5102、および表示動作5104は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0533】
一部の実施形態によれば、
図33は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3300の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3300の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3300の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図33で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0534】
図33に示すように、電子デバイス3300が、任意のディスプレイユニット3320と、ユーザインタフェースカーソルを制御するための入力デバイスユニット3322と、入力デバイスユニット3322および任意でディスプレイユニット3320に接続された処理ユニット3326とを備えている。一部の実施形態では、処理ユニット3326は、外部デバイス検出ユニット3330と、表示有効化ユニット3334と、入力検出ユニット3332と、アプリケーション起動ユニット3336とを備えている。また、任意で、処理ユニット3326は、データ受信ユニット3338を備えている。
【0535】
処理ユニット3326は、第1のアプリケーションを実行中であって第1のアプリケーションは或る状態にあるような外部デバイスを(例えば、外部デバイス検出ユニット3330を使って)検出し、第1のアプリケーションに対応する第2のアプリケーションを起動するためのアイコンを含むメニューバーの(例えば、ディスプレイユニット3320を使った)表示を(例えば、表示有効化ユニット3234を使って)有効にし、表示されたアイコン上への(例えば、入力デバイスユニット3322を使った)カーソルの移動と表示されたアイコン上のマウスイベントとを(例えば、入力検出ユニット3332を使って)検出し、そして、それに応じて、第2のアプリケーションを(例えば、アプリケーション起動ユニット3336を使って)起動し、第2のアプリケーションの状態は第1のアプリケーションの状態に対応するように、構成される。
【0536】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0537】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0538】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0539】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0540】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0541】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0542】
一部の実施形態では、処理ユニット3326は、さらに、電子デバイス3300が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3338を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3334を使って)有効にするように構成される。
【0543】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3326は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3334を使って)有効にするように構成される。
【0544】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3326は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3334を使って)有効にするように構成される。
【0545】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0546】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3300上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3334を使って)有効にすることを含んでいる。
【0547】
一部の実施形態では、電子デバイス3300は、ラップトップまたはデスクトップコンピュータである。
【0548】
一部の実施形態では、電子デバイス3300は、タブレットコンピュータである。
【0549】
一部の実施形態では、電子デバイス3300は、電話である。
【0550】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0551】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0552】
一部の実施形態では、外部デバイスは、電話である。
【0553】
図52に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図33で示した構成要素によって実装される。例えば、外部デバイス検出動作5202、表示動作5204、および移動検出動作5206は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0554】
一部の実施形態によれば、
図34は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3400の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3400の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3400の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図34で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0555】
図34に示すように、電子デバイス3400が、任意でディスプレイユニット3420に接続された処理ユニット3426を備えている。一部の実施形態では、処理ユニット3426は、外部デバイス検出ユニット3430と、表示有効化ユニット3434と、入力検出ユニット3432と、アプリケーション起動ユニット3436と、データ受信ユニット3438とを備えている。
【0556】
処理ユニット3426は、第1のアプリケーションを実行中であるか実行したことがある外部デバイスを、第1の通信プロトコルを介して、(例えば、外部デバイス検出ユニット3430を使って)検出し、外部デバイス上での第1のアプリケーションの使用を示す使用情報を外部デバイスから(例えば、データ受信ユニットを使って)受信し、外部デバイスを検出して使用情報を受信するのに応じて、電子デバイス3400の画面(例えばディスプレイユニット3420)上のアフォーダンスの表示を(例えば、表示有効化ユニット3434を使って)有効にし、第1の通信プロトコルとは異なる第2の通信プロトコルを介して、外部デバイスから第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニットを使って)受信し、表示されたアフォーダンスのユーザ選択を(例えば、入力検出ユニット3432を使って)検出し、そして、入力データを受信するのに応じて、第1のアプリケーションに対応する第2のアプリケーションを電子デバイス3400上で(例えば、アプリケーション起動ユニット3436を使って)起動し、そして、第2のアプリケーションの中にアプリケーションデータを表示することを(例えば、表示有効化ユニット3434を使って)有効にするように、構成される。
【0557】
一部の実施形態では、第1の通信プロトコルと第2の通信プロトコルとは、異なるワイヤレスプロトコルであり、第2のワイヤレス通信プロトコルは、第1の通信プロトコルより大きいデータ転送容量を有する。
【0558】
一部の実施形態では、第1の通信プロトコルを介して外部デバイスを検出することは、ピア・ツー・ピアのワイヤレス通信プロトコルを介して、外部デバイスを(例えば、入力検出ユニット3432を使って)検出することを含んでいる。
【0559】
一部の実施形態では、第1の通信プロトコルを介して外部デバイスを検出することは、Bluetooth low energy(BTLE)ワイヤレス通信プロトコルを介して、外部デバイスを(例えば、入力検出ユニット3432を使って)検出することを含んでいる。
【0560】
一部の実施形態では、第2の通信プロトコルを介してアプリケーションデータを受信することは、WiFiを介して、第1のアプリケーションに関連するアプリケーションデータを(例えば、データ受信ユニット3438を使って)受信することを含んでいる。
【0561】
一部の実施形態では、使用情報は、電子メールアドレスに基づく識別データを含んでおり、処理ユニット3426は、さらに、電子デバイス3400が同じ電子メールアドレスに関連付けられている場合に限ってアフォーダンスの表示を(例えば、表示有効化ユニット3434を使って)有効にするように構成される。
【0562】
図10に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図34で示した構成要素によって実装される。例えば、検出動作1002、受信動作および表示動作1008は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0563】
一部の実施形態によれば、
図35は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3500の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3500の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3500の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図35で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0564】
図35に示すように、電子デバイス3500が、表示画面ユニット3520と、表示画面ユニット3520に接続された処理ユニット3526とを備えている。一部の実施形態では、処理ユニット3526は、注目ポイント検出ユニット3530と、範囲判断ユニット3532と、表示有効化ユニット3534と、入力検出ユニット3536と、アプリケーション起動ユニット3638と、デバイスロック解除ユニット3540とを備えている。また、任意で、処理ユニット3526は、ダウンロードユニット3542と、インストールユニット3544と、通信ユニット3546と、範囲検出ユニット3548と、識別ユニット3550と、時刻判断ユニット3552と、文脈情報検出ユニット3554と、速度検出ユニット3556とを備えている。
【0565】
処理ユニット3526は、電子デバイス3500がユーザインタフェースロック状態にある間に注目ポイントを(例えば、注目ポイント検出ユニット3530を使って)検出し、注目ポイントが閾値範囲内にあるかどうかを(例えば、範囲判断ユニット3532を使って)判断し、近接が閾値範囲内にあるという判断に従って、電子デバイス3500の画面上でのアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にし、表示されたアフォーダンスのユーザ選択を(例えば、入力検出ユニット3536を使って)検出し、そして、ユーザ選択を検出するのに応じて、電子デバイス3500を(例えば、デバイスロック解除ユニット3540を使って)ロック解除し、注目ポイントに関連する電子デバイス3500上のアプリケーションを(例えば、アプリケーション起動ユニット3538を使って)起動するように、構成される。
【0566】
一部の実施形態では、注目ポイントは名所旧跡であり、アプリケーションを起動することは、電子デバイス3500の表示画面ユニット3520上で名所旧跡を識別する情報の表示を(表示有効化ユニット3534を使って)有効にすることを含んでいる。
【0567】
一部の実施形態では、注目ポイントは名所旧跡であり、アプリケーションを起動することは、名所旧跡に関連するアプリケーションをインストールするためのインストールアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にすることと、インストールアフォーダンスのユーザ選択に応じて、アプリケーションを(例えば、ダウンロードユニット3542を使って)ダウンロードすることと、アプリケーションを(例えば、インストールユニット3544を使って)インストールすることと、そして、アプリケーションを(例えば、アプリケーション起動ユニット3538を使って)起動することとを含んでいる。
【0568】
一部の実施形態では、注目ポイントは名所旧跡であり、アプリケーションを起動することは、名所旧跡に関連するアプリケーションにアクセスするために、ウェブブラウザを(例えば、アプリケーション起動ユニット3538を使って)起動することと、ウェブページの表示を(例えば、表示有効化ユニット3534を使って)有効にすることとを含んでいる。
【0569】
一部の実施形態では、注目ポイントが閾値範囲内にあるかどうかを判断することは、電子デバイス3500が、注目ポイントを表す外部デバイスと、ピア・ツー・ピアのワイヤレス通信プロトコルを介して(例えば、通信ユニット3546を使って)通信することを含んでいる。
【0570】
一部の実施形態では、注目ポイントが閾値範囲内にあるかどうかを判断することは、電子デバイス3500が、注目ポイントを表す外部デバイスと、Bluetooth low energy(BTLE)ワイヤレス通信プロトコルを介して(例えば、通信ユニット3546を使って)通信することを含んでいる。
【0571】
一部の実施形態では、注目ポイントが閾値範囲内にあるかどうかを判断することは、電子デバイス3500が、注目ポイントを表す外部デバイスと、WiFiワイヤレス通信プロトコルを介して(例えば、通信ユニット3546を使って)通信することを含んでいる。
【0572】
一部の実施形態では、注目ポイントが閾値範囲内にあるかどうかを判断することは、電子デバイス3500が名所旧跡の指定の範囲内にあることを、位置センサを用いて(例えば、範囲検出ユニット3548を使って)検出することを含んでいる。
【0573】
一部の実施形態では、電子デバイス3500の表示画面ユニット3520上でのアフォーダンスの表示を有効にすることは、さらに、電子デバイス3500が注目ポイントの閾値範囲内にある間に電子デバイス3500上で頻繁に起動される目標アプリケーションを(例えば、識別ユニット3550を使って)識別することと、目標アプリケーションを起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にすることとを含んでいる。
【0574】
一部の実施形態では、電子デバイス3500の画面上でのアフォーダンスの表示を有効にすることは、さらに、現在時刻を(例えば、時刻判断ユニット3552を使って)判断することと、電子デバイス3500が現在時刻に注目ポイントの位置値範囲内にある間に電子デバイス3500上で頻繁に使用される目標アプリケーションを(識別ユニット3550を使って)識別することと、目標アプリケーションを起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にすることとを含んでいる。
【0575】
一部の実施形態では、処理ユニット3526は、さらに、電子デバイス3500に関する文脈情報を(例えば、文脈情報検出ユニット3554を使って)検出するように構成され、そして、電子デバイス3500の画面上のアフォーダンスの表示を有効にすることは、さらに、文脈情報に基づいて目標アプリケーションを(例えば識別ユニット3550を使って)識別することと、目標アプリケーションを起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にすることとを含んでいる。
【0576】
一部の実施形態では、文脈情報を検出することは、電子デバイス3500の移動の速度を(例えば、速度検出ユニット3556を使って)検出することを含んでおり、電子デバイス3500の画面上でのアフォーダンスの表示を有効にすることは、さらに、検出された速度に基づいて目標アプリケーションを(例えば、識別ユニット3550を使って)識別することと、目標アプリケーションを起動するためのアフォーダンスの表示を(例えば、表示有効化ユニット3534を使って)有効にすることとを含んでいる。
【0577】
図11に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図35で示した構成要素によって実装される。例えば、近接検出動作1102、近接判断動作1104、および表示動作1106は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0578】
一部の実施形態によれば、
図36は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3600の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3600の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3600の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図36で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0579】
図36に示すように、電子デバイス3600が、表示画面ユニット3620と、表示画面ユニット3620に接続された処理ユニット3626とを備えている。一部の実施形態では、処理ユニット3626は、データ受信ユニット3630と、表示有効化ユニット3634と、入力検出ユニット3632と、アプリケーション起動ユニット3636とを備えている。また、任意で、処理ユニット3626は、ソートユニット3638を備えている。
【0580】
処理ユニット3626は、第1の外部デバイス上で実行中か、および/または実行したことがある第1の複数のアプリケーションを表す第1のデータを、第1の外部デバイスから(例えば、データ受信ユニット3630を使って)受信し、受信された第1のデータに基づいて、第1の外部デバイスの第1のアプリケーションに対応する第1のアフォーダンスを含めて、第1の複数のアプリケーションを表す第1の複数のアフォーダンスの表示を(例えば、表示有効化ユニット3634を使って)有効にし、第1のアフォーダンスのユーザ選択を(例えば入力検出ユニット3632を使って)検出し、第1のアフォーダンスのユーザ選択を検出するのに応じて、電子デバイス3600上の第1のローカルなアプリケーションを(例えば、アプリケーション起動ユニット3636を使って)起動し、第1のローカルなアプリケーションは第1のアプリケーションのバージョンであるように、構成される。
【0581】
一部の実施形態では、処理ユニット3620は、さらに、第2の外部デバイス上で実行中か、および/または実行したことがある第2の複数のアプリケーションを表す第2のデータを、第2の外部デバイスから(例えば、データ受信ユニット3630を使って)受信し、第2の外部デバイスの第2のアプリケーションに対応する第2のアフォーダンスを含めて、第2の複数のアプリケーションを表す第2の複数のアフォーダンスの表示を(例えば、表示有効化ユニット3634を使って)有効にし、第2のアフォーダンスのユーザ選択を(例えば入力検出ユニット3632を使って)検出し、それに応じて、電子デバイス3600上の第2のローカルなアプリケーションを(例えば、アプリケーション起動ユニット3636を使って)起動し、第2のローカルなアプリケーションは第2のアプリケーションのバージョンであるように、構成される。
【0582】
一部の実施形態では、第1および第2の複数のアフォーダンスの表示を有効にすることは、第1および第2の複数のアフォーダンスの表示を、電子デバイス3600の表示画面ユニット3620上で同時に有効にすることを含んでいる。
【0583】
一部の実施形態では、第1の複数のアフォーダンスの表示を有効にすることは、第1の複数のアフォーダンスに対応する各アプリケーションが、どれくらい前に、第1の外部デバイス上で最後に使用されたかに基づいて第1の複数のアフォーダンスを(例えば、ソートユニット3638を使って)ソートすることを含んでいる。
【0584】
一部の実施形態では、第2の複数のアフォーダンスの表示を有効にすることは、第2の複数のアフォーダンスに対応する各アプリケーションが、どれくらい前に、第2の外部デバイス上で最後に使用されたかに基づいて第2の複数のアフォーダンスを(例えば、ソートユニット3638を使って)ソートすることを含んでいる。
【0585】
一部の実施形態では、処理ユニット3620は、さらに、電子デバイス3600上にインストールされた複数のユーザ指定のアプリケーションを表す複数のお気に入りのアフォーダンスを、第1および第2の複数のアフォーダンスのうち少なくとも1つと同時に表示することを(例えば、表示有効化ユニット3634を使って)有効にし、複数のお気に入りのアフォーダンスから或るお気に入りのアフォーダンスをユーザが選択することを(例えば、入力検出ユニット3632を使って)検出し、それに応じて、対応するアプリケーションを電子デバイス3600上で(例えば、アプリケーション起動ユニット3636を使って)起動するように、構成される。
【0586】
図15に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図36で示した構成要素によって実装される。例えば、受信動作1502、表示動作1504、および検出動作1506は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0587】
一部の実施形態によれば、
図37は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3700の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3700の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3700の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図37で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0588】
図37に示すように、電子デバイス3700が、タッチセンシティブ・ディスプレイユニット3720と、ボタンユニット3722と、タッチセンシティブ・ディスプレイユニット3720およびボタンユニット3722に接続された処理ユニット3726とを備えている。一部の実施形態では、処理ユニット3726は、外部デバイス検出ユニット3730と、表示有効化ユニット3734と、入力検出ユニット3732と、アプリケーション起動ユニット3736とを備えている。
【0589】
処理ユニット3726は、第1のアプリケーションを実行中であるか実行したことがある第1の外部デバイスを(例えば、外部デバイス検出ユニット3730を使って)検出し、第2のアプリケーションを実行中であるかまたは実行したことがある、第1の外部デバイスとは別個の第2の外部デバイスを(例えば、外部デバイス検出ユニット3730を使って)検出し、第1の外部デバイスおよび第2の外部デバイスを検出することに基づいて電子デバイス3700の画面上に少なくとも1つのアフォーダンスを表示することを(例えば、表示有効化ユニット3734を使って)有効にし、少なくとも1つの表示されたアフォーダンスのうちの或るアフォーダンスのユーザ選択を(例えば、入力検出ユニット3732を使って)検出し、ユーザ選択を検出するのに応じて、第3のアプリケーションを電子デバイス3700上で(例えば、アプリケーション起動ユニット3736を使って)起動し、第3のアプリケーションは第1のアプリケーションまたは第2のアプリケーションのバージョンであるように、構成される。
【0590】
一部の実施形態では、第1のアプリケーションの方が、第2のアプリケーションより直近で使用されているため、処理ユニット3726は、さらに、ユーザ選択を検出するのに応じて、電子デバイス3700上で第3のアプリケーションを(例えば、アプリケーション起動ユニット3736を使って)起動し、第3のアプリケーションは第1のアプリケーションのバージョンであるように、構成される。
【0591】
一部の実施形態では、少なくとも1つのアフォーダンスの表示を有効にすることは、第1のアプリケーションを表す第1のアフォーダンスと第2のアプリケーションを表す第2のアフォーダンスとの表示を(例えば、表示有効化ユニット3734を使って)有効にすることを含んでおり、ここでユーザ選択は、第1のアフォーダンスまたは第2のアフォーダンスの選択である。処理ユニット3726は、さらに、ユーザが第1のアフォーダンスを選択したという判断に従って、第1のアプリケーションのバージョンを(例えば、アプリケーション起動ユニット3736を使って)起動し、ユーザが第2のアフォーダンスを選択したという判断に従って、第2のアプリケーションのバージョンを(例えば、アプリケーション起動ユニット3736を使って)起動するように構成される。
【0592】
図12に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図37で示した構成要素によって実装される。例えば、外部デバイス検出動作1202、表示動作1206、およびユーザ選択検出動作1208は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0593】
一部の実施形態によれば、
図38は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3800の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3800の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3800の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図38で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0594】
図38に示すように、電子デバイス3800が、表示画面ユニット3820と、表示画面ユニット3820に接続された処理ユニット3826とを備えている。一部の実施形態では、処理ユニット3826は、外部デバイス検出ユニット3830と、表示有効化ユニット3834と、入力検出ユニット3832と、アプリケーション起動ユニット3836とを備えている。任意で、処理ユニット3826は、データ受信ユニット3838も備えている。
【0595】
処理ユニット3826は、電子デバイス3800が第1のアプリケーションを実行中である場合に、ワイヤレス通信を介して、外部デバイスを(例えば、外部デバイス検出ユニット3830を使って)検出し、第1のアプリケーションに対応する第2のアプリケーションを起動するよう外部デバイスに命令するために、表示画面ユニット3820上でプッシュアフォーダンスの表示を(例えば、表示有効化ユニット3834を使って)有効にし、プッシュアフォーダンスのユーザ選択を(例えば、入力検出ユニット3832を使って)検出し、ユーザ選択を検出するのに応じて、外部デバイスへ命令を(例えば、命令送信ユニット3836を使って)送信し、命令により、外部デバイスが、第2のアプリケーションを外部デバイス上で起動するためのアフォーダンスを表示するように、構成される。
【0596】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0597】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0598】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0599】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0600】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0601】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0602】
一部の実施形態では、処理ユニット3826は、さらに、電子デバイス3800が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3838を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3834を使って)有効にするように構成される。
【0603】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3826は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3834を使って)有効にするように構成される。
【0604】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3826は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3834を使って)有効にするように構成される。
【0605】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0606】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3800上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3834を使って)有効にすることを含んでいる。
【0607】
一部の実施形態では、電子デバイス3800は、ラップトップまたはデスクトップコンピュータである。
【0608】
一部の実施形態では、電子デバイス3800は、タブレットコンピュータである。
【0609】
一部の実施形態では、電子デバイス3800は、電話である。
【0610】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0611】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0612】
一部の実施形態では、外部デバイスは、電話である。
【0613】
図13に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図38で示した構成要素によって実装される。例えば、外部デバイス検出動作1302、表示動作1304、およびユーザ選択検出動作1306は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0614】
一部の実施形態によれば、
図39は、上記のさまざまな実施形態の原理に従って構成された電子デバイス3900の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス3900の機能ブロックは、上記の技法を実行するように構成される。電子デバイス3900の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図39で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0615】
図39に示すように、電子デバイス3900が、ディスプレイユニット3920と、画面ユニット3920に接続された処理ユニット3926とを備えている。一部の実施形態では、処理ユニット3926は、外部デバイス検出ユニット3930と、表示有効化ユニット3934と、入力検出ユニット3932と、アプリケーション起動ユニット3936と、データ受信ユニット3938と、アプリケーション実行ユニット3940とを備えている。
【0616】
処理ユニット3926は、第1のアプリケーションを(例えば、アプリケーション実行ユニット3940を使って)実行し、外部デバイスを(例えば、外部デバイス検出ユニット3930を使って)検出し、現在時刻より前の所定の時間内に外部デバイス上で第1のアプリケーションがユーザによって使用されたことを示す使用情報の第1の部分を、外部デバイスから(例えば、データ受信ユニット3938を使って)受信し、外部デバイスを検出することと使用情報の第1の部分を受信することとに応じて、電子デバイス3900のディスプレイユニット3920上でのアフォーダンスの表示を(例えば、表示有効化ユニット3934を使って)有効にし、表示されたアフォーダンスの第1のユーザ選択を(例えば、入力検出ユニット3932を使って)検出し、第1のユーザ選択を検出するのに応じて、表示されたアフォーダンスの視覚的外観を(例えば、表示有効化ユニット3934を使って)変更し、そして、第1のアプリケーションに関連する使用情報の第2の部分を、外部デバイスから(例えば、データ受信ユニット3938を使って)入手するように、構成される。処理ユニット3926は、さらに、表示されたアフォーダンスの第2のユーザ選択を(例えば、入力検出ユニット3932を使って)検出し、そして、第2のユーザ選択を検出するのに応じて、少なくとも使用情報の第2の部分に基づいて電子デバイス3900上で第2のアプリケーションを(例えば、アプリケーション起動ユニット3936を使って)起動し、第2のアプリケーションは第1のアプリケーションに対応するように、構成される。
【0617】
一部の実施形態では、処理ユニット3926は、表示されたアフォーダンスの第1のユーザ選択を検出した後に限って、外部デバイスから、使用情報の第2の部分を(例えば、データ受信ユニット3938を使って)入手するように構成される。
【0618】
一部の実施形態では、第1のユーザ選択はタップであり、第2のユーザ入力はスワイプである。
【0619】
一部の実施形態では、第1のアプリケーションは、現在時刻より前の所定の時間内に外部デバイス上で使用された。
【0620】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0621】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0622】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0623】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかに対応する。
【0624】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0625】
一部の実施形態では、処理ユニット3926は、さらに、電子デバイス3900が、第1のアプリケーションのアプリケーションデータを(例えば、データ受信ユニット3938を使って)受信し、アプリケーションデータを第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3934を使って)有効にするように構成される。
【0626】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの一部分を表しており、処理ユニット3926は、さらに、メッセージの一部分を第2のアプリケーションの中に表示することを(例えば、表示有効化ユニット3934を使って)有効にするように構成される。
【0627】
一部の実施形態では、アプリケーションデータはウェブページの一部分を表しており、処理ユニット3926は、さらに、ウェブページの一部分を第2のアプリケーションを介して表示することを(例えば、表示有効化ユニット3934を使って)有効にするように構成される。
【0628】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0629】
一部の実施形態では、第1のアプリケーションは少なくとも1つのアプリケーションフィーチャを実行し、第2のアプリケーションを起動することは、外部デバイス上で実行中の第1のアプリケーションのアプリケーションフィーチャを、電子デバイス3900上で実行中の第2のアプリケーションからワイヤレスで、呼び出すためのアフォーダンスの表示を(例えば、表示有効化ユニット3934を使って)有効にすることを含んでいる。
【0630】
一部の実施形態では、電子デバイス3900は、ラップトップまたはデスクトップコンピュータである。
【0631】
一部の実施形態では、電子デバイス3900は、タブレットコンピュータである。
【0632】
一部の実施形態では、電子デバイス3900は、電話である。
【0633】
一部の実施形態では、外部デバイスは、ラップトップまたはデスクトップコンピュータである。
【0634】
一部の実施形態では、外部デバイスは、タブレットコンピュータである。
【0635】
一部の実施形態では、外部デバイスは、電話である。
【0636】
図14に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図39で示した構成要素によって実装される。例えば、外部デバイス検出動作1402、受信動作1404、および表示動作1406は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0637】
一部の実施形態によれば、
図40は、上記のさまざまな実施形態の原理に従って構成された電子デバイス4000の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス4000の機能ブロックは、上記の技法を実行するように構成される。電子デバイス4000の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図40で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0638】
図40に示すように、電子デバイス4000が、タッチセンシティブ・ディスプレイユニット4020と、タッチセンシティブ・ディスプレイユニット4020に接続された処理ユニット4026とを備えている。任意で、タッチセンシティブ・ディスプレイユニット4020は、タッチセンシティブ・ディスプレイユニット4020との接触の強度を検出するように構成された1つ以上のセンサユニット4022を備えている。一部の実施形態では、処理ユニット4026が、入力検出ユニット4030と、アプリケーション起動ユニット4032と、データ送信ユニット4034と、表示有効化ユニット4036とを備えている。
【0639】
処理ユニット4026は、第1の最大強度を有する第1の接触をタッチセンシティブ・ディスプレイユニット4020上で(例えば、入力検出ユニット4030およびセンサユニット4022を使って)検出し、第1の最大強度は閾値強度を下回るという判断に応じて、第1のアプリケーションを(例えば、アプリケーション起動ユニット4032を使って)起動し、第2の最大強度を有する第2の接触をタッチセンシティブ・ディスプレイユニット4020上で(例えば、入力検出ユニット4030を使って)検出し、第2の最大強度は閾値強度を上回るという判断に少なくとも部分的に応じて、ワイヤレス通信を介して、外部デバイスへ命令を(例えば、データ送信ユニット4034を使って)送信し、命令により、外部デバイスが、第1のアプリケーションに対応する第2のアプリケーションを外部デバイス上で起動するためのアフォーダンスを表示するように、構成される。
【0640】
一部の実施形態では、処理ユニット4026は、さらに、第2の最大強度は閾値強度を上回るという判断に応じて、第2のアプリケーションを起動するように外部デバイスに命令するためのアフォーダンスの表示を(例えば、表示有効化ユニと4036を使って)有効にし、アフォーダンスのユーザ選択を(例えば、入力検出ユニット4030を使って)検出し、アフォーダンスのユーザ選択を検出するのに応じて命令を(例えば、データ送信ユニット4034を使って)送信するように、構成される。
【0641】
一部の実施形態では、タッチセンシティブ・ディスプレイユニット4020上で第2の接触を検出することは、第1のアプリケーションがタッチセンシティブ・ディスプレイユニット4020のフォアグラウンドで表示されている間にタッチセンシティブ・ディスプレイユニット4020上で第2の接触を(例えば、入力検出ユニット4030を使って)検出することを含んでいる。
【0642】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0643】
一部の実施形態では、命令は、第2のアプリケーションが起動される時に第2のアプリケーションの中の状態を呼び出すための、第1のアプリケーションの状態のインジケーションを含んでいる。
【0644】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのユーザインタフェース画面に対応する。
【0645】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0646】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0647】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかを識別する。
【0648】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0649】
一部の実施形態では、処理ユニット4026は、さらに、電子デバイス4000が、第1のアプリケーションのアプリケーションデータを外部デバイスへ(例えば、データ送信ユニット4034を使って)送信し、アプリケーションデータの少なくとも一部分は、第2のアプリケーションが起動された場合、第2のアプリケーションによって表示されるように、構成される。
【0650】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの少なくとも一部分を表す。
【0651】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるウェブページの少なくとも一部分を表す。
【0652】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0653】
一部の実施形態では、電子デバイス4000は、ウェアラブル電子デバイスである。
【0654】
図20に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図40で示した構成要素によって実装される。例えば、検出動作2002および起動動作2006は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0655】
一部の実施形態によれば、
図41は、上記のさまざまな実施形態の原理に従って構成された電子デバイス4100の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス4100の機能ブロックは、上記の技法を実行するように構成される。電子デバイス4100の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図41で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0656】
図41に示すように、電子デバイス4100が、処理ユニット4126に接続されたタッチセンシティブ・ディスプレイユニット4120を備えている。一部の実施形態では、処理ユニット4126が、インストールされたアプリケーションユニット4122と、アプリケーションデータ入手ユニット4130と、入力検出ユニット4132と、表示有効化ユニット4134と、命令送信ユニット4136とを備えている。
【0657】
処理ユニット4126は、インストールされたアプリケーションがタッチセンシティブ・ディスプレイユニット4120上に表示されていない間に、インストールされたアプリケーションユニット4122のためのアプリケーションデータを(例えば、アプリケーションデータ入手ユニット4130を使って)入手し、入手されたアプリケーションデータを示すメッセージの表示を(例えば、表示有効化ユニット4134を使って)有効にし、表示されたメッセージ上の接触と、接触の移動とを(例えば、入力検出ユニット4132を使って)検出し、検出された移動が実質的に第1の方向であるという判断に応じて、ワイヤレス通信を介して、外部デバイスへ命令を(例えば、命令送信ユニット4136を使って)送信し、命令により、外部デバイスが、第1のアプリケーションに対応する第2のアプリケーションを外部デバイス上で起動するためのアフォーダンスを表示するように、構成される。
【0658】
一部の実施形態では、処理ユニット4126は、さらに、検出された移動が実質的に、第1の方向とは逆の第2の方向であるという判断に応じて、インストールされたアプリケーションを(例えば、インストールされたアプリケーションユニット4122を使って)起動し、電子デバイス4100上で起動されたアプリケーションの中でアプリケーションデータの表示を(例えば、表示有効化ユニット4134を使って)有効にするように構成される。
【0659】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、少なくとも1つのアプリケーションフィーチャを共通して有する。
【0660】
一部の実施形態では、命令は、第2のアプリケーションが起動される時に第2のアプリケーションの中の状態を呼び出すための、第1のアプリケーションの状態のインジケーションを含んでいる。
【0661】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのユーザインタフェース画面に対応する。
【0662】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのナビゲーション階層の中の位置に対応する。
【0663】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションの中で表示される文書の中の位置に対応する。
【0664】
一部の実施形態では、第1のアプリケーションの状態は、第1のアプリケーションのフィーチャがアクティブであるかどうかを識別する。
【0665】
一部の実施形態では、第1のアプリケーションと第2のアプリケーションとは、同じアプリケーションの、複数のバージョンである。
【0666】
一部の実施形態では、処理ユニット4126は、さらに、電子デバイス4100が、第1のアプリケーションのアプリケーションデータを外部デバイスへ(例えば、命令送信ユニット4136を使って)送信し、アプリケーションデータの少なくとも一部分は、第2のアプリケーションが起動された場合、第2のアプリケーションによって表示されるように、構成される。
【0667】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるメッセージの少なくとも一部分を表す。
【0668】
一部の実施形態では、アプリケーションデータは、第1のアプリケーションによって表示されるウェブページの少なくとも一部分を表す。
【0669】
一部の実施形態では、少なくとも1つのアプリケーションフィーチャは、第1のアプリケーションと第2のアプリケーションとのうちいずれか1つからに限って、アクセス可能である。
【0670】
一部の実施形態では、電子デバイス4100は、ウェアラブル電子デバイスである。
【0671】
図21に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図41で示した構成要素によって実装される。例えば、入手動作2102、表示動作2104および検出動作2106は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0672】
一部の実施形態によれば、
図42は、上記のさまざまな実施形態の原理に従って構成された電子デバイス4200の例示的な機能ブロック図である。一部の実施形態によれば、電子デバイス4200の機能ブロックは、上記の技法を実行するように構成される。電子デバイス4200の機能ブロックは、任意で、上記のさまざまな例の原理を実行するため、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装される。当業者には理解されることだが、
図42で記述される機能ブロックは、任意で、上記のさまざまな例の原理を実装するため、組み合わされたり、サブブロックに分割されたりする。従って、本明細書の記述は、任意で、本明細書で記述される機能ブロックのいずれかの見込まれる組み合わせまたは分割またはさらなる定義をサポートする。
【0673】
図42に示すように、電子デバイス4200が、タッチセンシティブ・ディスプレイユニット4220と、マイクユニット4222と、タッチセンシティブ・ディスプレイユニット4220およびマイクユニット4222に接続された処理ユニット4226とを備えている。一部の実施形態では、処理ユニット4226は、外部デバイス検出ユニット4230と、入力検出ユニット4232と、命令送信ユニット4234とを備えている。任意で、処理ユニット4026は、情報入手ユニット4236と、表示有効化ユニット4238と、情報識別ユニット4240と、情報送信ユニット4242とを備えている。
【0674】
処理ユニット4226は、音声による情報要求を含む、マイクユニットからの音声入力を(例えば、入力検出ユニット4232を使って)検出し、ワイヤレス通信を介して、外部デバイスを(例えば、外部デバイス検出ユニット4230を使って)検出し、音声入力を検出することと外部デバイスを検出することとに少なくとも部分的に応じて、ワイヤレス通信を介して、命令を外部デバイスへ(例えば、命令送信ユニット4234を使って)送信し、命令により、外部デバイスが、要求された情報を表示するためのアフォーダンスを表示するように、構成される。
【0675】
一部の実施形態では、処理ユニット4226は、さらに、音声入力を検出するのに応じて、要求された情報をウェブサービスから(例えば、情報入手ユニット4236を使って)入手し、入手された情報の表示を(例えば、表示有効化ユニット4238を使って)有効にするように構成される。
【0676】
一部の実施形態では、処理ユニット4226は、さらに、入手された情報の表示を有効にしている間は、起動された場合には命令が外部デバイスへ送信されるようにさせうるアフォーダンスの表示を(例えば、表示有効化ユニット4238を使って)有効にし、アフォーダンスのユーザ選択を(例えば、入力検出ユニット4232を使って)検出し、アフォーダンスのユーザ選択を検出することに少なくとも部分的に応じて、命令を(例えば、命令送信ユニット4234を使って)送信するように、構成される。
【0677】
一部の実施形態では、電子デバイス4200が、第1の視聴覚能力を有し、外部デバイスが、別の第2の視聴覚能力を有する。処理ユニット4226は、さらに、電子デバイス4200において、要求された情報の第1のバージョンの表示を(例えば、表示有効化ユニット4238を使って)有効にし、第1のバージョンは、電子デバイス4200の第1の視聴覚能力内で表示されるように構成される。外部デバイスは、要求された情報を表示する場合、外部デバイスの第2の視聴覚能力を利用して、要求された情報の第2のバージョンを表示し、ここで、第2のバージョンは、視覚的および/または聴覚的に第1のバージョンとは異なる。
【0678】
一部の実施形態では、高い視聴覚能力と低い視聴覚能力との差は、要求された情報を、外部デバイスと電子デバイス4200とのうちの一方だけに表示するためのアプリケーションの利用可能性に関係する。
【0679】
一部の実施形態では、高い視聴覚能力と低い視聴覚能力との差は、要求された情報を、外部デバイスと電子デバイス4200とのうちの一方だけで再生するためのスピーカの利用可能性に関係する。
【0680】
一部の実施形態では、電子デバイス4200は、ウェアラブル電子デバイスである。
【0681】
一部の実施形態では、命令を外部デバイスへ送信することは、要求された情報を外部デバイスに対して(例えば、情報識別ユニット4240を使って)識別することを含んでいる。
【0682】
一部の実施形態では、命令を外部デバイスへ送信することは、要求された情報を提供するウェブサービスを外部デバイスに対して(例えば、情報識別ユニット4240を使って)識別することを含んでいる。
【0683】
一部の実施形態では、命令を外部デバイスへ送信することは、電子デバイス4200が、要求された情報をウェブサービスから(例えば、情報入手ユニット4236を使って)入手することと、入手された情報の少なくとも一部分を、外部デバイスへ(例えば、情報送信ユニット4242を使って)送信することとを含んでいる。
【0684】
図53に関して上述した動作は、任意で、
図1A乃至
図1Bまたは
図42で示した構成要素によって実装される。例えば、入力検出動作5202、外部デバイス検出動作5204、および送信動作5206は、イベントソータ170、イベントレコグナイザ180およびイベントハンドラ190によって実装されてもよい。イベントソータ170の中のイベントモニタ171は、タッチセンシティブディスプレイ112上の接触を検出し、イベント発送モジュール174は、イベント情報をアプリケーション136−1へ配信する。アプリケーション136−1のそれぞれのイベントレコグナイザ180が、イベント情報をそれぞれのイベント定義186と比較して、タッチセンシティブ表面上の第1の位置での第1の接触は、ユーザインタフェース上のアフォーダンスの起動のような、事前設定されたイベントまたはサブイベントに対応するのかどうかを判断する。それぞれの事前設定されたイベントまたはサブイベントが検出された場合、イベントレコグナイザ180は、イベントまたはサブイベントの検出に関連するイベントハンドラ190を起動する。イベントハンドラ190は、データ更新器176またはオブジェクト更新器177を利用するかまたは呼び出して、アプリケーション内部状態192を更新してもよい。一部の実施形態では、イベントハンドラ190は、それぞれのGUI更新器178にアクセスして、アプリケーションによって表示されているものを更新する。同様に、他のプロセスが、
図1A乃至
図1Bに示された構成要素に基づいて、どのように実装されうるかは、当業者には明らかであろう。
【0685】
説明のための前述の記述は、特定の実施形態に関して記述してきた。しかし、上記の例示的議論は、網羅的であることも、開示されたのと違わぬ形態に本発明を限定することも、意図されていない。上記の教示内容に照らして、多くの修正形態および変形形態が可能である。実施形態は、本技法の原理とそれらの実際的な応用とを最も良く説明することを目的として選ばれ、記述されてきた。それによって、当業者は、本技法と、意図された個別の用途に適した各種の修正を伴う各種の実施形態とを最も良く利用できるようになる。
【0686】
本開示および実施例を、添付の図面に関して詳しく記述してきたが、当業者には、各種の変更形態および修正形態が明らかになるであろうということに留意されたい。そのような変更形態および修正形態は、請求項によって定義される本開示および実施例の範囲内に含まれることは、理解されると思う。