(57)【要約】  本明細書に記載されるシステムは、アプリケーションを起動させる又はコンピューティングデバイスをロック解除することを必要とせずに、コンピューティングデバイス上のメディアデバイスのための遠隔キーボードサービスを提供する。コンピューティングデバイスは、他のデバイス上のテキスト入力フィールドが選択されていることを示すメッセージを受信し、選択されたテキスト入力フィールドにテキスト入力を提供するためにコンピューティングデバイス上で仮想キーボードを起動させるようにユーザに促す通知を提示することができる。コンピューティングデバイスは、通知を選択するユーザ入力を受信し、他のデバイスにテキスト入力を提供するための仮想キーボードを提示することができる。コンピューティングデバイスは、ユーザから、文字を選択するキーボード入力を受信し、その文字を他のデバイスに送信することができる。次いで、他のデバイスは、選択されたテキスト入力フィールドへのテキスト入力として、その文字を使用することができる。
2019526094.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ユーザデバイスによって、メディアデバイスから状態広告メッセージのブロードキャストを受信することと、
前記状態広告メッセージに基づいて、前記ユーザデバイスによって、前記メディアデバイス上のテキスト入力制御が現在選択されていることを判定することと、
前記メディアデバイス上の前記テキスト入力制御が現在選択されていると判定したことに応じて、前記ユーザデバイスによって、前記ユーザデバイス上に仮想キーボードを起動させるようにユーザに促す第１のグラフィカル通知を提示することと、
前記ユーザデバイスによって、前記ユーザデバイス上に前記仮想キーボードを起動させる第１のユーザ入力を受信することと、
前記ユーザデバイスのディスプレイ上に、前記メディアデバイス上で選択された前記テキスト入力制御に入力を提供するために前記仮想キーボードを提示することと、を含み、
前記仮想キーボードが、前記第１のユーザデバイス 上のいかなるユーザアプリケーションとも別個の、前記ユーザデバイスのソフトウェアシステムによって提供されることを特徴とする方法。
【請求項２】
前記ユーザデバイス上における前記第１のグラフィカル通知の第１の選択に応じて、前記ユーザデバイスによって、前記メディアデバイスとの接続を確立することと、
前記ユーザデバイスによって、前記仮想キーボードへの１つ以上の文字を選択する第２のユーザ入力を受信することと、
前記第１のユーザデバイスによって、前記第２のユーザ入力を前記メディアデバイスに送信することと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザデバイスのディスプレイ上に前記仮想キーボードが提示されるとき、前記ユーザデバイスはロックされることを特徴とする請求項１に記載の方法。
【請求項４】
前記ユーザデバイスによって、前記現在選択されている制御の目的を記述した情報を受信することと、
前記仮想キーボードの前記提示と同時に前記制御情報を提示することと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のグラフィカル通知は、前記メディアデバイスからのアプリケーションデータ、及び、前記仮想キーボードをアクティブ化する命令を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記仮想キーボードを解除するユーザ入力を受信することと、
前記仮想キーボードの前記解除を一定の時間期間遅延させることと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
システムであって、
１つ以上のプロセッサと、
命令の１つ以上のシーケンスを含む非一時的コンピュータ可読媒体とを有し、前記命令が、１つ以上のプロセッサ により実行される際に、
ユーザデバイスによって、メディアデバイスから状態広告メッセージのブロードキャストを受信させ、
前記状態広告メッセージに基づいて、前記ユーザデバイスによって、前記メディアデバイス上のテキスト入力制御が現在選択されていることを判定させ、
前記メディアデバイス上の前記テキスト入力制御が現在選択されていると判定したことに応じて、前記ユーザデバイスによって、前記ユーザデバイス上に仮想キーボードを起動させるようにユーザに促す第１のグラフィカル通知を提示させ、
前記ユーザデバイスによって、前記ユーザデバイス上に前記仮想キーボードを起動させる第１のユーザ入力を受信させ、
前記ユーザデバイスのディスプレイ上に、前記メディアデバイス上で選択された前記テキスト入力制御に入力を提供するために前記仮想キーボードを提示させ、
前記仮想キーボードは、前記第１のユーザデバイス 上のいかなるユーザアプリケーションとも別個の、前記ユーザデバイスのソフトウェアシステムによって提供される
ことを特徴とするシステム。
【請求項８】
前記命令は、
前記ユーザデバイス上における前記第１のグラフィカル通知の第１の選択に応じて、前記ユーザデバイスによって、前記メディアデバイスとの接続を確立させ、
前記ユーザデバイスによって、前記仮想キーボードへの１つ以上の文字を選択する第２のユーザ入力を受信させ、
前記第１のユーザデバイスによって、前記第２のユーザ入力を前記メディアデバイスに送信させる、
ことを特徴とする請求項７に記載のシステム。
【請求項９】
前記ユーザデバイスのディスプレイ上に前記仮想キーボードが提示されるとき、前記ユーザデバイスはロックされることを特徴とする請求項７に記載のシステム。
【請求項１０】
前記命令は、
前記ユーザデバイスによって、前記現在選択されている制御の目的を記述した情報を受信させ、
前記仮想キーボードの前記提示と同時に前記制御情報 を提示させる、
ことを特徴とする請求項７に記載のシステム。
【請求項１１】
前記第１のグラフィカル通知は、前記メディアデバイスからのアプリケーションデータ、及び、前記仮想キーボードをアクティブ化する命令を含む
ことを特徴とする請求項７に記載のシステム。
【請求項１２】
前記命令は、
前記仮想キーボードを解除するユーザ入力を受信させ、
前記仮想キーボードの前記解除を一定の時間期間遅延させる、
ことを特徴とする請求項７に記載のシステム。
【請求項１３】
方法であって、
メディアデバイスによって、前記メディアデバイス上のディスプレイ上に、アプリケーションのための現在選択されているテキスト入力制御を提示することと、
前記メディアデバイスによって、前記アプリケーションから、前記テキスト入力制御が現在選択されているというインジケーションを受信することと、
前記メディアデバイスによって、前記テキスト入力制御が現在選択されていることを示す第１の状態広告メッセージを生成することと、
前記メディアデバイスによって、前記第１の状態広告メッセージをブロードキャストすることと、
前記メディアデバイスによって、ユーザデバイスが仮想キーボードを提供することを示す、前記第１の状態広告メッセージに対する応答を受信することと、
を含むことを特徴とする方法。
【請求項１４】
前記ユーザデバイスが仮想キーボードを提供することを示す前記第１の状態広告メッセージに対する応答を受信したことに応じて、前記メディアデバイスが遠隔仮想キーボードに接続されていることを示す第２の状態広告メッセージをブロードキャストすること、
を更に含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ユーザデバイスが仮想キーボードを提供することを示す前記第１の状態広告メッセージに対する応答を受信したことに応じて、前記ユーザデバイスとの双方向通信セッションを確立することと、
前記アプリケーション及び前記テキスト入力制御に対応するメタデータを前記ユーザデバイスに送信することと、
を更に含むことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記メディアデバイスによって、前記ユーザデバイスからテキスト入力を受信することと、
ここで、前記テキスト入力は、前記ユーザデバイス上に提示された仮想キーボードへのユーザ入力に対応する、
前記テキスト入力に基づく動作を実行することと、
を更に含むことを特徴とする請求項１３に記載の方法。
【請求項１７】
システムであって、
１つ以上のプロセッサと、
命令の１つ以上のシーケンスを含む非一時的コンピュータ可読媒体とを有し、前記命令が、前記１つ以上のプロセッサにより実行される際に、
メディアデバイスによって、前記メディアデバイスのディスプレイ上に、アプリケーションのための現在選択されているテキスト入力制御を提示させ、
前記メディアデバイスによって、前記アプリケーションから、前記テキスト入力制御が現在選択されているというインジケーションを受信させ、
前記メディアデバイスによって、前記テキスト入力制御が現在選択されていることを示す第１の状態広告メッセージを生成させ、
前記メディアデバイスによって、前記第１の状態広告メッセージをブロードキャストさせ、
前記メディアデバイスによって、ユーザデバイスが仮想キーボードを提供することを示す、前記第１の状態広告メッセージに対する応答を受信させる、
ことを特徴とするシステム。
【請求項１８】
前記命令は、
前記ユーザデバイスが仮想キーボードを提供することを示す、前記第１の状態広告メッセージに対する応答を受信したことに応じて、前記メディアデバイスが遠隔仮想キーボードに接続されていることを示す第２の状態広告メッセージをブロードキャストさせる、
ことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記命令は、
前記ユーザデバイスが仮想キーボードを提供することを示す、前記第１の状態広告メッセージに対する応答を受信したことに応じて、前記ユーザデバイスとの双方向通信セッションを確立させ、
前記アプリケーション及び前記テキスト入力制御に対応するメタデータを前記ユーザデバイスに送信させる、
ことを特徴とする請求項１７に記載のシステム。
【請求項２０】
前記命令は、
前記メディアデバイスによって、前記ユーザデバイスからテキスト入力を受信させ、
ここで、前記テキスト入力は、前記ユーザデバイス上に提示された仮想キーボードへのユーザ入力に対応する、
前記テキスト入力に基づく動作を実行させる、
ことを特徴とする請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１６年６月１０日に出願された米国特許仮出願第６２／３４８，７７１号、及び、２０１６年９月２１日に出願された米国特許出願１５／２７２，０１０号に対する優先権を主張するものであり、参照によりその内容全体が本明細書に組み入れられる。
【０００２】
本開示は、全般的に、異なるデバイス間でサービスを連携させることに関する。
【背景技術】
【０００３】
ストリーミングメディアデバイスは、ますます普及してきている。ストリーミングメディアデバイスは、ユーザがメディアコンテンツをオンデマンドで閲覧、検索及び視聴することを可能にする。しかし、これらのストリーミングメディアデバイスのための入力メカニズムは、しばしば、検索クエリをテキスト入力制御（例えば、テキスト入力ボックス）に入力するときに個々のテキスト文字を捜して選択することをユーザに要求する、キーボードがない単純な遠隔制御である。これにより、これらのストリーミングメディアデバイスにテキスト入力を提供するプロセスは、ユーザにとって煩わしいことがある。
【０００４】
いくつかのストリーミングメディアデバイスは、ユーザのハンドヘルドデバイス（例えば、スマートホン、タブレットコンピュータ等）上の仮想キーボードを使用してユーザがテキスト入力を行うことができる、対応するアプリケーションを有する。しかし、ユーザは、ストリーミングメディアデバイスにテキスト入力を提供するために仮想キーボードが使用できるようになる前に、アプリケーションをインストールして起動させなければならない。
【発明の概要】
【０００５】
本明細書に記載されるシステムは、アプリケーションを起動すること又はコンピューティングデバイスをロック解除することを必要とせずに、別個のコンピューティングデバイス上のメディアデバイスのための遠隔キーボードサービスを提供する。コンピューティングデバイスは、他のデバイス上のテキスト入力フィールドが選択されていることを示すメッセージを受信し、選択されたテキスト入力フィールドにテキスト入力を提供するためにコンピューティングデバイス上で仮想キーボードを起動するようにユーザに促す通知を受信することができる。コンピューティングデバイスは、通知を選択するユーザ入力を受信し、他のデバイスにテキスト入力を提供するための仮想キーボードを提示することができる。コンピューティングデバイスは、ユーザから、文字を選択するキーボード入力を受信し、その文字を他のデバイスに送信することができる。次いで、他のデバイスは、選択されたテキスト入力フィールドへのテキスト入力として、その文字を使用することができる。
【０００６】
特定の実装形態は、少なくとも以下の利点を提供する。特定のアプリケーションを起動すること必要とせずに、ユーザデバイスによって、遠隔仮想キーボードを提供することができる。ユーザのデバイスがロックされているときであっても、遠隔仮想キーボードを提供することができる。全てのユーザデバイスにキーボードの必要性を周知させるので、ユーザは、ユーザにとって最も便利なユーザデバイスを選択することができる。
【０００７】
１つ以上の実装形態の詳細は、添付の図面及び下記の説明に記載されている。その他の特徴、態様、及び潜在的な利点は、説明及び図面から、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なシステム１００のブロック図である。
【０００９】
【図２】ユーザデバイス上に遠隔キーボード通知を提示するための例示的なグラフィカルユーザインターフェースを示す図である。
【００１０】
【図３】ユーザデバイス上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェースを示す図である。
【００１１】
【図４】ユーザデバイス上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェースを示す図である。
【００１２】
【図５】ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なプロセスのフロー図である。
【００１３】
【図６】ユーザデバイスに遠隔キーボードサービスを要求するための例示的なプロセスのフロー図である。
【００１４】
【図７】図１〜図６の機能及びプロセスを実装可能な、例示的なコンピューティングデバイスのブロック図である。
【００１５】
それぞれの図面において類似の参照記号は、類似の要素を示す。
【発明を実施するための形態】
【００１６】
概説
ユーザデバイス上に遠隔キーボードサービスを提供するための方法、装置、及びコンピュータプログラムの例を、以下に開示する。以下の説明において、説明を提供することを目的として、本発明の実施形態の完全な理解を提供するために、多くの具体的な詳細を記述する。しかし、本発明の実施形態は、これらの具体的な詳細を伴わずに、又は等価な構成と共に実践できる点は、当業者には明らかであろう。その他の場合において、本発明の実施形態を不必要に不明瞭としないために、周知の構造体及びデバイスはブロック図の形態で示されている。
【００１７】
図１は、ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なシステム１００のブロック図である。一部の実装形態では、システム１００は、ユーザデバイス１０２（例えば、１０２ａ、１０２ｂ、．．．１０２ｎ）を含むことができる。例えば、ユーザデバイス１０２ａは、スマートホン、タブレットコンピュータ、テレビ、デスクトップコンピュータ、ラップトップコンピュータ、家庭用デバイス、電子書籍デバイス、ゲームデバイス、スマートウォッチ、スマートグラス及び／又は他のモバイルデバイス若しくはウェアラブルデバイス、これらのデバイスのアクセサリ及び周辺機器、あるいはそれらの任意の組み合わせ等の、コンピューティングデバイスであり得る。
【００１８】
一部の実装形態では、ユーザデバイス１０２（例えば、ユーザデバイス１０２ａ、ユーザデバイス１０２ｂ、．．．ユーザデバイス１０２ｎ）は、様々なサービス及び機能を提供するそれぞれのオペレーティングシステム１０４と共に構成することができる。例えば、オペレーティングシステム１０４は、ユーザデバイス１０２の近傍にある異なるデバイスから、状態広告メッセージ（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）パケット、ＢｌｕｅｔｏｏｔｈＬＥパケット等）を受信して復号するように構成することができる。状態広告メッセージは、異なるサービスの利用可能性、異なるデバイス間の処理の連携に必要なデータ、並びに／あるいは他のデバイスへの情報及び／又はサービスの要求を含む、他のデバイスの現在の状態を記述する情報を含むことができる。例えば、ユーザデバイス１０２ａは、ユーザデバイス１０２ｂ及び／又は１０２ｎから、これらのデバイスの現在の状態を記述した状態広告メッセージを受信することができる。
【００１９】
一部の実装形態では、ユーザデバイス１０２は、メディアデバイス１０６から状態広告メッセージを受信することができる。例えば、メディアデバイス１０６は、ストリーミングメディアプレーヤ、セットトップボックス、スマートテレビ、ラップトップコンピュータ、又は他のコンピューティングデバイス等のコンピューティングデバイスであり得る。ユーザデバイス１０２のユーザは、再生すべきメディアアイテム及び／又は視聴すべき他のコンテンツを閲覧及び検索するために、メディアデバイス１０６と対話することができる。例えば、メディアデバイス１０６は、メディアデバイス１０６に接続されたディスプレイ（例えば、テレビ、コンピュータのモニタ等）上に、メディアデバイス１０６がメディアデバイス１０６のディスプレイ上に提示するためにメディアアイテム（例えば、映画、ウェブサイト、画像、写真等）をユーザが閲覧、検索及び選択することを可能にするグラフィカルユーザインターフェースを提示することができる。
【００２０】
一部の実装形態では、メディアデバイス１０６は、ユーザにテキスト入力を要求することがある。例えば、メディアデバイス１０６は、メディアアイテムを検索するときに、ユーザにテキスト入力を要求してもよい。メディアデバイス１０６は、ユーザのログインクレデンシャルを要求するサブスクリプションサービスにログインするときに、テキスト入力をユーザに要求することがある。メディアデバイス１０６のオペレーティングシステム１０８は、時として、何らかのテキスト入力を要求する。例えば、メディアデバイス１０６は、ネットワーク構成入力、ログインクレデンシャル等を受信するためのプロンプト及びテキスト入力制御をメディアデバイス１０６のディスプレイ上に提示することができる。アプリケーション１１０（例えば、メディアコンテンツプロバイダソフトウェアアプリケーション、ビデオアプリケーション、音楽アプリケーション、ゲームアプリケーション、天気アプリケーション等）は、時として、ユーザからのテキスト入力を受信するためのプロンプト及びテキスト入力制御を提示する。例えば、アプリケーション１１０は、検索クエリを定義するテキストをユーザが入力することを可能にするメディアアイテム検索機能を提供してもよい。
【００２１】
一部の実装形態では、ユーザは、遠隔制御デバイス１２０を使用してテキスト入力を提供することができる。例えば、メディアデバイス１０６は、メディアデバイス１０６上でカーソルを移動させ、ディスプレイ上のアイテムを選択するための少数の方向ボタン及び選択ボタンを備える遠隔制御デバイス１２０と共に販売されている、又はそれと共に作用してもよい。時として、遠隔制御デバイス１２０はタッチインターフェースを有してもよく、遠隔制御デバイス１２０は、メディアデバイス１０６上でカーソルを移動させ、ディスプレイ上のアイテムを選択するためのタッチ入力ジェスチャ（例えば、スワイプアップ、スワイプダウン、スワイプレフト、スワイプライト、タップ等）を受信することができる。遠隔制御デバイス１２０を用いてメディアデバイス１０６にテキスト入力を提供するときに、典型的には、ユーザは、適切な文字列が構築されるまで、遠隔制御デバイス１２０を使用して、グラフィカルユーザインターフェース上に提示された文字の配列上でカーソルを移動させて１文字ずつ選択していかなければならない。このプロセスは、遅く、ユーザにとって煩わしいことがあり、一般的に、ユーザがメディアデバイス１０６に再生して欲しいメディアアイテムを見つけるために、この雨だれプロセス（hunt-and-peck process）をユーザが繰り返し行わなければならない場合に、ユーザを苛々させる結果となる。
【００２２】
遠隔制御デバイス１２０を用いてテキストを入力することに関する上記の課題を解決するために、ユーザデバイス１０２は、メディアデバイス１０６と遠隔対話するための遠隔制御アプリケーション１０４（例えば、１０４ａ、１０４ｂ） と共に構成することができる。例えば、遠隔制御アプリケーションは、ネットワーク１１２を介してメディアデバイス１０６を制御することができる。ネットワーク１１２は、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、ローカルＷｉ−Ｆｉ（登録商標）ネットワーク、アドホックピアツーピアネットワーク等とすることができる。ネットワーク１１２は、インターネットプロトコル、Ｂｌｕｅｔｏｏｔｈ、Ｂｌｕｅｔｏｏｔｈローエナジー（Low Energy）、又は任意の他のネットワーキングプロトコルを使用して実装することができる。
【００２３】
一部の実装形態では、遠隔制御アプリケーション１０４は、遠隔制御デバイス１２０と同様の機能性を提供するように構成することができる。例えば、遠隔制御アプリケーション１０４は、ユーザデバイス１０２のディスプレイ上に、カーソルを移動させるための方向制御、及びメディアデバイス１０６により提示されたアイテムを選択するための選択制御を提示することができる。しかし、遠隔制御アプリケーション１０４はまた、メディアデバイス１０６にテキスト入力を提供するためにユーザが使用できる仮想キーボードを提供することもできる。例えば、遠隔制御アプリケーション１０４ａによって、仮想キーボードをユーザデバイス１０２ａのタッチ感知ディスプレイ上に提示することができ、ユーザは、仮想キーボード上でタイプ入力して、文字を選択し、要求されたテキスト入力に対応する文字列を生成することができる。次いで、ユーザデバイス１０２ａは、ネットワーク１１２を介して、メディアデバイス１０６にテキスト入力を送信することができる。次いで、メディアデバイス１０５は、検索を実行する、オペレーティングシステム１０８を構成する、アプリケーション１１０を構成する、又は任意の他の目的のために、テキスト入力を使用することができる。
【００２４】
遠隔制御アプリケーション１０４が提供した仮想キーボードにテキスト入力を提供することは、遠隔制御デバイス１２０を使用してテキストを入力することに対する改善であるが、依然としてユーザは、仮想キーボードにアクセスして使用することでメディアデバイス１０６にテキスト入力を提供できるようになる前に、ユーザデバイス１０２ａをロック解除して遠隔制御アプリケーション１０４ａを起動させるという負担を強いられる。これにより、一部の実装形態では、ユーザデバイス１０２ａのオペレーティングシステム１０４ａは、メディアデバイス１０６にテキスト入力を提供するための仮想キーボードサービスを提供することができる。例えば、ユーザデバイス１０２ａは、ユーザデバイス１０２ａをロック解除することなく、仮想キーボードサービスを提供してもよい。ユーザデバイス１０２ａは、遠隔制御アプリケーション１０４ａを起動させることなく、仮想キーボードサービスを提供することができる。
【００２５】
一部の実装形態では、メディアデバイス１０６は、ユーザデバイス１０２により提供された遠隔キーボードサービスに接続するための遠隔キーボードサービス要求をブロードキャストすることができる。例えば、遠隔キーボードサービス要求は、メディアデバイス１０６上でテキスト入力制御が選択済みであることを示すデバイス状態広告メッセージ（例えば、その一部）であり得る。例えば、ユーザが（例えば、遠隔制御デバイス１２０を使用して）メディアデバイス１０６と対話しており、テキスト入力フィールドを選択したとき、メディアデバイス１０６は、テキスト入力フィールドが選択されていることを示す状態広告メッセージを生成することができる。例えば、アプリケーション１１０がメディアアイテム検索グラフィカルユーザインターフェースを提示している場合、ユーザは、ユーザが検索クエリを提供できるように、グラフィカルユーザインターフェース上のテキスト入力制御を選択してもよい。テキスト入力制御を選択したことに応じて、アプリケーション１１０はオペレーティングシステム１０８のアプリケーションプログラミングインターフェース（ＡＰＩ：application programming interface）を起動させて、選択されたテキスト入力制御に入力を提供するためのキーボードサポートを要求することができる。
【００２６】
オペレーティングシステム１０８がテキスト入力を必要とする構成グラフィカルユーザインターフェースを提示している場合には、ユーザは、ユーザが適切な構成文字列（例えば、ネットワーク識別子、アカウントクレデンシャル等）を提供できるように、グラフィカルユーザインターフェース上のテキスト入力制御を選択してもよい。テキスト入力制御を選択したことに応じて、オペレーティングシステム１０８はオペレーティングシステム１０８のＡＰＩを起動して、選択されたテキスト入力制御に入力を提供するためのキーボードサポートを要求することができる。キーボードサポートＡＰＩが起動されたときに、オペレーティングシステム１０８は、メディアデバイス１０６上でテキスト入力制御が選択されていることを示すデータを含む状態広告メッセージを生成することができる。例えば、状態広告メッセージは、メディアデバイス１０６の識別子、アプリケーション１１０の識別子、テキスト入力制御が選択されていることを示すデータ（例えば、真／偽）、ユーザによって提供されるテキスト入力制御若しくはテキスト入力を記述するデータ、及び／又はユーザがメディアデバイス１０６に既に提供しているテキスト入力を含むことができる。状態広告メッセージデータは、参照によりその全体が本明細書に組み込まれる米国特許出願整理番号第１５／１７９，６７６号に記載されるような状態広告メッセージスキーマを用いて、状態広告メッセージに符号化され、状態広告メッセージから復号することができる。
【００２７】
一部の実装形態では、メディアデバイス１０６は、生成された状態広告メッセージをブロードキャストすることができる。例えば、メディアデバイス１０６は、Ｂｌｕｅｔｏｏｔｈ、Ｂｌｕｅｔｏｏｔｈローエナジー、ピアツーピアＷｉ−Ｆｉ、又は何らかの他の無線技術等の無線（例えば、ピアツーピア）技術を用いて、生成された状態広告メッセージをブロードキャストすることができる。例えば、特定の受信者デバイスを選択することなく、状態広告メッセージをブロードキャストすることができる。例えば、メディアデバイス１０６が送信する無線信号の範囲内の任意のユーザデバイス（例えば、ユーザデバイス１０２）は、メディアデバイス１０６により生成された広告メッセージを受信及び／又は処理することができる。代替的に、送信デバイスと同一のユーザアカウント（例えば、加入者アカウント、クラウドサービスアカウント等）に関連付けられたユーザデバイスのみが、その送信デバイスからメッセージを受信し、復号することができる。代替的に、送信デバイス及び／又は受信デバイスは、同一のユーザ及び／又は同一のユーザアカウントに関連付けられていなくてもよい。例えば、ユーザデバイス１０２及びメディアデバイス１０６は全て、異なるユーザアカウントに関連付けられていても、又はユーザアカウントに全く関連付けられていなくてもよい。ユーザデバイス１０２及びメディアデバイス１０６は、異なる構成及び／又は異なるオペレーティングシステムを備える、異なる製造業者による、異なるタイプのコンピューティングデバイスとすることができる。
【００２８】
一部の実装形態では、ユーザデバイス１０２は、ブロードキャストされた状態広告メッセージ(state advertisement message;状態アドバタイズメントメッセージ)を受信することができる。例えば、メディアデバイス１０６のブロードキャスト範囲内のユーザデバイス１０２（例えば、ユーザデバイス１０２ａ、ユーザデバイス１０２ｂ、．．．ユーザデバイス１０２ｎ）は、状態広告メッセージを受信することができる。状態広告メッセージを受信したことに応じて、ユーザデバイス１０２は、状態広告メッセージ中の状態データに基づいて、メディアデバイス１０６上のテキスト入力制御が現在選択されていることを判定することができる。ユーザデバイス１０２が、メディアデバイス１０６上でテキスト入力制御が選択されていることを判定したとき、ユーザデバイス１０２上のオペレーティングシステム１０４は、それぞれのデバイス上で、ユーザに仮想キーボードを起動させるように促すグラフィカル通知を提示する。例えば、ユーザが、ユーザデバイス１０２ａ（例えば、スマートホン）、ユーザデバイス１０２ｂ（例えば、ラップトップ）、及びユーザデバイス１０２ｎ（例えば、タブレット）を全てメディアデバイス１０６のブロードキャスト範囲内に有している場合、これらのデバイスは全て、状態広告メッセージに基づいてメディアデバイス１０６上のテキスト入力制御が現在選択されていることを判定し、これらのユーザデバイスが全て、これらのユーザデバイスの各々の上で仮想キーボードを起動させるようにユーザに促すグラフィカル通知を提示することができる。
【００２９】
一部の実装形態では、ユーザデバイス１０２（例えば、ユーザデバイス１０２ａ、ユーザデバイス１０２ｂ、．．．ユーザデバイス１０２ｎ）は、ユーザデバイスの画面がロックされているときであっても、ユーザデバイスの画面上にキーボード通知を提示することができる。例えば、ユーザデバイス１０２は、メディアデバイス１０６からブロードキャストされている状態広告メッセージを受信すると、遠隔キーボード通知を提示することができる。
【００３０】
上記の例を引き続き参照して、ユーザがメディアデバイス１０６のブロードキャスト範囲内にユーザデバイス１０２ａを有していると仮定すると、ユーザデバイス１０２ａは、ユーザデバイス１０２ａのディスプレイ上に遠隔キーボード通知を提示することができる。ユーザが（例えば、通知のタッチ操作、スワイプ操作等によって）ユーザデバイス１０２ａ上の通知を選択した後、ユーザデバイス１０２ａは、通信ネットワーク１１２を介してメディアデバイス１０６との双方向通信セッションを確立することができる。例えば、通信ネットワーク１１２は、データネットワーク、無線ネットワーク、電話ネットワーク、又はそれらの任意の組み合わせ等、各種ネットワークを含み得る。（例えば、状態広告メッセージ中に具現化された）遠隔キーボードサービス要求にユーザデバイス１０２ａが応答した後、メディアデバイス１０６は、メディアデバイス１０６が遠隔キーボードに接続済みであることを示す別の状態広告メッセージをブロードキャストできる。これにより、メディアデバイス１０６が遠隔キーボードに接続済みであることを示す状態広告メッセージを受信したことに応じて、他のユーザデバイス（例えば、ユーザデバイス１０２ｂ、ユーザデバイス１０２ｎ等）は、それらの対応するキーボード通知を解除する（例えば、隠す、ディスプレイから除去する）ことができる。
【００３１】
一部の実装形態では、メディアデバイス１０６は、要求されたテキスト入力を記述する情報をユーザデバイス１０２ａに送信することができる。例えば、ネットワーク１１２を介した双方向通信セッションを確立した後、メディアデバイス１０６のオペレーティングシステム１０８は、遠隔キーボードを介してユーザによって提供されるテキスト入力を記述する情報を、ユーザデバイス１０２ａのオペレーティングシステム１０４ａに送信することができる。例えば、情報は、テキスト入力フィールドについてのプロンプト（例えば、「ユーザ名を入力（Enter user name）」、「パスワードを入力（Enter password）」、「検索クエリを入力（Enter search query）」等）を含んでもよい。情報は、アプリケーション１１０又はオペレーティングシステム１０８の識別情報又はレプリゼンテーションを含むことができる。例えば、情報は、アプリケーション１１０又はオペレーティングシステム１０８の製造業者を表す画像、アイコン又はグラフィックを含むことができる。次いで、オペレーティングシステム１０４ａは、更に以下で説明するように、この情報を使用して、ユーザデバイス１０２ａのディスプレイ上にテキスト入力制御及び／又は仮想キーボードを提示することができる。あるいは、上述のように、ユーザデバイス１０２ａが受信した状態広告メッセージからこの情報を取得することができる。
【００３２】
一部の実装形態では、オペレーティングシステム１０４ａは、仮想キーボード入力をメディアデバイス１０６に送信することができる。例えば、オペレーティングシステム１０４ａは、仮想キーボード上に提示された文字又は他のグラフィカル要素を選択する入力をユーザが提供したときを検出することができる。各入力を検出した後、オペレーティングシステム１０４ａは、選択された文字又はグラフィカル要素を識別するメッセージをオペレーティングシステム１０８に送信することができる。例えば、オペレーティングシステム１０４ａは、オペレーティングシステム１０８及び／又はアプリケーション１１０が（例えば、検索結果を提示すること、テキスト入力制御間で移動すること等によって）各キーボード入力に適切に応答することができるように、各文字又はグラフィカル要素をそれらが選択されたとおりに送信することができる。例えば、オペレーティングシステム１０８は、アプリケーション１１０が、アプリケーション１１０のプログラミングに応じてキーボード入力に応答することができるように、アプリケーション１１０にキーボード入力を送信することができる。一部の実装形態では、ユーザが選択された制御にテキスト入力を提供し終えたことを示す入力をユーザが提供した後に、ユーザデバイス１０２ａによって提供されるキーボードサービスを終了させることができる。例えば、ユーザが仮想キーボード上でグラフィカル要素（例えば、「エンター（enter）」キー、「終了（done）」要素等）を選択したときに、キーボードサービスを終了し、仮想キーボードを解除する、若しくは隠すことができる。
【００３３】
一部の実装形態では、オペレーティングシステム１０４ａは、遠隔仮想キーボードサービスを終了する前に、一定の時間期間待機することができる。例えば、ユーザがメディアデバイス１０６により提示されたテキスト制御への入力を提供し終えた場合であっても、オペレーティングシステム１０４ａは、最後の入力の後、一定の時間期間（例えば、５秒、７秒等）にわたって仮想キーボードを提示し続け、メディアデバイス１０６により提示される追加のテキスト制御への入力をユーザが提供できるようにすることができる。これにより、ユーザは、メディアデバイス１０６が追加のテキスト入力を要求した場合に、仮想キーボードを再び起動させるという負担を負わなくてもよい。
【００３４】
図２は、ユーザデバイス１０２ａ上に遠隔キーボード通知２０２を提示するための例示的なグラフィカルユーザインターフェース２００を示す。例えば、通知２０２は、上述したように、メディアデバイス１０６上でテキスト入力制御が選択されていることを示す状態広告メッセージを受信したことに応じてユーザデバイス１０２ａのディスプレイ上にオペレーティングシステム１０４ａにより提示された、グラフィカル要素であり得る。通知２０２は、状態広告メッセージを受信する各ユーザデバイス１０２上に提示され得る。通知２０２は、例えば、メディアデバイス１０６及び／又はアプリケーション１１０を表す記述２０４及び／又は画像２０６を含むことができる。通知２０２は、どのようにユーザデバイス１０２ａ上に仮想キーボードを起動させるかを記述するプロンプト２０８を含むことができる。例えば、ユーザは、通知２０２を選択（例えば、長押し、押圧タッチ、タップ、スワイプ等）することによって仮想キーボードを起動させることができる。
【００３５】
一部の実装形態では、ユーザデバイス１０２（例えば、ユーザデバイス１０２ａ、ユーザデバイス１０２ｂ、．．．ユーザデバイス１０２ｎ）は、ユーザデバイス１０２ａがロックされた時にユーザデバイス１０２ａのＧＵＩ２００上にキーボード通知２０２を提示することができる。例えば、ＧＵＩ２００は、ユーザデバイス１０２ａのロック画面とすることができる。ＧＵＩ２００は、ユーザデバイス１０２ａがロック解除された（例えば、ユーザが、ユーザデバイス１０２ａのユーザとして認証済みである）時のユーザデバイス１０２ａのホーム画面とすることができる。
【００３６】
図３は、ユーザデバイス１０２ａ上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェース３００を示す。例えば、ＧＵＩ３００は、図２のＧＵＩ２００を参照して上述したように、ユーザが通知２０２を選択したことに応じて、ユーザデバイス１０２ａのディスプレイ上にオペレーティングシステム１０４ａによって提示され得る。一部の実装形態では、ユーザデバイス１０２ａは、アプリケーション１１０及び／又はメディアデバイス１０６を表すグラフィカル要素３０２を提示することができる。例えば、グラフィカル要素３０２は、メディアデバイス１０６を表す記述２０４及び／又は画像２０６を含むことができる。選択されたテキスト入力制御がアプリケーション１１０に関連付けられているとき、グラフィカル要素３０２は、アプリケーション１１０のグラフィカル表現３０４（例えば、画像、アイコン、グラフィック等）を含むことができる。
【００３７】
一部の実装形態では、グラフィカル要素３０２は、ユーザが提供しなければならないテキスト入力を記述するプロンプト３０６を含むことができる。例えば、プロンプト３０６は、「パスワードを入力（enter your password）」、又は「検索語を入力（enter search term）」等の指示を含むことができる。一部の実装形態では、グラフィカル要素３０２は、どのようにユーザデバイス１０２ａ上に仮想キーボードを起動させるかを記述するプロンプト命令３０８を含むことができる。例えば、プロンプト３０８は、仮想キーボードを起動させるためにグラフィカル要素３０２へのタップジェスチャ、スワイプジェスチャ、長押しジェスチャ、又は押圧タッチジェスチャを提供するための命令を含むことができる。
【００３８】
一部の実装形態では、ＧＵＩ３００は、仮想キーボード３１０を含むことができる。例えば、仮想キーボード３１０を起動させるためにグラフィカル要素３０２をユーザが選択したことに応じて、ＧＵＩ３００上に仮想キーボード３１０を提示することができる。例えば、プロンプト２０８によって指定された入力をユーザデバイス１０２ａが受信したことに応じて、仮想キーボード３１０が提示されてもよい。仮想キーボードは、例えば、文字を選択するための典型的な仮想キーボードレイアウトを含むことができる。一部の実装形態では、ＧＵＩ３００は、グラフィカル要素３０２なしに提示され得る。例えば、仮想キーボード３１０は、グラフィカル要素３０２がないことを除いて、図３のＧＵＩ３００と同様に提示され得る。
【００３９】
一部の実装形態では、ユーザデバイス１０２ａは、動きを検出したことに応じて仮想キーボード３１０を提示することができる。例えば、ユーザデバイス１０２ａは、図２のＧＵＩ２００上に通知２０２を提示することができる。ユーザが通知２０２を見るためにユーザデバイス１０２ａを取り上げたとき、ユーザデバイス１０２ａは、（例えば、内蔵された動きセンサ、加速度計等を用いて）ユーザデバイス１０２ａの動きを検出することができ、オペレーティングシステム１０４ａは、ユーザデバイス１０２ａのディスプレイ上に仮想キーボード３１０を自動的に提示する。例えば、ユーザデバイス１０２ａの動きを検出したことに応じて、オペレーティングシステム１０４ａは、図３のＧＵＩ３００を提示することができる。これにより、ユーザデバイス１０２ａのユーザは、ユーザデバイス１０２ａを取り上げるだけで、仮想キーボード３１０を起動させることができる。
【００４０】
一部の実装形態では、仮想キーボード３１０は、テキスト制御３０８を含むことができる。例えば、ユーザが仮想キーボード３１０上に提示された文字を選択すると、テキスト制御３０８上には選択された文字が表示され得る。上述のように、文字もまた、仮想キーボード３１０上で選択されるとメディアデバイス１０６に送信されるので、ユーザデバイス１０２ａ及びメディアデバイス１０６は共に、ユーザが選択した文字に基づいて同様の文字列を提示することができる。これにより、ユーザは、テキストを入力している間にユーザデバイス１０２ａのディスプレイからユーザの注意を逸らさなくてもよいが、必要な場合にはユーザデバイス１０２ａ上で入力されたテキストと、メディアデバイス１０６が受信したテキストとを比較することができる。
【００４１】
一部の実装形態では、仮想キーボード３１０は、メディアデバイス１０６のディスプレイ上に提示されたテキスト制御（例えば、テキスト入力ボックス、テキスト入力フィールド等）間でナビゲートするためのグラフィカル要素３１４及び／又は３１２を含むことができる。例えば、メディアデバイス１０６上のオペレーティングシステム１０８又はアプリケーション１１０は、複数のテキスト入力制御へのテキスト入力を要求してもよい。オペレーティングシステム１０８又はアプリケーション１１０は、例えば、ユーザのユーザ名及びパスワードを要求してもよい。ユーザは、次のテキスト入力制御を選択するためにグラフィカル要素３１２を選択することができる。ユーザは、以前のテキスト入力制御を選択するためにグラフィカル要素３１４を選択することができる。
【００４２】
一部の実装形態では、仮想キーボード３１０は、ユーザがテキスト入力を提供し終えたことを示すグラフィカル要素３１６を含むことができる。例えば、ユーザは、ユーザが現在のテキスト制御への入力をし終えたことを示すグラフィカル要素３１６を選択することができる。ユーザがグラフィカル要素３１６を選択したとき、ユーザデバイス１０２ａは、メディアデバイス１０６上で別の（例えば次の）テキスト入力制御を選択させるメッセージをメディアデバイス１０６に送信することができる。ユーザがグラフィカル要素３１６を選択すると、ユーザデバイス１０２ａは、遠隔仮想キーボードサービスを終了させるメッセージをメディアデバイス１０６に送信することができる。代替的に、ユーザは、遠隔仮想キーボードサービスを終了し、グラフィカル要素３０２及び仮想キーボード３１０を解除するためにグラフィカル要素３１８を選択することができる。しかし、一部の実装形態では、上述のように、メディアデバイス１０６上での追加のテキスト入力制御の選択及び追加のテキスト入力の提供を可能にするために、サービスの終了を遅延させてもよい。
【００４３】
図４は、ユーザデバイス上に仮想キーボードを提示するための例示的なグラフィカルユーザインターフェース４００を示す。例えば、ＧＵＩ４００は、ユーザが図２の通知２０２を選択したことに応じて、ユーザデバイス１０２ａのディスプレイ上にオペレーティングシステム１０４ａによって提示され得る。例えば、ＧＵＩ３００の代替として、各種ユーザデバイス１０２によって提供される機能（又は機能が提供されないこと）に基づいて、ＧＵＩ４００を提示することができる。例えば、ユーザデバイス１０２ａが押圧タッチ入力機能で構成されている場合、ユーザデバイス１０２ａはＧＵＩ３００を提示することができる。ユーザデバイス１０２ａが押圧タッチ入力特徴で構成されていない場合、ユーザデバイス１０２ａはＧＵＩ４００を提示することができる。
【００４４】
一部の実装形態では、ＧＵＩ４００は、テキスト入力を提示するためのグラフィカル要素４０２を含むことができる。例えば、通知２０２の選択に応じて、グラフィカル要素４０２を提示することができる。グラフィカル要素４０２は、通知２０２に隣接して、又は通知２０２に当接させて、提示してもよい。グラフィカル要素４０２は、プロンプト４０６を含むことができる。例えば、プロンプト４０６は、選択されたテキスト入力制御にどのようなタイプの情報をユーザが提供するべきかを記述する命令をユーザに提供することができる。グラフィカル要素４０２は、テキスト入力制御４０８を含むことができる。例えば、テキスト入力制御４０８は、上述のように、仮想キーボードを使用してユーザによって提供したテキスト入力を提示することができる。
【００４５】
一部の実装形態では、ＧＵＩ４００は、仮想キーボード４１０を含むことができる。例えば、ユーザが仮想キーボード２０２を選択したことに応じて、ＧＵＩ４００上にグラフィカル要素４１０を提示することができる。例えば、グラフィカル要素４０２と同時に又はほぼ同時に仮想キーボード４１０を提示することができる。例えば、プロンプト２０８により指定された入力をユーザデバイス１０２ａが受け取ったことに応じて、仮想キーボード３１０を提示することができる。仮想キーボード４１０は、文字を選択するための典型的な仮想キーボードレイアウトを含むことができる。
【００４６】
一部の実装形態では、仮想キーボード４１０は、メディアデバイス１０６のディスプレイ上に提示されたテキスト制御（例えば、テキスト入力ボックス、テキスト入力フィールド等）間でナビゲートするためのグラフィカル要素４１２及び／又は４１４を含むことができる。例えば、メディアデバイス１０６上のオペレーティングシステム１０８又はアプリケーション１１０は、複数のテキスト入力制御へのテキスト入力を要求してもよい。オペレーティングシステム１０８又はアプリケーション１１０は、例えば、ユーザのユーザ名及びパスワードを要求してもよい。ユーザは、次のテキスト入力制御を選択するためにグラフィカル要素４１２を選択することができる。ユーザは、以前のテキスト入力制御を選択するためにグラフィカル要素４１４を選択することができる。
【００４７】
一部の実装形態では、仮想キーボード４１０は、ユーザがテキスト入力を提供し終えたことを示すグラフィカル要素４１６を含むことができる。例えば、ユーザは、ユーザが現在のテキスト制御への入力を提供し終えたことを示すグラフィカル要素４１６を選択することができる。ユーザがグラフィカル要素４１６を選択したとき、ユーザデバイス１０２ａは、メディアデバイス１０６上で別の（例えば次の）テキスト入力制御を選択させるメッセージをメディアデバイス１０６に送信することができる。ユーザがグラフィカル要素４１６を選択すると、ユーザデバイス１０２ａは、遠隔仮想キーボードサービスを終了させるメッセージをメディアデバイス１０６に送信することができる。代替的に、ユーザは、遠隔仮想キーボードサービスを終了させ、グラフィカル要素４０２及び仮想キーボード４１０を解除するためにグラフィカル要素４１８を選択することができる。しかし、一部の実装形態では、上述のように、メディアデバイス１０６上での追加のテキスト入力制御の選択及び追加のテキスト入力の提供を可能にするために、サービスの終了を遅延させてもよい。
例示プロセス
【００４８】
図５は、ユーザデバイス上に遠隔キーボードサービスを提供するための例示的なプロセス５００のフロー図である。より具体的には、本明細書に記載されるプロセス５００は、ユーザデバイスからメディアデバイス（又は任意の他のタイプのコンピューティングデバイス）に遠隔キーボードサービスを提供するための手法である。プロセス５００を実装するユーザデバイスは、遠隔キーボードサービスを提供し、ユーザデバイス上のユーザアプリケーション（例えば、遠隔制御アプリケーション１０４ａ）を起動させることなく遠隔キーボードを提示することができる。プロセス５００は、オペレーティングシステムによって効率的に処理することができ、ユーザデバイス上にインストールされたアプリケーションにかかわらず、かつ、ユーザデバイスがロック状態か又はロック解除状態であるかに関係なく、遠隔キーボードサービスを利用可能にする。
【００４９】
ステップ５０２において、ユーザデバイス１０２ａは、メディアデバイス１０６から、状態広告メッセージのブロードキャストを受信することができる。例えば、状態広告メッセージは、メディアデバイスを識別することができ、かつ、メディアデバイスの現在の状態を記述するデータを含むことができる。本明細書に記載される実装形態によれば、状態広告メッセージは、メディアデバイス１０６によって提示されたテキスト入力制御が現在選択されていることを示すデータを含むことができる。代替的に、状態広告メッセージは、メディアデバイス１０６が遠隔キーボードへの接続を要求していることを示すデータを含むことができる。
【００５０】
ステップ５０４において、ユーザデバイス１０２ａは、メディアデバイス上のテキスト入力制御が現在選択されていることを判定することができる。例えば、ステップ５０２において受信した状態広告メッセージに基づいて、ユーザデバイス１０２ａは、メディアデバイス１０６上のテキスト入力制御が現在選択されていることを判定することができる。
【００５１】
ステップ５０６において、ユーザデバイス１０２ａは、遠隔キーボード通知を提示することができる。例えば、メディアデバイス１０６上のテキスト入力制御が現在選択されていることを判定したことに応じて、ユーザデバイス１０２ａは、ユーザデバイス１０２ａ上で仮想キーボードを起動させるようにユーザに促すグラフィカルキーボード通知を提示することができる。例えば、ユーザが、ユーザデバイス１０２ａ（例えば、スマートホン）、ユーザデバイス１０２ｂ（例えば、ラップトップ）、及びユーザデバイス１０２ｎ（例えば、タブレット）全てをメディアデバイス１０６のブロードキャスト範囲内に有しているとき、これらのデバイスの各々は、状態広告メッセージに基づいてメディアデバイス上のテキスト入力制御が現在選択されていることを判定し、これらのユーザデバイスの各々の上で仮想キーボードを起動させるようにユーザに促すグラフィカル通知を提示することができる。
【００５２】
ステップ５０８において、ユーザデバイス１０２ａは、ユーザの通知選択を受信することができる。例えば、ユーザデバイス１０２ａは、通知を選択する通知への ユーザ入力（例えば、タップ、スワイプ、長押し、押圧タッチ等）を受信することができる。一部の実装形態では、ユーザが選択した第１のデバイス（例えば、ユーザは、そのデバイス上に仮想キーボードを起動させるためにグラフィカル通知をタッチする可能性がある）は、メディアデバイス１０６上のテキストフィールドにテキストをユーザが入力するために、選択されたデバイス上に遠隔キーボードを提示する。残りのデバイスは、それらの画面からグラフィカル通知を解除するが、それらのデバイスの中に通知を残したままとする。
【００５３】
ステップ５１０において、ユーザデバイス１０２ａは、メディアデバイス１０６との接続を確立することができる。上記で論じたように、ユーザが、通知のタップ操作又はクリック操作によって、ユーザデバイス１０２ａ上の通知を選択した後、ユーザデバイス１０２ａは、通信ネットワーク１１２を介したメディアデバイス１０６と双方向通信セッションを確立することができる。例えば、ネットワーク１１２を介した通信セッションにより、状態広告メッセージよりも多くのデータを送信することが可能になり得るので、ユーザデバイス１０２ａは、ネットワーク１１２を介したメディアデバイス１０６との通信セッションを確立することができる。
【００５４】
ステップ５１２において、ユーザデバイス１０２ａは、メディアデバイス１０６からアプリケーションデータを受信することができる。例えば、メディアデバイス１０６との通信セッションを確立した後、メディアデバイス１０６は、ユーザデバイス１０２ａにアプリケーションデータを送信することができる。例えば、アプリケーションデータは、メディアデバイス１０６を表す記述２０４及び／又は画像２０６等のメディアデバイスデータを含むことができる。アプリケーションデータは、図３に示すように、アプリケーション１１０のグラフィカル表現３０４及び／又はアプリケーション１１０からのプロンプト３０６（例えば、「パスワードを入力してください（please enter your password）」）を含むことができる。
【００５５】
ステップ５１４において、ユーザデバイス１０２ａは、ユーザデバイス１０２ａのディスプレイ上に、デバイスデータ、アプリケーションデータ及び／又はキーボードを提示することができる。例えば、デバイスデータ及び／又はアプリケーションデータを受信した後、ユーザデバイス１０２ａは、図３に示すように、デバイスデータ及び／又はアプリケーションデータを提示することができる。
【００５６】
ステップ５１６において、ユーザデバイス１０２ａは、ユーザデバイス上に提示された仮想キーボードへのユーザ入力を受信することができる。例えば、ユーザ入力は、仮想キーボード上に提示された単一の文字又は他のオブジェクト（テキスト制御間でナビゲートするためのグラフィカル要素３１２及び／又は３１４）の選択であり得る。
【００５７】
ステップ５１８において、ユーザデバイス１０２ａは、メディアデバイス１０６にユーザ入力を送信することができる。例えば、ユーザデバイス１０２ａは、通信ネットワーク１１２を介して、メディアデバイス１０６にユーザ入力を送信することができる。例えば、ステップ５１８の後、プロセス５００はステップ５１６に戻ることができる。ユーザが仮想キーボードへの入力を提供し終えるまで、ステップ５１６及び５１８を繰り返すことができる。これにより、メディアデバイス１０６は、あたかもキーボードがメディアデバイス１０６に直接接続されている又はその一部であるかのように、各キーボード入力に応答することができる。
【００５８】
図６は、ユーザデバイスに遠隔キーボードサービスを要求するための例示的なプロセス６００のフロー図である。より具体的には、本明細書に記載されるプロセス６００は、遠隔キーボードの必要性を広告するための手法であり、それにより、ユーザは、上述のように、遠隔キーボードを起動させるために最も便利なデバイスを選択できるようになる。
【００５９】
ステップ６０２において、メディアデバイス１０６は、メディアデバイス１０６に関連付けられたディスプレイ上にアプリケーション１１０を提示することができる。一部の実装形態では、メディアデバイス１０６を、ユーザにメディアアイテムを提示するための多種多様なメディアアプリケーションで構成することができる。ユーザは、遠隔制御デバイスを用いてメディアデバイス１０６上のアプリケーション１１０を起動させることができる。アプリケーション１１０は、ユーザがアプリケーション１１０を制御することを可能にするグラフィカルユーザインターフェースを提示することができる。例えば、アプリケーション１１０は、アプリケーション１１０を通じて利用可能なメディアアイテムをユーザが閲覧、検索及び視聴することを可能にするグラフィカルユーザインターフェースを提示してもよい。
【００６０】
ステップ６０４において、メディアデバイス１０６は、アプリケーション１１０から、テキスト入力制御が選択されているというインジケーションを受信することができる。例えば、アプリケーション１１０と対話している間に、アプリケーション１１０は、テキスト入力を提供するようにユーザに要求してもよい。アプリケーション１１０は、ユーザ名及びパスワードを要求してもよい。アプリケーション１１０は、メディアの検索を実行するための検索パラメータを要求してもよい。いずれの場合も、アプリケーション１１０はテキスト入力制御を提示することができ、ユーザは、（例えば、遠隔制御デバイス１２０を用いて）アプリケーション１１０によって提示されたテキスト入力制御を選択することができる。テキスト入力の制御が選択されると、アプリケーション１１０は、テキスト入力制御が選択されていることを示す、及び／又はテキスト入力制御によって要求された情報の記述を提供するメッセージを（例えば、上記のＡＰＩを用いて）、メディアデバイス１０６上のオペレーティングシステム１０８に送信することができる。一部の実装形態では、メッセージは、アプリケーション１１０の識別子、及び／又はグラフィカル表現３０４等の他のアプリケーションのメタデータを含むことができる。
【００６１】
ステップ６０６において、メディアデバイス１０６は、テキスト入力制御が選択されていることを示す広告メッセージを生成することができる。一部の実装形態では、メディアデバイス１０６は、アプリケーション１１０によって提示されたテキスト入力制御が選択されていることを示す状態情報を含む状態広告メッセージを生成することができる。例えば、ステップ６０４にてアプリケーション１１０からメッセージを受信したことに応じて、オペレーティングシステム１０８は、メディアデバイス１０６上でテキスト入力制御が現在選択されていることを示すデータを含む状態広告メッセージを生成することができる。
【００６２】
ステップ６０８において、メディアデバイス１０６は、状態広告メッセージをブロードキャストすることができる。一部の実装形態では、メディアデバイス１０６が、テキスト入力制御が選択されていることを示す状態広告メッセージを生成した後、メディアデバイス１０６は、状態広告メッセージをブロードキャストすることができる。例えば、特定の受信者デバイスを識別することなく、広告メッセージをブロードキャストすることができる。これにより、メディアデバイス１０６のブロードキャスト範囲内の全てのユーザデバイスが、状態広告メッセージを受信し得る。
【００６３】
ステップ６１０において、メディアデバイス１０６は、ユーザデバイスがメディアデバイスに遠隔キーボードを提供することを示すメッセージを受信することができる。例えば、メディアデバイス１０６のブロードキャスト範囲内にある全てのユーザデバイス１０２が、メディアデバイス１０６からメディアデバイス状態広告ブロードキャストを受信した後に、メディアデバイス１０６は、ユーザデバイス１０２ａがメディアデバイス１０６に遠隔キーボードを提供することを示すメッセージを受信することができる。例えば、ネットワーク１１２を介して、メディアデバイス１０６にメッセージを送信することができる。メッセージは、メディアデバイス１０６とユーザデバイス１０２ａとが、テキスト入力制御に関連するデータを交換することができるように、メディアデバイス１０６とユーザデバイス１０２ａとの間で双方向通信セッションを開始することができる。
【００６４】
ステップ６１２において、メディアデバイス１０６は、アプリケーションデータをユーザデバイス１０２ａに送信することができる。例えば、アプリケーションデータは、記述２０４及び／又は画像２０６等、メディアデバイス（例えば、メディアデバイス１０６）を表すデバイスデータを含んでもよい。アプリケーションデータは、図３に示すように、アプリケーション１１０のグラフィカル表現３０４及び／又はアプリケーション１１０からのプロンプト３０６（例えば、「パスワードを入力してください（please enter your password）」）を含むことができる。ステップ６０４において上述したように、オペレーティングシステム１０８によって、アプリケーション１１０からアプリケーションデータを受信することができる。
【００６５】
ステップ６１４において、メディアデバイス１０６は、ユーザデバイス１０２ａからユーザのキーボード入力を受信することができる。例えば、ユーザデバイス１０２ａが、ユーザデバイス１０２ａ上に提示された遠隔キーボード（例えば、キーボード３１０、キーボード４１０）上で文字及び／又は他のオブジェクトを選択するユーザ入力を受信すると、ユーザデバイス１０２ａは、ユーザ入力（例えば、選択された文字又は他のオブジェクト）をメディアデバイス１０６に送信することができる。
【００６６】
ステップ６１６において、メディアデバイス１０６は、ユーザのキーボード入力をアプリケーション１１０に送信することができる。例えば、ユーザデバイス１０２ａからユーザのキーボード入力を受信した後、オペレーティングシステム１０８は、アプリケーション１１０にキーボード入力を送信することができる。次いで、アプリケーション１１０は、選択されたテキスト制御の目的に応じた動作を実行することができる。例えば、現在選択されているテキスト制御がユーザ名及び／又はパスワード入力を受信するように構成されている場合、アプリケーション１１０は、キーボード入力を処理して、入力されたユーザ名及び／又はパスワードがそのユーザについて正しいかどうかを判定することができる。現在選択されているテキスト制御が検索パラメータを受信するように構成されている場合、アプリケーション１１０は、ユーザが各文字を入力した後に検索を実行することによって、キーボード入力を処理することができる。
【００６７】
メディアデバイス１０６は、各キーボード入力（例えば、文字選択、オブジェクト選択等）を受信し、入力を受信すると処理するので、プロセス６００は、次のキーボード入力を受信するためにステップ６１４に戻り、次のキーボード入力を処理するためにステップ６１６に戻ることができる。よって、プロセス６００は、選択されたテキスト制御への入力をユーザが提供し終えるまで、ステップ６１４及び６１６を繰り返すことができる。
【００６８】
また、プロセス６００は、アプリケーション１１０に対するテキスト入力を受信することについて説明しているが、プロセス６００は、オペレーティングシステム１０８に対するテキスト入力を受信するためにも同様に実装可能である。例えば、プロセス６００において、オペレーティングシステム１０８のための遠隔キーボードサービスを取得し、オペレーティングシステム１０８によって提示されたテキスト入力制御に対するテキスト入力を受信するために、アプリケーション１１０をオペレーティングシステム１０８に入替可能である。
グラフィカルユーザインターフェース
【００６９】
上記の本開示は、様々な機能、処理、又はワークフローを実装するための様々なグラフィカルユーザインターフェース（ＧＵＩ）を説明している。これらのＧＵＩは、ラップトップコンピュータ、デスクトップコンピュータ、コンピュータ端末、テレビシステム、タブレットコンピュータ、電子書籍リーダー、及びスマートホンを含むが、これらに限定されることはない、様々な電子デバイスに提示され得る。これらの電子デバイスのうちの１つ以上は、タッチ感知面を備えてもよい。タッチ感知面は、各入力点の圧力、程度、又は位置に関連する処理データを含む、複数の同時入力点を処理することができる。このような処理は、ピンチ操作及びスワイプ操作等の、複数の指を用いたジェスチャを容易にすることができる。
【００７０】
本開示が、ＧＵＩ内のユーザインターフェース要素を「選択する」又は「選択している」ことについて言及する場合、これらの用語は、ユーザインターフェース要素上をマウス若しくは他の入力デバイスでクリック若しくは「ホバリング」する、又はユーザインターフェース要素上を１つ以上の指若しくはスタイラスでタッチ、タップ、若しくはジェスチャすることを含むものと理解される。ユーザインターフェース要素は、仮想ボタン、メニュー、セレクタ、スイッチ、スライダ、スクラバ、ノブ、サムネイル、リンク、アイコン、ラジオボタン、チェックボックス、及びユーザからの入力を受信する、又はユーザにフィードバックを提供するための、任意の他のメカニズムであってもよい。
プライバシー
【００７１】
本開示は、本技術において、そのような個人情報データの使用を、ユーザの利益のために使用することができる点を認識するものである。例えば、よりユーザの興味を引く対象コンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。
【００７２】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び／又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共用又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセス権を有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるであろう。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【００７３】
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態をも想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び／又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合において、本技術は、ユーザが、サービスの登録の間、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能とするように構成することができる。別の実施例では、ユーザは、対象コンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置ゾーン情報の転送は許可することを選択してもよい。
例示的なシステムアーキテクチャ
【００７４】
図７は、図１〜図６に示す機能及びプロセスを実装可能な例示的なコンピューティングデバイス７００のブロック図である。コンピューティングデバイス７００は、メモリインターフェース７０２、１つ以上のデータプロセッサ、画像プロセッサ及び／又は中央処理装置７０４、並びに周辺機器インターフェース７０６を含むことができる。メモリインターフェース７０２、１つ以上のプロセッサ７０４、及び／又は周辺機器インターフェース７０６を別個の構成要素とすることもできるし、又は１つ以上の集積回路内に統合することもできる。コンピューティングデバイス７００の各種の構成要素は、１つ以上の通信バス又は信号線路に結合できる。
【００７５】
センサ、デバイス、及びサブシステムは、周辺機器インターフェース７０６と結合することにより、多機能性を容易にすることができる。例えば、動きセンサ７１０、光センサ７１２、及び近接センサ７１４を周辺機器インターフェース７０６に結合することによって、方向、照明、及び近接機能を容易にできる。全地球航法衛星システム（global navigation satellite system：ＧＮＳＳ）（例えば、ＧＰＳ受信器）、温度センサ、生体センサ、磁気計、又は他の検知デバイス等、他のセンサ７１６もまた、周辺機器インターフェース７０６に結合することにより、関連する機能性を容易にすることができる。
【００７６】
カメラサブシステム７２０及び光学センサ７２２（例えば、電荷結合素子（ＣＣＤ）又は相捕型金属酸化膜半導体（ＣＭＯＳ）光学センサ）を利用して、写真及びビデオクリップの記録等のカメラ機能を容易にすることができる。カメラサブシステム７２０及び光学センサ７２２を使用して、例えば顔認識分析によるユーザの認証に使用される、ユーザの画像の収集ができる。
【００７７】
１つ以上の無線通信サブシステム７２４を通じて、通信機能を容易にすることができ、それらのサブシステムとしては、無線受信器及び送信器、並びに／あるいは光（例えば、赤外線）受信器及び送信器を挙げることができる。通信サブシステム７２４の具体的な設計及び実装は、このコンピューティングデバイス７００が動作することを目的とした通信ネットワーク（単数又は複数）に依存し得る。例えば、コンピューティングデバイス７００は、ＧＳＭネットワーク、ＧＰＲＳネットワーク、ＥＤＧＥネットワーク、Ｗｉ−Ｆｉ若しくはＷｉＭａｘネットワーク、及びＢｌｕｅｔｏｏｔｈネットワーク上で動作するように設計された通信サブシステム７２４を含むことができる。特に、無線通信サブシステム７２４は、このデバイス１００を、他の無線デバイスのための基地局として構成できるようなホスティングプロトコルを含むことができる。
【００７８】
オーディオサブシステム７２６をスピーカー７２８及びマイクロホン７３０に結合することにより、話者認識機能、ボイス複製機能、デジタル録音機能、及びテレフォニー機能等のボイス対応機能を容易にできる。オーディオサブシステム７２６は、例えば、音声コマンド、声紋認識及び音声認証の処理を容易にするように構成することができる。
【００７９】
Ｉ／Ｏサブシステム７４０は、タッチ面コントローラ７４２及び／又は他の入力コントローラ（単数又は複数）７４４を含むことができる。タッチ面コントローラ７４２は、タッチ面７４６に結合することができる。タッチ面７４６及びタッチ面コントローラ７４２は、例えば、複数のタッチ感度技術のうちのいずれかを使用して、接触及び移動を検出することも、又は接触及び移動の中断を検出することもできる。タッチ感度技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術に加えて、タッチ面７４６との１つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。
【００８０】
他の入力コントローラ（単数又は複数）７４４は、１つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラス等のポインタデバイス等、他の入力／制御デバイス７４８に結合することができる。１つ以上のボタン（図示せず）としては、スピーカー７２８及び／又はマイクロホン７３０のボリューム制御用の上／下ボタンを含むことができる。
【００８１】
一実装形態では、ボタンを第１の持続時間押すことにより、タッチ面７４６のロックを解除することができ、ボタンを第１の持続時間よりも長い第２の持続時間押すことにより、コンピューティングデバイス７００への電源をオン／オフすることができる。ボタンを第３の持続時間押すことにより、ボイス制御、すなわちボイスコマンド、ユーザがマイクロホン７３０に向かって話したコマンドをデバイスに実行させるようにするモジュールをアクティブにすることができる。ユーザは、１つ以上のボタンの機能性をカスタマイズすることができる。また、タッチ面７４６を使用して、例えば、仮想ボタン若しくはソフトボタン、及び／又はキーボードを実装することもできる。
【００８２】
一部の実装形態では、このコンピューティングデバイス７００は、ＭＰ３ファイル、ＡＡＣファイル、及びＭＰＥＧファイル等の、記録されたオーディオファイル及び／又はビデオファイルを提示することができる。一部の実装形態では、このコンピューティングデバイス７００は、ｉＰｏｄ（登録商標）等のＭＰ３プレーヤの機能性を含み得る。したがって、コンピューティングデバイス７００は、ｉＰｏｄと互換性のある３６ピンコネクタを含むことができる。また、他の入出力及び制御デバイスも使用できる。
【００８３】
メモリインターフェース７０２は、メモリ７５０に結合することができる。メモリ７５０としては、１つ以上の磁気ディスクストレージデバイス、１つ以上の光学ストレージデバイス、及び／若しくはフラッシュメモリ（例えば、ＮＡＮＤ、ＮＯＲ）等、高速ランダムアクセスメモリ並びに／又は不揮発性メモリを挙げることができる。メモリ７５０には、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ  Ｘ、ＷＩＮＤＯＷＳのようなオペレーティングシステム７５２、又はＶｘＷｏｒｋｓのような組み込みオペレーティングシステムを格納できる。
【００８４】
オペレーティングシステム７５２は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを遂行するための命令を含むことができる。一部の実装形態では、オペレーティングシステム７５２をカーネル（例えば、ＵＮＩＸカーネル）とすることができる。一部の実装形態では、オペレーティングシステム７５２は、音声認証を実行するための命令を含むことができる。例えば、オペレーティングシステム７５２は、図１〜図６を参照して記載された遠隔キーボードの機能を実装することができる。
【００８５】
メモリ７５０はまた、１つ以上の追加デバイス、１つ以上のコンピュータ、及び／又は１つ以上のサーバとの通信を容易にするための通信命令７５４をも格納できる。メモリ７５０は、グラフィカルユーザインターフェース処理を容易にするためのグラフィカルユーザインターフェース命令７５６、センサ関連の処理及び機能を容易にするためのセンサ処理命令７５８、電話関連の処理及び機能を用意にするための電話命令７６０、電子メッセージング関連の処理及び機能を容易にするための電子メッセージング命令７６２、ウェブ閲覧関連の処理及び機能を容易にするためのウェブ閲覧命令７６４、メディア処理関連の処理及び機能を容易にするためのメディア処理命令７６６、ＧＮＳＳ及びナビゲーション関連のプロセス並びに命令を容易にするためのＧＮＳＳ／ナビゲーション命令７６８、及び／又はカメラ関連の処理及び機能を容易にするためのカメラ命令７７０を含むことができる。
【００８６】
メモリ７５０は、図１〜図６を参照して記載された遠隔キーボードの処理及び機能のような、他の処理及び機能を容易にするための他のソフトウェア命令７７２を格納することができる。
【００８７】
メモリ７５０はまた、ウェブビデオ関連の処理及び機能を容易にするためのウェブビデオ命令、及び／又はウェブショッピング関連の処理及び機能を容易にするためのウェブショッピング命令等、他のソフトウェア命令７７４を格納することができる。一部の実装形態では、メディア処理命令７６６は、オーディオ処理関連の処理及び機能を容易にするためのオーディオ処理命令と、ビデオ処理関連の処理及び機能を容易にするためのビデオ処理命令とに、それぞれ分割することができる。
【００８８】
上記の識別された命令及びアプリケーションのそれぞれは、上記１つ以上の機能を実行するための命令セットに対応し得る。これらの命令は、別個のソフトウェアプログラム、手順、又はモジュールとして実装する必要がない。メモリ７５０に追加の命令を含めてもよいし、又は含まれている命令を減らしてもよい。更にまた、コンピューティングデバイス７００の様々な機能は、１つ以上の信号処理及び／又は特定用途向け集積回路を含むハードウェア及び／又はソフトウェアに実装できる。
【図１】
2019526094.tif 000003
【図２】
2019526094.tif 000004
【図３】
2019526094.tif 000005
【図４】
2019526094.tif 000006
【図５】
2019526094.tif 000007
【図６】
2019526094.tif 000008
【図７】
2019526094.tif 000009
【国際調査報告】
2019526094.tif 000010
2019526094.tif 000011
2019526094.tif 000012