【文献】
STUDIO SHIN,iPhone/iPadグラフィックスプログラミング,第1版,日本,ソフトバンククリエイティブ株式会社,2013年05月31日,第24ページ
(58)【調査した分野】(Int.Cl.,DB名)
前記仮想キーボードは、ユーザアプリケーションを起動すること無しに、前記ユーザデバイスのオペレーティングシステムを介して前記ユーザデバイスの前記ディスプレイに提示される
ことを特徴とする請求項1に記載の方法。
前記仮想キーボードは、ユーザアプリケーションを起動すること無しに、前記ユーザデバイスのオペレーティングシステムを介して前記ユーザデバイスの前記ディスプレイに提示される
ことを特徴とする請求項8に記載のシステム。
1以上の命令のシーケンスを含むコンピュータ可読媒体であって、前記1以上の命令のシーケンスは、1以上のプロセッサによって実行されたときに、前記1以上のプロセッサに対して、
ユーザデバイスによって、当該ユーザデバイス上に仮想キーボードを起動させるようにユーザに促す第1のグラフィカル通知を提示させ、
前記第1のグラフィカル通知を介し前記ユーザデバイスによって、前記ユーザデバイス上に前記仮想キーボードを起動させる第1のユーザ入力を受信させ、
前記ユーザデバイスのディスプレイ上に、入力を提供するための前記仮想キーボードをを提示させ、
ここで、前記仮想キーボードは、前記ユーザデバイス上のいかなるユーザアプリケーションとも別個の、前記ユーザデバイスのオペレーティングシステムによって提供されるものである;
前記仮想キーボードを解除するユーザ入力を受信させ、
前記仮想キーボードの前記解除を一定の時間期間遅延させる
ことを特徴とするコンピュータ可読記憶媒体。
前記仮想キーボードは、ユーザアプリケーションを起動すること無しに、前記ユーザデバイスのオペレーティングシステムを介して前記ユーザデバイスの前記ディスプレイに提示される
ことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0016】
概説
ユーザデバイス上に遠隔キーボードサービスを提供するための方法、装置、及びコンピュータプログラムの例を、以下に開示する。以下の説明において、説明を提供することを目的として、本発明の実施形態の完全な理解を提供するために、多くの具体的な詳細を記述する。しかし、本発明の実施形態は、これらの具体的な詳細を伴わずに、又は等価な構成と共に実践できる点は、当業者には明らかであろう。その他の場合において、本発明の実施形態を不必要に不明瞭としないために、周知の構造体及びデバイスはブロック図の形態で示されている。
【0017】
図1は、ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なシステム100のブロック図である。一部の実装形態では、システム100は、ユーザデバイス102(例えば、102a、102b、...102n)を含むことができる。例えば、ユーザデバイス102aは、スマートホン、タブレットコンピュータ、テレビ、デスクトップコンピュータ、ラップトップコンピュータ、家庭用デバイス、電子書籍デバイス、ゲームデバイス、スマートウォッチ、スマートグラス及び/又は他のモバイルデバイス若しくはウェアラブルデバイス、これらのデバイスのアクセサリ及び周辺機器、あるいはそれらの任意の組み合わせ等の、コンピューティングデバイスであり得る。
【0018】
一部の実装形態では、ユーザデバイス102(例えば、ユーザデバイス102a、ユーザデバイス102b、...ユーザデバイス102n)は、様々なサービス及び機能を提供するそれぞれのオペレーティングシステム104と共に構成することができる。例えば、オペレーティングシステム104は、ユーザデバイス102の近傍にある異なるデバイスから、状態広告メッセージ(例えば、Bluetooth(登録商標)パケット、BluetoothLEパケット等)を受信して復号するように構成することができる。状態広告メッセージは、異なるサービスの利用可能性、異なるデバイス間の処理の連携に必要なデータ、並びに/あるいは他のデバイスへの情報及び/又はサービスの要求を含む、他のデバイスの現在の状態を記述する情報を含むことができる。例えば、ユーザデバイス102aは、ユーザデバイス102b及び/又は102nから、これらのデバイスの現在の状態を記述した状態広告メッセージを受信することができる。
【0019】
一部の実装形態では、ユーザデバイス102は、メディアデバイス106から状態広告メッセージを受信することができる。例えば、メディアデバイス106は、ストリーミングメディアプレーヤ、セットトップボックス、スマートテレビ、ラップトップコンピュータ、又は他のコンピューティングデバイス等のコンピューティングデバイスであり得る。ユーザデバイス102のユーザは、再生すべきメディアアイテム及び/又は視聴すべき他のコンテンツを閲覧及び検索するために、メディアデバイス106と対話することができる。例えば、メディアデバイス106は、メディアデバイス106に接続されたディスプレイ(例えば、テレビ、コンピュータのモニタ等)上に、メディアデバイス106がメディアデバイス106のディスプレイ上に提示するためにメディアアイテム(例えば、映画、ウェブサイト、画像、写真等)をユーザが閲覧、検索及び選択することを可能にするグラフィカルユーザインターフェースを提示することができる。
【0020】
一部の実装形態では、メディアデバイス106は、ユーザにテキスト入力を要求することがある。例えば、メディアデバイス106は、メディアアイテムを検索するときに、ユーザにテキスト入力を要求してもよい。メディアデバイス106は、ユーザのログインクレデンシャルを要求するサブスクリプションサービスにログインするときに、テキスト入力をユーザに要求することがある。メディアデバイス106のオペレーティングシステム108は、時として、何らかのテキスト入力を要求する。例えば、メディアデバイス106は、ネットワーク構成入力、ログインクレデンシャル等を受信するためのプロンプト及びテキスト入力制御をメディアデバイス106のディスプレイ上に提示することができる。アプリケーション110(例えば、メディアコンテンツプロバイダソフトウェアアプリケーション、ビデオアプリケーション、音楽アプリケーション、ゲームアプリケーション、天気アプリケーション等)は、時として、ユーザからのテキスト入力を受信するためのプロンプト及びテキスト入力制御を提示する。例えば、アプリケーション110は、検索クエリを定義するテキストをユーザが入力することを可能にするメディアアイテム検索機能を提供してもよい。
【0021】
一部の実装形態では、ユーザは、遠隔制御デバイス120を使用してテキスト入力を提供することができる。例えば、メディアデバイス106は、メディアデバイス106上でカーソルを移動させ、ディスプレイ上のアイテムを選択するための少数の方向ボタン及び選択ボタンを備える遠隔制御デバイス120と共に販売されている、又はそれと共に作用してもよい。時として、遠隔制御デバイス120はタッチインターフェースを有してもよく、遠隔制御デバイス120は、メディアデバイス106上でカーソルを移動させ、ディスプレイ上のアイテムを選択するためのタッチ入力ジェスチャ(例えば、スワイプアップ、スワイプダウン、スワイプレフト、スワイプライト、タップ等)を受信することができる。遠隔制御デバイス120を用いてメディアデバイス106にテキスト入力を提供するときに、典型的には、ユーザは、適切な文字列が構築されるまで、遠隔制御デバイス120を使用して、グラフィカルユーザインターフェース上に提示された文字の配列上でカーソルを移動させて1文字ずつ選択していかなければならない。このプロセスは、遅く、ユーザにとって煩わしいことがあり、一般的に、ユーザがメディアデバイス106に再生して欲しいメディアアイテムを見つけるために、この雨だれプロセス(hunt-and-peck process)をユーザが繰り返し行わなければならない場合に、ユーザを苛々させる結果となる。
【0022】
遠隔制御デバイス120を用いてテキストを入力することに関する上記の課題を解決するために、ユーザデバイス102は、メディアデバイス106と遠隔対話するための遠隔制御アプリケーション104(例えば、104a、104b) と共に構成することができる。例えば、遠隔制御アプリケーションは、ネットワーク112を介してメディアデバイス106を制御することができる。ネットワーク112は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、ローカルWi−Fi(登録商標)ネットワーク、アドホックピアツーピアネットワーク等とすることができる。ネットワーク112は、インターネットプロトコル、Bluetooth、Bluetoothローエナジー(Low Energy)、又は任意の他のネットワーキングプロトコルを使用して実装することができる。
【0023】
一部の実装形態では、遠隔制御アプリケーション104は、遠隔制御デバイス120と同様の機能性を提供するように構成することができる。例えば、遠隔制御アプリケーション104は、ユーザデバイス102のディスプレイ上に、カーソルを移動させるための方向制御、及びメディアデバイス106により提示されたアイテムを選択するための選択制御を提示することができる。しかし、遠隔制御アプリケーション104はまた、メディアデバイス106にテキスト入力を提供するためにユーザが使用できる仮想キーボードを提供することもできる。例えば、遠隔制御アプリケーション104aによって、仮想キーボードをユーザデバイス102aのタッチ感知ディスプレイ上に提示することができ、ユーザは、仮想キーボード上でタイプ入力して、文字を選択し、要求されたテキスト入力に対応する文字列を生成することができる。次いで、ユーザデバイス102aは、ネットワーク112を介して、メディアデバイス106にテキスト入力を送信することができる。次いで、メディアデバイス105は、検索を実行する、オペレーティングシステム108を構成する、アプリケーション110を構成する、又は任意の他の目的のために、テキスト入力を使用することができる。
【0024】
遠隔制御アプリケーション104が提供した仮想キーボードにテキスト入力を提供することは、遠隔制御デバイス120を使用してテキストを入力することに対する改善であるが、依然としてユーザは、仮想キーボードにアクセスして使用することでメディアデバイス106にテキスト入力を提供できるようになる前に、ユーザデバイス102aをロック解除して遠隔制御アプリケーション104aを起動させるという負担を強いられる。これにより、一部の実装形態では、ユーザデバイス102aのオペレーティングシステム104aは、メディアデバイス106にテキスト入力を提供するための仮想キーボードサービスを提供することができる。例えば、ユーザデバイス102aは、ユーザデバイス102aをロック解除することなく、仮想キーボードサービスを提供してもよい。ユーザデバイス102aは、遠隔制御アプリケーション104aを起動させることなく、仮想キーボードサービスを提供することができる。
【0025】
一部の実装形態では、メディアデバイス106は、ユーザデバイス102により提供された遠隔キーボードサービスに接続するための遠隔キーボードサービス要求をブロードキャストすることができる。例えば、遠隔キーボードサービス要求は、メディアデバイス106上でテキスト入力制御が選択済みであることを示すデバイス状態広告メッセージ(例えば、その一部)であり得る。例えば、ユーザが(例えば、遠隔制御デバイス120を使用して)メディアデバイス106と対話しており、テキスト入力フィールドを選択したとき、メディアデバイス106は、テキスト入力フィールドが選択されていることを示す状態広告メッセージを生成することができる。例えば、アプリケーション110がメディアアイテム検索グラフィカルユーザインターフェースを提示している場合、ユーザは、ユーザが検索クエリを提供できるように、グラフィカルユーザインターフェース上のテキスト入力制御を選択してもよい。テキスト入力制御を選択したことに応じて、アプリケーション110はオペレーティングシステム108のアプリケーションプログラミングインターフェース(API:application programming interface)を起動させて、選択されたテキスト入力制御に入力を提供するためのキーボードサポートを要求することができる。
【0026】
オペレーティングシステム108がテキスト入力を必要とする構成グラフィカルユーザインターフェースを提示している場合には、ユーザは、ユーザが適切な構成文字列(例えば、ネットワーク識別子、アカウントクレデンシャル等)を提供できるように、グラフィカルユーザインターフェース上のテキスト入力制御を選択してもよい。テキスト入力制御を選択したことに応じて、オペレーティングシステム108はオペレーティングシステム108のAPIを起動して、選択されたテキスト入力制御に入力を提供するためのキーボードサポートを要求することができる。キーボードサポートAPIが起動されたときに、オペレーティングシステム108は、メディアデバイス106上でテキスト入力制御が選択されていることを示すデータを含む状態広告メッセージを生成することができる。例えば、状態広告メッセージは、メディアデバイス106の識別子、アプリケーション110の識別子、テキスト入力制御が選択されていることを示すデータ(例えば、真/偽)、ユーザによって提供されるテキスト入力制御若しくはテキスト入力を記述するデータ、及び/又はユーザがメディアデバイス106に既に提供しているテキスト入力を含むことができる。状態広告メッセージデータは、参照によりその全体が本明細書に組み込まれる米国特許出願整理番号第15/179,676号に記載されるような状態広告メッセージスキーマを用いて、状態広告メッセージに符号化され、状態広告メッセージから復号することができる。
【0027】
一部の実装形態では、メディアデバイス106は、生成された状態広告メッセージをブロードキャストすることができる。例えば、メディアデバイス106は、Bluetooth、Bluetoothローエナジー、ピアツーピアWi−Fi、又は何らかの他の無線技術等の無線(例えば、ピアツーピア)技術を用いて、生成された状態広告メッセージをブロードキャストすることができる。例えば、特定の受信者デバイスを選択することなく、状態広告メッセージをブロードキャストすることができる。例えば、メディアデバイス106が送信する無線信号の範囲内の任意のユーザデバイス(例えば、ユーザデバイス102)は、メディアデバイス106により生成された広告メッセージを受信及び/又は処理することができる。代替的に、送信デバイスと同一のユーザアカウント(例えば、加入者アカウント、クラウドサービスアカウント等)に関連付けられたユーザデバイスのみが、その送信デバイスからメッセージを受信し、復号することができる。代替的に、送信デバイス及び/又は受信デバイスは、同一のユーザ及び/又は同一のユーザアカウントに関連付けられていなくてもよい。例えば、ユーザデバイス102及びメディアデバイス106は全て、異なるユーザアカウントに関連付けられていても、又はユーザアカウントに全く関連付けられていなくてもよい。ユーザデバイス102及びメディアデバイス106は、異なる構成及び/又は異なるオペレーティングシステムを備える、異なる製造業者による、異なるタイプのコンピューティングデバイスとすることができる。
【0028】
一部の実装形態では、ユーザデバイス102は、ブロードキャストされた状態広告メッセージ(state advertisement message;状態アドバタイズメントメッセージ)を受信することができる。例えば、メディアデバイス106のブロードキャスト範囲内のユーザデバイス102(例えば、ユーザデバイス102a、ユーザデバイス102b、...ユーザデバイス102n)は、状態広告メッセージを受信することができる。状態広告メッセージを受信したことに応じて、ユーザデバイス102は、状態広告メッセージ中の状態データに基づいて、メディアデバイス106上のテキスト入力制御が現在選択されていることを判定することができる。ユーザデバイス102が、メディアデバイス106上でテキスト入力制御が選択されていることを判定したとき、ユーザデバイス102上のオペレーティングシステム104は、それぞれのデバイス上で、ユーザに仮想キーボードを起動させるように促すグラフィカル通知を提示する。例えば、ユーザが、ユーザデバイス102a(例えば、スマートホン)、ユーザデバイス102b(例えば、ラップトップ)、及びユーザデバイス102n(例えば、タブレット)を全てメディアデバイス106のブロードキャスト範囲内に有している場合、これらのデバイスは全て、状態広告メッセージに基づいてメディアデバイス106上のテキスト入力制御が現在選択されていることを判定し、これらのユーザデバイスが全て、これらのユーザデバイスの各々の上で仮想キーボードを起動させるようにユーザに促すグラフィカル通知を提示することができる。
【0029】
一部の実装形態では、ユーザデバイス102(例えば、ユーザデバイス102a、ユーザデバイス102b、...ユーザデバイス102n)は、ユーザデバイスの画面がロックされているときであっても、ユーザデバイスの画面上にキーボード通知を提示することができる。例えば、ユーザデバイス102は、メディアデバイス106からブロードキャストされている状態広告メッセージを受信すると、遠隔キーボード通知を提示することができる。
【0030】
上記の例を引き続き参照して、ユーザがメディアデバイス106のブロードキャスト範囲内にユーザデバイス102aを有していると仮定すると、ユーザデバイス102aは、ユーザデバイス102aのディスプレイ上に遠隔キーボード通知を提示することができる。ユーザが(例えば、通知のタッチ操作、スワイプ操作等によって)ユーザデバイス102a上の通知を選択した後、ユーザデバイス102aは、通信ネットワーク112を介してメディアデバイス106との双方向通信セッションを確立することができる。例えば、通信ネットワーク112は、データネットワーク、無線ネットワーク、電話ネットワーク、又はそれらの任意の組み合わせ等、各種ネットワークを含み得る。(例えば、状態広告メッセージ中に具現化された)遠隔キーボードサービス要求にユーザデバイス102aが応答した後、メディアデバイス106は、メディアデバイス106が遠隔キーボードに接続済みであることを示す別の状態広告メッセージをブロードキャストできる。これにより、メディアデバイス106が遠隔キーボードに接続済みであることを示す状態広告メッセージを受信したことに応じて、他のユーザデバイス(例えば、ユーザデバイス102b、ユーザデバイス102n等)は、それらの対応するキーボード通知を解除する(例えば、隠す、ディスプレイから除去する)ことができる。
【0031】
一部の実装形態では、メディアデバイス106は、要求されたテキスト入力を記述する情報をユーザデバイス102aに送信することができる。例えば、ネットワーク112を介した双方向通信セッションを確立した後、メディアデバイス106のオペレーティングシステム108は、遠隔キーボードを介してユーザによって提供されるテキスト入力を記述する情報を、ユーザデバイス102aのオペレーティングシステム104aに送信することができる。例えば、情報は、テキスト入力フィールドについてのプロンプト(例えば、「ユーザ名を入力(Enter user name)」、「パスワードを入力(Enter password)」、「検索クエリを入力(Enter search query)」等)を含んでもよい。情報は、アプリケーション110又はオペレーティングシステム108の識別情報又はレプリゼンテーションを含むことができる。例えば、情報は、アプリケーション110又はオペレーティングシステム108の製造業者を表す画像、アイコン又はグラフィックを含むことができる。次いで、オペレーティングシステム104aは、更に以下で説明するように、この情報を使用して、ユーザデバイス102aのディスプレイ上にテキスト入力制御及び/又は仮想キーボードを提示することができる。あるいは、上述のように、ユーザデバイス102aが受信した状態広告メッセージからこの情報を取得することができる。
【0032】
一部の実装形態では、オペレーティングシステム104aは、仮想キーボード入力をメディアデバイス106に送信することができる。例えば、オペレーティングシステム104aは、仮想キーボード上に提示された文字又は他のグラフィカル要素を選択する入力をユーザが提供したときを検出することができる。各入力を検出した後、オペレーティングシステム104aは、選択された文字又はグラフィカル要素を識別するメッセージをオペレーティングシステム108に送信することができる。例えば、オペレーティングシステム104aは、オペレーティングシステム108及び/又はアプリケーション110が(例えば、検索結果を提示すること、テキスト入力制御間で移動すること等によって)各キーボード入力に適切に応答することができるように、各文字又はグラフィカル要素をそれらが選択されたとおりに送信することができる。例えば、オペレーティングシステム108は、アプリケーション110が、アプリケーション110のプログラミングに応じてキーボード入力に応答することができるように、アプリケーション110にキーボード入力を送信することができる。一部の実装形態では、ユーザが選択された制御にテキスト入力を提供し終えたことを示す入力をユーザが提供した後に、ユーザデバイス102aによって提供されるキーボードサービスを終了させることができる。例えば、ユーザが仮想キーボード上でグラフィカル要素(例えば、「エンター(enter)」キー、「終了(done)」要素等)を選択したときに、キーボードサービスを終了し、仮想キーボードを解除する、若しくは隠すことができる。
【0033】
一部の実装形態では、オペレーティングシステム104aは、遠隔仮想キーボードサービスを終了する前に、一定の時間期間待機することができる。例えば、ユーザがメディアデバイス106により提示されたテキスト制御への入力を提供し終えた場合であっても、オペレーティングシステム104aは、最後の入力の後、一定の時間期間(例えば、5秒、7秒等)にわたって仮想キーボードを提示し続け、メディアデバイス106により提示される追加のテキスト制御への入力をユーザが提供できるようにすることができる。これにより、ユーザは、メディアデバイス106が追加のテキスト入力を要求した場合に、仮想キーボードを再び起動させるという負担を負わなくてもよい。
【0034】
図2は、ユーザデバイス102a上に遠隔キーボード通知202を提示するための例示的なグラフィカルユーザインターフェース200を示す。例えば、通知202は、上述したように、メディアデバイス106上でテキスト入力制御が選択されていることを示す状態広告メッセージを受信したことに応じてユーザデバイス102aのディスプレイ上にオペレーティングシステム104aにより提示された、グラフィカル要素であり得る。通知202は、状態広告メッセージを受信する各ユーザデバイス102上に提示され得る。通知202は、例えば、メディアデバイス106及び/又はアプリケーション110を表す記述204及び/又は画像206を含むことができる。通知202は、どのようにユーザデバイス102a上に仮想キーボードを起動させるかを記述するプロンプト208を含むことができる。例えば、ユーザは、通知202を選択(例えば、長押し、押圧タッチ、タップ、スワイプ等)することによって仮想キーボードを起動させることができる。
【0035】
一部の実装形態では、ユーザデバイス102(例えば、ユーザデバイス102a、ユーザデバイス102b、...ユーザデバイス102n)は、ユーザデバイス102aがロックされた時にユーザデバイス102aのGUI200上にキーボード通知202を提示することができる。例えば、GUI200は、ユーザデバイス102aのロック画面とすることができる。GUI200は、ユーザデバイス102aがロック解除された(例えば、ユーザが、ユーザデバイス102aのユーザとして認証済みである)時のユーザデバイス102aのホーム画面とすることができる。
【0036】
図3は、ユーザデバイス102a上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェース300を示す。例えば、GUI300は、
図2のGUI200を参照して上述したように、ユーザが通知202を選択したことに応じて、ユーザデバイス102aのディスプレイ上にオペレーティングシステム104aによって提示され得る。一部の実装形態では、ユーザデバイス102aは、アプリケーション110及び/又はメディアデバイス106を表すグラフィカル要素302を提示することができる。例えば、グラフィカル要素302は、メディアデバイス106を表す記述204及び/又は画像206を含むことができる。選択されたテキスト入力制御がアプリケーション110に関連付けられているとき、グラフィカル要素302は、アプリケーション110のグラフィカル表現304(例えば、画像、アイコン、グラフィック等)を含むことができる。
【0037】
一部の実装形態では、グラフィカル要素302は、ユーザが提供しなければならないテキスト入力を記述するプロンプト306を含むことができる。例えば、プロンプト306は、「パスワードを入力(enter your password)」、又は「検索語を入力(enter search term)」等の指示を含むことができる。一部の実装形態では、グラフィカル要素302は、どのようにユーザデバイス102a上に仮想キーボードを起動させるかを記述するプロンプト命令308を含むことができる。例えば、プロンプト308は、仮想キーボードを起動させるためにグラフィカル要素302へのタップジェスチャ、スワイプジェスチャ、長押しジェスチャ、又は押圧タッチジェスチャを提供するための命令を含むことができる。
【0038】
一部の実装形態では、GUI300は、仮想キーボード310を含むことができる。例えば、仮想キーボード310を起動させるためにグラフィカル要素302をユーザが選択したことに応じて、GUI300上に仮想キーボード310を提示することができる。例えば、プロンプト208によって指定された入力をユーザデバイス102aが受信したことに応じて、仮想キーボード310が提示されてもよい。仮想キーボードは、例えば、文字を選択するための典型的な仮想キーボードレイアウトを含むことができる。一部の実装形態では、GUI300は、グラフィカル要素302なしに提示され得る。例えば、仮想キーボード310は、グラフィカル要素302がないことを除いて、
図3のGUI300と同様に提示され得る。
【0039】
一部の実装形態では、ユーザデバイス102aは、動きを検出したことに応じて仮想キーボード310を提示することができる。例えば、ユーザデバイス102aは、
図2のGUI200上に通知202を提示することができる。ユーザが通知202を見るためにユーザデバイス102aを取り上げたとき、ユーザデバイス102aは、(例えば、内蔵された動きセンサ、加速度計等を用いて)ユーザデバイス102aの動きを検出することができ、オペレーティングシステム104aは、ユーザデバイス102aのディスプレイ上に仮想キーボード310を自動的に提示する。例えば、ユーザデバイス102aの動きを検出したことに応じて、オペレーティングシステム104aは、
図3のGUI300を提示することができる。これにより、ユーザデバイス102aのユーザは、ユーザデバイス102aを取り上げるだけで、仮想キーボード310を起動させることができる。
【0040】
一部の実装形態では、仮想キーボード310は、テキスト制御308を含むことができる。例えば、ユーザが仮想キーボード310上に提示された文字を選択すると、テキスト制御308上には選択された文字が表示され得る。上述のように、文字もまた、仮想キーボード310上で選択されるとメディアデバイス106に送信されるので、ユーザデバイス102a及びメディアデバイス106は共に、ユーザが選択した文字に基づいて同様の文字列を提示することができる。これにより、ユーザは、テキストを入力している間にユーザデバイス102aのディスプレイからユーザの注意を逸らさなくてもよいが、必要な場合にはユーザデバイス102a上で入力されたテキストと、メディアデバイス106が受信したテキストとを比較することができる。
【0041】
一部の実装形態では、仮想キーボード310は、メディアデバイス106のディスプレイ上に提示されたテキスト制御(例えば、テキスト入力ボックス、テキスト入力フィールド等)間でナビゲートするためのグラフィカル要素314及び/又は312を含むことができる。例えば、メディアデバイス106上のオペレーティングシステム108又はアプリケーション110は、複数のテキスト入力制御へのテキスト入力を要求してもよい。オペレーティングシステム108又はアプリケーション110は、例えば、ユーザのユーザ名及びパスワードを要求してもよい。ユーザは、次のテキスト入力制御を選択するためにグラフィカル要素312を選択することができる。ユーザは、以前のテキスト入力制御を選択するためにグラフィカル要素314を選択することができる。
【0042】
一部の実装形態では、仮想キーボード310は、ユーザがテキスト入力を提供し終えたことを示すグラフィカル要素316を含むことができる。例えば、ユーザは、ユーザが現在のテキスト制御への入力をし終えたことを示すグラフィカル要素316を選択することができる。ユーザがグラフィカル要素316を選択したとき、ユーザデバイス102aは、メディアデバイス106上で別の(例えば次の)テキスト入力制御を選択させるメッセージをメディアデバイス106に送信することができる。ユーザがグラフィカル要素316を選択すると、ユーザデバイス102aは、遠隔仮想キーボードサービスを終了させるメッセージをメディアデバイス106に送信することができる。代替的に、ユーザは、遠隔仮想キーボードサービスを終了し、グラフィカル要素302及び仮想キーボード310を解除するためにグラフィカル要素318を選択することができる。しかし、一部の実装形態では、上述のように、メディアデバイス106上での追加のテキスト入力制御の選択及び追加のテキスト入力の提供を可能にするために、サービスの終了を遅延させてもよい。
【0043】
図4は、ユーザデバイス上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェース400を示す。例えば、GUI400は、ユーザが
図2の通知202を選択したことに応じて、ユーザデバイス102aのディスプレイ上にオペレーティングシステム104aによって提示され得る。例えば、GUI300の代替として、各種ユーザデバイス102によって提供される機能(又は機能が提供されないこと)に基づいて、GUI400を提示することができる。例えば、ユーザデバイス102aが押圧タッチ入力機能で構成されている場合、ユーザデバイス102aはGUI300を提示することができる。ユーザデバイス102aが押圧タッチ入力特徴で構成されていない場合、ユーザデバイス102aはGUI400を提示することができる。
【0044】
一部の実装形態では、GUI400は、テキスト入力を提示するためのグラフィカル要素402を含むことができる。例えば、通知202の選択に応じて、グラフィカル要素402を提示することができる。グラフィカル要素402は、通知202に隣接して、又は通知202に当接させて、提示してもよい。グラフィカル要素402は、プロンプト406を含むことができる。例えば、プロンプト406は、選択されたテキスト入力制御にどのようなタイプの情報をユーザが提供するべきかを記述する命令をユーザに提供することができる。グラフィカル要素402は、テキスト入力制御408を含むことができる。例えば、テキスト入力制御408は、上述のように、仮想キーボードを使用してユーザによって提供したテキスト入力を提示することができる。
【0045】
一部の実装形態では、GUI400は、仮想キーボード410を含むことができる。例えば、ユーザが仮想キーボード202を選択したことに応じて、GUI400上にグラフィカル要素410を提示することができる。例えば、グラフィカル要素402と同時に又はほぼ同時に仮想キーボード410を提示することができる。例えば、プロンプト208により指定された入力をユーザデバイス102aが受け取ったことに応じて、仮想キーボード310を提示することができる。仮想キーボード410は、文字を選択するための典型的な仮想キーボードレイアウトを含むことができる。
【0046】
一部の実装形態では、仮想キーボード410は、メディアデバイス106のディスプレイ上に提示されたテキスト制御(例えば、テキスト入力ボックス、テキスト入力フィールド等)間でナビゲートするためのグラフィカル要素412及び/又は414を含むことができる。例えば、メディアデバイス106上のオペレーティングシステム108又はアプリケーション110は、複数のテキスト入力制御へのテキスト入力を要求してもよい。オペレーティングシステム108又はアプリケーション110は、例えば、ユーザのユーザ名及びパスワードを要求してもよい。ユーザは、次のテキスト入力制御を選択するためにグラフィカル要素412を選択することができる。ユーザは、以前のテキスト入力制御を選択するためにグラフィカル要素414を選択することができる。
【0047】
一部の実装形態では、仮想キーボード410は、ユーザがテキスト入力を提供し終えたことを示すグラフィカル要素416を含むことができる。例えば、ユーザは、ユーザが現在のテキスト制御への入力を提供し終えたことを示すグラフィカル要素416を選択することができる。ユーザがグラフィカル要素416を選択したとき、ユーザデバイス102aは、メディアデバイス106上で別の(例えば次の)テキスト入力制御を選択させるメッセージをメディアデバイス106に送信することができる。ユーザがグラフィカル要素416を選択すると、ユーザデバイス102aは、遠隔仮想キーボードサービスを終了させるメッセージをメディアデバイス106に送信することができる。代替的に、ユーザは、遠隔仮想キーボードサービスを終了させ、グラフィカル要素402及び仮想キーボード410を解除するためにグラフィカル要素418を選択することができる。しかし、一部の実装形態では、上述のように、メディアデバイス106上での追加のテキスト入力制御の選択及び追加のテキスト入力の提供を可能にするために、サービスの終了を遅延させてもよい。
例示プロセス
【0048】
図5は、ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なプロセス500のフロー図である。より具体的には、本明細書に記載されるプロセス500は、ユーザデバイスからメディアデバイス(又は任意の他のタイプのコンピューティングデバイス)に遠隔キーボードサービスを提供するための手法である。プロセス500を実装するユーザデバイスは、遠隔キーボードサービスを提供し、ユーザデバイス上のユーザアプリケーション(例えば、遠隔制御アプリケーション104a)を起動させることなく遠隔キーボードを提示することができる。プロセス500は、オペレーティングシステムによって効率的に処理することができ、ユーザデバイス上にインストールされたアプリケーションにかかわらず、かつ、ユーザデバイスがロック状態か又はロック解除状態であるかに関係なく、遠隔キーボードサービスを利用可能にする。
【0049】
ステップ502において、ユーザデバイス102aは、メディアデバイス106から、状態広告メッセージのブロードキャストを受信することができる。例えば、状態広告メッセージは、メディアデバイスを識別することができ、かつ、メディアデバイスの現在の状態を記述するデータを含むことができる。本明細書に記載される実装形態によれば、状態広告メッセージは、メディアデバイス106によって提示されたテキスト入力制御が現在選択されていることを示すデータを含むことができる。代替的に、状態広告メッセージは、メディアデバイス106が遠隔キーボードへの接続を要求していることを示すデータを含むことができる。
【0050】
ステップ504において、ユーザデバイス102aは、メディアデバイス上のテキスト入力制御が現在選択されていることを判定することができる。例えば、ステップ502において受信した状態広告メッセージに基づいて、ユーザデバイス102aは、メディアデバイス106上のテキスト入力制御が現在選択されていることを判定することができる。
【0051】
ステップ506において、ユーザデバイス102aは、遠隔キーボード通知を提示することができる。例えば、メディアデバイス106上のテキスト入力制御が現在選択されていることを判定したことに応じて、ユーザデバイス102aは、ユーザデバイス102a上で仮想キーボードを起動させるようにユーザに促すグラフィカルキーボード通知を提示することができる。例えば、ユーザが、ユーザデバイス102a(例えば、スマートホン)、ユーザデバイス102b(例えば、ラップトップ)、及びユーザデバイス102n(例えば、タブレット)全てをメディアデバイス106のブロードキャスト範囲内に有しているとき、これらのデバイスの各々は、状態広告メッセージに基づいてメディアデバイス上のテキスト入力制御が現在選択されていることを判定し、これらのユーザデバイスの各々の上で仮想キーボードを起動させるようにユーザに促すグラフィカル通知を提示することができる。
【0052】
ステップ508において、ユーザデバイス102aは、ユーザの通知選択を受信することができる。例えば、ユーザデバイス102aは、通知を選択する通知への ユーザ入力(例えば、タップ、スワイプ、長押し、押圧タッチ等)を受信することができる。一部の実装形態では、ユーザが選択した第1のデバイス(例えば、ユーザは、そのデバイス上に仮想キーボードを起動させるためにグラフィカル通知をタッチする可能性がある)は、メディアデバイス106上のテキストフィールドにテキストをユーザが入力するために、選択されたデバイス上に遠隔キーボードを提示する。残りのデバイスは、それらの画面からグラフィカル通知を解除するが、それらのデバイスの中に通知を残したままとする。
【0053】
ステップ510において、ユーザデバイス102aは、メディアデバイス106との接続を確立することができる。上記で論じたように、ユーザが、通知のタップ操作又はクリック操作によって、ユーザデバイス102a上の通知を選択した後、ユーザデバイス102aは、通信ネットワーク112を介したメディアデバイス106と双方向通信セッションを確立することができる。例えば、ネットワーク112を介した通信セッションにより、状態広告メッセージよりも多くのデータを送信することが可能になり得るので、ユーザデバイス102aは、ネットワーク112を介したメディアデバイス106との通信セッションを確立することができる。
【0054】
ステップ512において、ユーザデバイス102aは、メディアデバイス106からアプリケーションデータを受信することができる。例えば、メディアデバイス106との通信セッションを確立した後、メディアデバイス106は、ユーザデバイス102aにアプリケーションデータを送信することができる。例えば、アプリケーションデータは、メディアデバイス106を表す記述204及び/又は画像206等のメディアデバイスデータを含むことができる。アプリケーションデータは、
図3に示すように、アプリケーション110のグラフィカル表現304及び/又はアプリケーション110からのプロンプト306(例えば、「パスワードを入力してください(please enter your password)」)を含むことができる。
【0055】
ステップ514において、ユーザデバイス102aは、ユーザデバイス102aのディスプレイ上に、デバイスデータ、アプリケーションデータ及び/又はキーボードを提示することができる。例えば、デバイスデータ及び/又はアプリケーションデータを受信した後、ユーザデバイス102aは、
図3に示すように、デバイスデータ及び/又はアプリケーションデータを提示することができる。
【0056】
ステップ516において、ユーザデバイス102aは、ユーザデバイス上に提示された仮想キーボードへのユーザ入力を受信することができる。例えば、ユーザ入力は、仮想キーボード上に提示された単一の文字又は他のオブジェクト(テキスト制御間でナビゲートするためのグラフィカル要素312及び/又は314)の選択であり得る。
【0057】
ステップ518において、ユーザデバイス102aは、メディアデバイス106にユーザ入力を送信することができる。例えば、ユーザデバイス102aは、通信ネットワーク112を介して、メディアデバイス106にユーザ入力を送信することができる。例えば、ステップ518の後、プロセス500はステップ516に戻ることができる。ユーザが仮想キーボードへの入力を提供し終えるまで、ステップ516及び518を繰り返すことができる。これにより、メディアデバイス106は、あたかもキーボードがメディアデバイス106に直接接続されている又はその一部であるかのように、各キーボード入力に応答することができる。
【0058】
図6は、ユーザデバイスに遠隔キーボードサービスを要求するための例示的なプロセス600のフロー図である。より具体的には、本明細書に記載されるプロセス600は、遠隔キーボードの必要性を広告するための手法であり、それにより、ユーザは、上述のように、遠隔キーボードを起動させるために最も便利なデバイスを選択できるようになる。
【0059】
ステップ602において、メディアデバイス106は、メディアデバイス106に関連付けられたディスプレイ上にアプリケーション110を提示することができる。一部の実装形態では、メディアデバイス106を、ユーザにメディアアイテムを提示するための多種多様なメディアアプリケーションで構成することができる。ユーザは、遠隔制御デバイスを用いてメディアデバイス106上のアプリケーション110を起動させることができる。アプリケーション110は、ユーザがアプリケーション110を制御することを可能にするグラフィカルユーザインターフェースを提示することができる。例えば、アプリケーション110は、アプリケーション110を通じて利用可能なメディアアイテムをユーザが閲覧、検索及び視聴することを可能にするグラフィカルユーザインターフェースを提示してもよい。
【0060】
ステップ604において、メディアデバイス106は、アプリケーション110から、テキスト入力制御が選択されているというインジケーションを受信することができる。例えば、アプリケーション110と対話している間に、アプリケーション110は、テキスト入力を提供するようにユーザに要求してもよい。アプリケーション110は、ユーザ名及びパスワードを要求してもよい。アプリケーション110は、メディアの検索を実行するための検索パラメータを要求してもよい。いずれの場合も、アプリケーション110はテキスト入力制御を提示することができ、ユーザは、(例えば、遠隔制御デバイス120を用いて)アプリケーション110によって提示されたテキスト入力制御を選択することができる。テキスト入力の制御が選択されると、アプリケーション110は、テキスト入力制御が選択されていることを示す、及び/又はテキスト入力制御によって要求された情報の記述を提供するメッセージを(例えば、上記のAPIを用いて)、メディアデバイス106上のオペレーティングシステム108に送信することができる。一部の実装形態では、メッセージは、アプリケーション110の識別子、及び/又はグラフィカル表現304等の他のアプリケーションのメタデータを含むことができる。
【0061】
ステップ606において、メディアデバイス106は、テキスト入力制御が選択されていることを示す広告メッセージを生成することができる。一部の実装形態では、メディアデバイス106は、アプリケーション110によって提示されたテキスト入力制御が選択されていることを示す状態情報を含む状態広告メッセージを生成することができる。例えば、ステップ604にてアプリケーション110からメッセージを受信したことに応じて、オペレーティングシステム108は、メディアデバイス106上でテキスト入力制御が現在選択されていることを示すデータを含む状態広告メッセージを生成することができる。
【0062】
ステップ608において、メディアデバイス106は、状態広告メッセージをブロードキャストすることができる。一部の実装形態では、メディアデバイス106が、テキスト入力制御が選択されていることを示す状態広告メッセージを生成した後、メディアデバイス106は、状態広告メッセージをブロードキャストすることができる。例えば、特定の受信者デバイスを識別することなく、広告メッセージをブロードキャストすることができる。これにより、メディアデバイス106のブロードキャスト範囲内の全てのユーザデバイスが、状態広告メッセージを受信し得る。
【0063】
ステップ610において、メディアデバイス106は、ユーザデバイスがメディアデバイスに遠隔キーボードを提供することを示すメッセージを受信することができる。例えば、メディアデバイス106のブロードキャスト範囲内にある全てのユーザデバイス102が、メディアデバイス106からメディアデバイス状態広告ブロードキャストを受信した後に、メディアデバイス106は、ユーザデバイス102aがメディアデバイス106に遠隔キーボードを提供することを示すメッセージを受信することができる。例えば、ネットワーク112を介して、メディアデバイス106にメッセージを送信することができる。メッセージは、メディアデバイス106とユーザデバイス102aとが、テキスト入力制御に関連するデータを交換することができるように、メディアデバイス106とユーザデバイス102aとの間で双方向通信セッションを開始することができる。
【0064】
ステップ612において、メディアデバイス106は、アプリケーションデータをユーザデバイス102aに送信することができる。例えば、アプリケーションデータは、記述204及び/又は画像206等、メディアデバイス(例えば、メディアデバイス106)を表すデバイスデータを含んでもよい。アプリケーションデータは、
図3に示すように、アプリケーション110のグラフィカル表現304及び/又はアプリケーション110からのプロンプト306(例えば、「パスワードを入力してください(please enter your password)」)を含むことができる。ステップ604において上述したように、オペレーティングシステム108によって、アプリケーション110からアプリケーションデータを受信することができる。
【0065】
ステップ614において、メディアデバイス106は、ユーザデバイス102aからユーザのキーボード入力を受信することができる。例えば、ユーザデバイス102aが、ユーザデバイス102a上に提示された遠隔キーボード(例えば、キーボード310、キーボード410)上で文字及び/又は他のオブジェクトを選択するユーザ入力を受信すると、ユーザデバイス102aは、ユーザ入力(例えば、選択された文字又は他のオブジェクト)をメディアデバイス106に送信することができる。
【0066】
ステップ616において、メディアデバイス106は、ユーザのキーボード入力をアプリケーション110に送信することができる。例えば、ユーザデバイス102aからユーザのキーボード入力を受信した後、オペレーティングシステム108は、アプリケーション110にキーボード入力を送信することができる。次いで、アプリケーション110は、選択されたテキスト制御の目的に応じた動作を実行することができる。例えば、現在選択されているテキスト制御がユーザ名及び/又はパスワード入力を受信するように構成されている場合、アプリケーション110は、キーボード入力を処理して、入力されたユーザ名及び/又はパスワードがそのユーザについて正しいかどうかを判定することができる。現在選択されているテキスト制御が検索パラメータを受信するように構成されている場合、アプリケーション110は、ユーザが各文字を入力した後に検索を実行することによって、キーボード入力を処理することができる。
【0067】
メディアデバイス106は、各キーボード入力(例えば、文字選択、オブジェクト選択等)を受信し、入力を受信すると処理するので、プロセス600は、次のキーボード入力を受信するためにステップ614に戻り、次のキーボード入力を処理するためにステップ616に戻ることができる。よって、プロセス600は、選択されたテキスト制御への入力をユーザが提供し終えるまで、ステップ614及び616を繰り返すことができる。
【0068】
また、プロセス600は、アプリケーション110に対するテキスト入力を受信することについて説明しているが、プロセス600は、オペレーティングシステム108に対するテキスト入力を受信するためにも同様に実装可能である。例えば、プロセス600において、オペレーティングシステム108のための遠隔キーボードサービスを取得し、オペレーティングシステム108によって提示されたテキスト入力制御に対するテキスト入力を受信するために、アプリケーション110をオペレーティングシステム108に入替可能である。
グラフィカルユーザインターフェース
【0069】
上記の本開示は、様々な機能、処理、又はワークフローを実装するための様々なグラフィカルユーザインターフェース(GUI)を説明している。これらのGUIは、ラップトップコンピュータ、デスクトップコンピュータ、コンピュータ端末、テレビシステム、タブレットコンピュータ、電子書籍リーダー、及びスマートホンを含むが、これらに限定されることはない、様々な電子デバイスに提示され得る。これらの電子デバイスのうちの1つ以上は、タッチ感知面を備えてもよい。タッチ感知面は、各入力点の圧力、程度、又は位置に関連する処理データを含む、複数の同時入力点を処理することができる。このような処理は、ピンチ操作及びスワイプ操作等の、複数の指を用いたジェスチャを容易にすることができる。
【0070】
本開示が、GUI内のユーザインターフェース要素を「選択する」又は「選択している」ことについて言及する場合、これらの用語は、ユーザインターフェース要素上をマウス若しくは他の入力デバイスでクリック若しくは「ホバリング」する、又はユーザインターフェース要素上を1つ以上の指若しくはスタイラスでタッチ、タップ、若しくはジェスチャすることを含むものと理解される。ユーザインターフェース要素は、仮想ボタン、メニュー、セレクタ、スイッチ、スライダ、スクラバ、ノブ、サムネイル、リンク、アイコン、ラジオボタン、チェックボックス、及びユーザからの入力を受信する、又はユーザにフィードバックを提供するための、任意の他のメカニズムであってもよい。
プライバシー
【0071】
本開示は、本技術において、そのような個人情報データの使用を、ユーザの利益のために使用することができる点を認識するものである。例えば、よりユーザの興味を引く対象コンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。
【0072】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び/又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共用又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセス権を有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるであろう。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【0073】
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態をも想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合において、本技術は、ユーザが、サービスの登録の間、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能とするように構成することができる。別の実施例では、ユーザは、対象コンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置ゾーン情報の転送は許可することを選択してもよい。
例示的なシステムアーキテクチャ
【0074】
図7は、
図1〜
図6に示す機能及びプロセスを実装可能な例示的なコンピューティングデバイス700のブロック図である。コンピューティングデバイス700は、メモリインターフェース702、1つ以上のデータプロセッサ、画像プロセッサ及び/又は中央処理装置704、並びに周辺機器インターフェース706を含むことができる。メモリインターフェース702、1つ以上のプロセッサ704、及び/又は周辺機器インターフェース706を別個の構成要素とすることもできるし、又は1つ以上の集積回路内に統合することもできる。コンピューティングデバイス700の各種の構成要素は、1つ以上の通信バス又は信号線路に結合できる。
【0075】
センサ、デバイス、及びサブシステムは、周辺機器インターフェース706と結合することにより、多機能性を容易にすることができる。例えば、動きセンサ710、光センサ712、及び近接センサ714を周辺機器インターフェース706に結合することによって、方向、照明、及び近接機能を容易にできる。全地球航法衛星システム(global navigation satellite system:GNSS)(例えば、GPS受信器)、温度センサ、生体センサ、磁気計、又は他の検知デバイス等、他のセンサ716もまた、周辺機器インターフェース706に結合することにより、関連する機能性を容易にすることができる。
【0076】
カメラサブシステム720及び光学センサ722(例えば、電荷結合素子(CCD)又は相捕型金属酸化膜半導体(CMOS)光学センサ)を利用して、写真及びビデオクリップの記録等のカメラ機能を容易にすることができる。カメラサブシステム720及び光学センサ722を使用して、例えば顔認識分析によるユーザの認証に使用される、ユーザの画像の収集ができる。
【0077】
1つ以上の無線通信サブシステム724を通じて、通信機能を容易にすることができ、それらのサブシステムとしては、無線受信器及び送信器、並びに/あるいは光(例えば、赤外線)受信器及び送信器を挙げることができる。通信サブシステム724の具体的な設計及び実装は、このコンピューティングデバイス700が動作することを目的とした通信ネットワーク(単数又は複数)に依存し得る。例えば、コンピューティングデバイス700は、GSMネットワーク、GPRSネットワーク、EDGEネットワーク、Wi−Fi若しくはWiMaxネットワーク、及びBluetoothネットワーク上で動作するように設計された通信サブシステム724を含むことができる。特に、無線通信サブシステム724は、このデバイス100を、他の無線デバイスのための基地局として構成できるようなホスティングプロトコルを含むことができる。
【0078】
オーディオサブシステム726をスピーカー728及びマイクロホン730に結合することにより、話者認識機能、ボイス複製機能、デジタル録音機能、及びテレフォニー機能等のボイス対応機能を容易にできる。オーディオサブシステム726は、例えば、音声コマンド、声紋認識及び音声認証の処理を容易にするように構成することができる。
【0079】
I/Oサブシステム740は、タッチ面コントローラ742及び/又は他の入力コントローラ(単数又は複数)744を含むことができる。タッチ面コントローラ742は、タッチ面746に結合することができる。タッチ面746及びタッチ面コントローラ742は、例えば、複数のタッチ感度技術のうちのいずれかを使用して、接触及び移動を検出することも、又は接触及び移動の中断を検出することもできる。タッチ感度技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術に加えて、タッチ面746との1つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。
【0080】
他の入力コントローラ(単数又は複数)744は、1つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、USBポート、及び/又はスタイラス等のポインタデバイス等、他の入力/制御デバイス748に結合することができる。1つ以上のボタン(図示せず)としては、スピーカー728及び/又はマイクロホン730のボリューム制御用の上/下ボタンを含むことができる。
【0081】
一実装形態では、ボタンを第1の持続時間押すことにより、タッチ面746のロックを解除することができ、ボタンを第1の持続時間よりも長い第2の持続時間押すことにより、コンピューティングデバイス700への電源をオン/オフすることができる。ボタンを第3の持続時間押すことにより、ボイス制御、すなわちボイスコマンド、ユーザがマイクロホン730に向かって話したコマンドをデバイスに実行させるようにするモジュールをアクティブにすることができる。ユーザは、1つ以上のボタンの機能性をカスタマイズすることができる。また、タッチ面746を使用して、例えば、仮想ボタン若しくはソフトボタン、及び/又はキーボードを実装することもできる。
【0082】
一部の実装形態では、このコンピューティングデバイス700は、MP3ファイル、AACファイル、及びMPEGファイル等の、記録されたオーディオファイル及び/又はビデオファイルを提示することができる。一部の実装形態では、このコンピューティングデバイス700は、iPod(登録商標)等のMP3プレーヤの機能性を含み得る。したがって、コンピューティングデバイス700は、iPodと互換性のある36ピンコネクタを含むことができる。また、他の入出力及び制御デバイスも使用できる。
【0083】
メモリインターフェース702は、メモリ750に結合することができる。メモリ750としては、1つ以上の磁気ディスクストレージデバイス、1つ以上の光学ストレージデバイス、及び/若しくはフラッシュメモリ(例えば、NAND、NOR)等、高速ランダムアクセスメモリ並びに/又は不揮発性メモリを挙げることができる。メモリ750には、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWSのようなオペレーティングシステム752、又はVxWorksのような組み込みオペレーティングシステムを格納できる。
【0084】
オペレーティングシステム752は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを遂行するための命令を含むことができる。一部の実装形態では、オペレーティングシステム752をカーネル(例えば、UNIXカーネル)とすることができる。一部の実装形態では、オペレーティングシステム752は、音声認証を実行するための命令を含むことができる。例えば、オペレーティングシステム752は、
図1〜
図6を参照して記載された遠隔キーボードの機能を実装することができる。
【0085】
メモリ750はまた、1つ以上の追加デバイス、1つ以上のコンピュータ、及び/又は1つ以上のサーバとの通信を容易にするための通信命令754をも格納できる。メモリ750は、グラフィカルユーザインターフェース処理を容易にするためのグラフィカルユーザインターフェース命令756、センサ関連の処理及び機能を容易にするためのセンサ処理命令758、電話関連の処理及び機能を用意にするための電話命令760、電子メッセージング関連の処理及び機能を容易にするための電子メッセージング命令762、ウェブ閲覧関連の処理及び機能を容易にするためのウェブ閲覧命令764、メディア処理関連の処理及び機能を容易にするためのメディア処理命令766、GNSS及びナビゲーション関連のプロセス並びに命令を容易にするためのGNSS/ナビゲーション命令768、及び/又はカメラ関連の処理及び機能を容易にするためのカメラ命令770を含むことができる。
【0086】
メモリ750は、
図1〜
図6を参照して記載された遠隔キーボードの処理及び機能のような、他の処理及び機能を容易にするための他のソフトウェア命令772を格納することができる。
【0087】
メモリ750はまた、ウェブビデオ関連の処理及び機能を容易にするためのウェブビデオ命令、及び/又はウェブショッピング関連の処理及び機能を容易にするためのウェブショッピング命令等、他のソフトウェア命令774を格納することができる。一部の実装形態では、メディア処理命令766は、オーディオ処理関連の処理及び機能を容易にするためのオーディオ処理命令と、ビデオ処理関連の処理及び機能を容易にするためのビデオ処理命令とに、それぞれ分割することができる。
【0088】
上記の識別された命令及びアプリケーションのそれぞれは、上記1つ以上の機能を実行するための命令セットに対応し得る。これらの命令は、別個のソフトウェアプログラム、手順、又はモジュールとして実装する必要がない。メモリ750に追加の命令を含めてもよいし、又は含まれている命令を減らしてもよい。更にまた、コンピューティングデバイス700の様々な機能は、1つ以上の信号処理及び/又は特定用途向け集積回路を含むハードウェア及び/又はソフトウェアに実装できる。