(57)【要約】  表示のために、組み込みアプリケーションストリップを含むグラフィカルキーボードを出力する、コンピューティングデバイスにおいて実行されるキーボードアプリケーションについて説明する。組み込みアプリケーションストリップは、1つまたは複数のグラフィカル要素を含み、各グラフィカル要素は、キーボードアプリケーションによって各々実行可能な複数の組み込みアプリケーションからの特定の組み込みアプリケーションに対応する。キーボードアプリケーションは、組み込みアプリケーションストリップを選択するユーザ入力を受信し、ユーザ入力に基づいて特定の組み込みアプリケーションを決定し、特定の組み込みアプリケーションを起動する。
2020525933.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて実行されるキーボードアプリケーションによって、表示のために、組み込みアプリケーションストリップを含むグラフィカルキーボードを出力するステップであり、前記組み込みアプリケーションストリップが、1つまたは複数のグラフィカル要素を含み、各グラフィカル要素が、前記キーボードアプリケーションによって各々実行可能な複数の組み込みアプリケーションからの特定の組み込みアプリケーションに対応する、ステップと、
前記キーボードアプリケーションによって、前記組み込みアプリケーションストリップを選択するユーザ入力を受信するステップと、
前記キーボードアプリケーションによって、前記ユーザ入力に基づいて特定の組み込みアプリケーションを決定するステップと、
前記キーボードアプリケーションによって、前記特定の組み込みアプリケーションを起動するステップと
を含む方法。
【請求項２】
前記複数の組み込みアプリケーションが、検索タイプの組み込みアプリケーション、カレンダータイプの組み込みアプリケーション、ビデオタイプの組み込みアプリケーション、写真タイプの組み込みアプリケーション、マップまたはナビゲーションタイプの組み込みアプリケーション、音楽タイプの組み込みアプリケーションのうちの2つ以上を含む、請求項1に記載の方法。
【請求項３】
前記キーボードアプリケーションによって、前記組み込みアプリケーションストリップを選択する前記ユーザ入力の受信に応じて、前記組み込みアプリケーションストリップ内で、前記特定の組み込みアプリケーションの前記グラフィカル要素を強調表示するステップ
をさらに含む、請求項1または2に記載の方法。
【請求項４】
前記特定の組み込みアプリケーションを起動するステップが、前記特定の組み込みアプリケーションの動作を実行するための1つまたは複数のアプリケーションスレッドを前記キーボードアプリケーションによって開始するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記キーボードアプリケーションによって、前記グラフィカルキーボードの少なくともいくつかのグラフィカルキーの代わりに、前記特定の組み込みアプリケーションのグラフィカルユーザインターフェースを少なくとも表示することによって、前記特定の組み込みアプリケーションに関連付けられた組み込みアプリケーションエクスペリエンスを、表示のために出力するステップ
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記キーボードアプリケーションによって、前記組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力を受信するステップと、
前記キーボードアプリケーションによって、前記組み込みアプリケーションエクスペリエンスに関連付けられた前記ユーザ入力に基づいて、1つまたは複数の動作を実行するステップと
をさらに含む請求項5に記載の方法。
【請求項７】
前記キーボードアプリケーションによって、前記組み込みアプリケーションストリップに関連付けられた追加のユーザ入力を受信するステップと、
前記追加のユーザ入力の受信に応答して、
前記キーボードアプリケーションによって、異なる組み込みアプリケーションを起動するステップと、
前記キーボードアプリケーションによって、前記異なる組み込みアプリケーションに関連する1つまたは複数の動作を実行するステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記異なる組み込みアプリケーションに関連する前記1つまたは複数の動作が、以前表示された組み込みアプリケーションエクスペリエンスを、前記異なる組み込みアプリケーションに関連付けられた新しい組み込みアプリケーションエクスペリエンスに置き換えるステップを含む、請求項7に記載の方法。
【請求項９】
前記組み込みアプリケーションストリップがスクロール可能である、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記組み込みアプリケーションストリップが、選択可能なグラフィカル要素の複数のページを含む、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記組み込みアプリケーションストリップが、前記グラフィカルキーボードの前記キーのうちの少なくともいくつかの上に配置されるか、または前記組み込みアプリケーションストリップが、前記グラフィカルキーボードの前記キーのうちの少なくともいくつかの下もしくは片側に配置される、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記組み込みアプリケーションストリップが、前記グラフィカルキーボードのあるエリアに配置され、前記組み込みアプリケーションストリップの他の部分が、前記グラフィカルキーボードの他のエリアに配置される、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記グラフィカルキーボードが、選択されると、前記キーボードアプリケーションに、前記組み込みアプリケーションストリップを表示させる特定のグラフィカル要素またはキーを含む、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
請求項1から13のいずれか一項に記載の方法を実行するように構成された少なくとも1つのプロセッサを含むコンピューティングデバイス。
【請求項１５】
請求項1から13のいずれか一項に記載の方法を実行するための手段を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカルキーボード内からのアプリケーション機能へのアクセスに関する。
【背景技術】
【０００２】
複数のアプリケーションを同時に実行することができるにもかかわらず、一部のモバイルコンピューティングデバイスは、一度に1つのグラフィカルユーザインターフェイス(GUI)しか表示できない。そのようなモバイルコンピューティングデバイスのユーザは、特定のタスクを完了するために、異なるアプリケーションGUI間で切り替えるための入力を提供する必要があり得る。たとえば、モバイルコンピューティングデバイスのユーザがメッセージングGUIに表示されるグラフィカルキーボードでメッセージを入力すると、ユーザは、メッセージングGUIの外部で保持される情報をメッセージに挿入することを望む場合がある。ユーザは、第1に、メッセージングGUIの外部でナビゲートする、第2に、情報をコピーする、第3に、メッセージングGUIに戻って情報をメッセージに貼り付けるための入力を提供しなければならない場合がある。様々なタスクを実行するためにいくつかの入力を提供することは、冗長で、反復的で、時間がかかる。
【発明の概要】
【課題を解決するための手段】
【０００３】
一般に、本開示は、キーボードアプリケーションが、通常はキーボードアプリケーションの外部で実行される他のアプリケーションまたはサービスからのみアクセス可能なコンテンツへのアクセスを、キーボードGUI内から提供できるようにするための技法を対象とする。キーボードアプリケーションは、そうでなければキーボードGUIの外部でナビゲートすることによってのみアクセスでき得る情報を取得するためのそれぞれのコンジットとして各々機能する1つまたは複数の組み込みアプリケーションを実行する。各組み込みアプリケーションによって、キーボードアプリケーションは、その組み込みアプリケーションに関連付けられた完全なユーザエクスペリエンスを、キーボードGUI内で完全に提供することができる。キーボードGUIは、ユーザが組み込みアプリケーションエクスペリエンス間で迅速に切り替えるためのインターフェース要素を提供する。
【０００４】
キーボードアプリケーション内で実行される1つまたは複数の組み込みアプリケーションへの迅速なアクセスを可能にするキーボードGUIを提供することによって、例示的なキーボードアプリケーションは、通常はグラフィカルキーボードアプリケーションの外部で実行されるアプリケーションまたはサービスのGUIからのみアクセス可能なコンテンツへのアクセスを、キーボードGUI内から提供し得る。このようにして、本開示の技法は、キーボードアプリケーション内から情報を取得するために必要な時間量およびユーザ入力の数を低減し、これによって、ユーザエクスペリエンスが簡素化され、コンピューティングデバイスの消費電力が低減され得る。
【０００５】
1つまたは複数の例の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００６】
【図１Ａ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスを示す概念図である。
【図１Ｂ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスを示す概念図である。
【図２】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスを示すブロック図である。
【図３】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成されたコンピューティングデバイスの例示的な動作を示すフローチャートである。
【図４Ａ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図４Ｂ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図４Ｃ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図５Ａ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図５Ｂ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図６Ａ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図６Ｂ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図７Ａ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【図７Ｂ】本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。
【発明を実施するための形態】
【０００７】
図1Aおよび図1Bは、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイス110を示す概念図である。コンピューティングデバイス110は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、コンピュータ化された時計、コンピュータ化されたアイウェア、コンピュータ化された手袋、または任意の他のタイプのポータブルコンピューティングデバイスなどのモバイルデバイスを表し得る。コンピューティングデバイス110の追加の例には、デスクトップコンピュータ、テレビ、携帯情報端末(PDA)、ポータブルゲームシステム、メディアプレーヤ、電子ブックリーダー、モバイルテレビジョンプラットフォーム、自動車ナビゲーションおよびエンターテイメントシステム、車両(たとえば、自動車、航空機、または他の車両)コックピットディスプレイ、または表示のためのグラフィカルキーボードを出力し得る任意の他のタイプのウェアラブルおよび非ウェアラブル、モバイルまたは非モバイルコンピューティングデバイスがある。
【０００８】
コンピューティングデバイス110は、プレゼンスセンシティブディスプレイ(presence-sensitive display: PSD)112、ユーザインターフェース(UI)モジュール120、およびキーボードモジュール122を含む。モジュール120および122は、コンピューティングデバイス110内に存在しており、かつ/またはそこにおいて実行されるソフトウェア、ハードウェア、ファームウェア、またはハードウェア、ソフトウェア、およびファームウェアの混合を使用して説明された動作を実行し得る。コンピューティングデバイス110の1つまたは複数のプロセッサは、モジュール120および122の動作を実行するように、コンピューティングデバイス110のメモリまたは他の非一時的記憶媒体に記憶されている命令を実行し得る。コンピューティングデバイス110は、基礎となるハードウェア上で実行される仮想マシンとしてモジュール120および122を実行し得る。モジュール120および122は、オペレーティングシステムまたはコンピューティングプラットフォームの1つまたは複数のサービスとして実行し得る。モジュール120および122は、コンピューティングプラットフォームのアプリケーション層で1つまたは複数の実行可能プログラムとして実行し得る。
【０００９】
コンピューティングデバイス110のPSD112は、コンピューティングデバイス110のそれぞれの入力および/または出力デバイスとして機能し得る。PSD112は、様々な技術を使用して実装され得る。たとえば、PSD112は、抵抗タッチスクリーン、表面弾性波タッチスクリーン、静電容量タッチスクリーン、投影静電容量タッチスクリーン、感圧スクリーン、音響パルス認識タッチスクリーン、または別のプレゼンスセンシティブディスプレイ技術など、プレゼンスセンシティブ入力スクリーンを使用した入力デバイスとして機能し得る。PSD112は、液晶ディスプレイ(LCD)、ドットマトリクスディスプレイ、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インク、またはコンピューティングデバイス110のユーザに可視情報を出力することが可能な同様のモノクロもしくはカラーディスプレイなど、任意の1つまたは複数のディスプレイデバイスを使用して、出力(たとえばディスプレイ)デバイスとしても機能し得る。
【００１０】
PSD112は、それぞれのコンピューティングデバイス110のユーザからの入力(たとえば、タッチおよび非タッチ入力)を検出し得る。PSD112は、ユーザからの1つまたは複数のジェスチャ(たとえば、ユーザがPSD112の1つまたは複数の位置においてまたはその近くで、指またはスタイラスペンでタッチ、ポイント、および/またはスワイプする)を検出することによって、入力の指示を検出し得る。PSD112は、コンピューティングデバイス110によって提供される機能に関連付けられ得るユーザインターフェース(たとえば、ユーザインターフェース114Aおよび114B)の形でユーザに情報を出力してもよい。そのようなユーザインターフェースは、(たとえば、電子メッセージアプリケーション、チャットアプリケーション、インターネットブラウザアプリケーション、モバイルまたはデスクトップオペレーティングシステム、ソーシャルメディアアプリケーション、電子ゲーム、および他のタイプのアプリケーションなど)コンピューティングデバイス110において実行される、もしくはコンピューティングデバイス110からアクセス可能なコンピューティングプラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスに関連付けられ得る。たとえば、PSD112は、ユーザインターフェース114Aおよび114B(「ユーザインターフェース114」と総称される)を提示することができ、これは、図1Aおよび図1Bに示されるように、コンピューティングデバイス110において実行されるチャットアプリケーションのグラフィカルユーザインターフェースであり、PSD112の様々な位置に表示される様々なグラフィカル要素を含む。
【００１１】
図1Aおよび図1Bに示されるように、ユーザインターフェース114は、チャットユーザインターフェースである。しかしながら、ユーザインターフェース114は、グラフィカルキーボードを含む任意のグラフィカルユーザインターフェースであり得る。ユーザインターフェース114は各々、出力領域116A、グラフィカルキーボード116B、および編集領域116Cを含む。コンピューティングデバイス110のユーザは、グラフィカルキーボード116Bにおいて入力を提供して、出力領域116A内に表示される電子メッセージのコンテンツを形成する文字を編集領域116C内に生成することができる。出力領域116A内に表示されるメッセージは、コンピューティングデバイス110のユーザと異なるコンピューティングデバイスのユーザとの間のチャット会話を形成する。
【００１２】
UIモジュール120は、PSD112およびコンピューティングデバイス110の他の構成要素とのユーザ対話を管理する。言い換えれば、UIモジュール120は、PSD112によって検出されたユーザ入力に基づいて決定を行い、ユーザ入力に応答してPSD112で出力を生成するように、コンピューティングデバイス110の様々な構成要素間の仲介として働くことができる。UIモジュール120は、アプリケーション、サービス、プラットフォーム、またはコンピューティングデバイス110の他のモジュールから命令を受信して、PSD112にユーザインターフェース(たとえば、ユーザインターフェース114)を出力させ得る。UIモジュール120は、ユーザがPSD112において提示されるユーザインターフェースを閲覧し、それと対話するとき、コンピューティングデバイス110によって受信される入力を管理し、アプリケーション、サービス、プラットフォーム、またはユーザ入力を処理しているコンピューティングデバイス110の他のモジュールからの追加の命令の受信に応答して、ユーザインターフェースを更新し得る。
【００１３】
キーボードモジュール122は、キーボードモジュール122の外部で実行される他のアプリケーションまたはサービスによって通常維持されるコンテンツへのアクセスを、グラフィカルキーボード116B内から提供するように構成されたグラフィカルキーボード116Bをコンピューティングデバイス110に提供する、コンピューティングデバイス110において実行される、またはコンピューティングデバイス110にアクセス可能なアプリケーション、サービス、または構成要素を表す。コンピューティングデバイス110は、(たとえば、インターネットを介して)サービスプロバイダのアプリケーションまたはアプリケーション拡張リポジトリからキーボードモジュール122をダウンロードし、インストールしてもよい。他の例では、キーボードモジュール122は、コンピューティングデバイス110の製造中にプリロードされてもよい。
【００１４】
キーボードモジュール122は、そうでなければ(たとえば、キーボードモジュール122とは別の異なるアプリケーションまたはコンピューティングプラットフォームのGUIに)キーボードGUIの外部でナビゲートすることによってのみアクセス可能であり得る情報(たとえば、セキュリティ保護された、および/またはセキュリティ保護されていない情報)を取得するためのそれぞれのコンジットとして各々働く1つまたは複数の組み込みアプリケーションを管理または実行し得る。キーボードモジュール122は、(たとえば、PSD112において表示するためのグラフィカルキーボードレイアウトを生成する、PSD112において検出された入力をグラフィカルキーの選択にマッピングする、選択されたキーに基づいて文字を決定する、または選択されたキーから決定された文字に基づいて、単語および/またはテキストフレーズを予測または自動修正するなど)キーボードモジュール122が従来のグラフィカルキーボードと同様に機能するテキスト入力モード、またはキーボードモジュール122が様々な組み込みアプリケーションエクスペリエンスを提供する組み込みアプリケーションモードでの動作間で切り替わることができる。
【００１５】
そうでなければキーボードGUIの外部でナビゲートすることによってのみアクセスでき得るセキュリティ保護された情報へのアクセスを提供するために、キーボードモジュール122は、そのような情報にアクセスするためのユーザからの明示的な許可を必要とする。いくつかの場合には、キーボードモジュール122は、ユーザが、グラフィカルキーボード116B内から資格証明を提供して、キーボードモジュール122にセキュリティ保護された情報へのアクセスを許可(および取り消し)することを可能にする。また、いくつかの場合には、キーボードモジュール122は、(たとえば、異なるアプリケーションまたはコンピューティングプラットフォームによって)グラフィカルキーボード116Bの外部で取得された事前のユーザの同意を介して、セキュリティ保護された情報へのアクセスを取得する。いずれの場合も、キーボードモジュール122は、ユーザにそのような情報へのアクセスを取り消すための明確で明瞭な方法を提供する。
【００１６】
キーボードモジュール122は、スタンドアロンのアプリケーション、サービス、またはコンピューティングデバイス110において実行されるモジュールであってもよく、他の例では、キーボードモジュール122は、他のアプリケーションまたはデバイス機能のサービスとして作用する拡張機能などのサブ構成要素であってもよい。たとえば、キーボードモジュール122は、コンピューティングデバイス110がグラフィカルキーボード入力機能を必要とするときはいつでもスタンドアロンキーボードアプリケーションのサブ構成要素として動作するキーボード拡張であってもよい。キーボードモジュール122は、コンピューティングデバイス110において実行されるチャットまたはメッセージングアプリケーションに統合されてもよいが、他の例では、キーボードモジュール122は、コンテナアプリケーションがグラフィカルキーボード入力機能を必要とするときはいつでもキーボードモジュール122を呼び出す、コンピューティングデバイス110の別個のアプリケーションまたはオペレーティングプラットフォームなど、コンテナアプリケーションによって呼び出されるスタンドアロンアプリケーションまたはサブルーチンでもよい。
【００１７】
たとえば、キーボードモジュール122が、コンピューティングデバイス110において実行されるチャットまたはメッセージングアプリケーションの一部を形成するとき、キーボードモジュール122は、チャットまたはメッセージングアプリケーションに、テキスト入力機能、およびキーボードモジュール122の一部として実行される1つまたは複数の組み込みアプリケーションへのアクセスを提供し得る。同様に、キーボードモジュール122が、アプリケーションまたはオペレーティングプラットフォームがグラフィカルキーボード入力機能を必要とするときはいつでもコンピューティングデバイス110のアプリケーションまたはオペレーティングプラットフォームによって呼び出される、スタンドアロンアプリケーションまたはサブルーチンであるとき、キーボードモジュール122は、呼び出しアプリケーションまたはオペレーティングプラットフォームに、テキスト入力機能、およびキーボードモジュール122の一部として実行される1つまたは複数の組み込みアプリケーションへのアクセスを提供し得る。
【００１８】
グラフィカルキーボード116Bは、グラフィカルキー118A、組み込みアプリケーションエクスペリエンス118B-1および118B-2(総称して「組み込みアプリケーションエクスペリエンス118B」)、ならびに組み込みアプリケーションストリップ118Dとして表示されるグラフィカル要素を含む。キーボードモジュール122は、ユーザインターフェース114内で、グラフィカルキー118A、組み込みアプリケーションストリップ118D、および組み込みアプリケーションエクスペリエンス118Bのレイアウトを指定する情報をUIモジュール120に出力してもよい。たとえば、情報は、グラフィカルキー118Aの位置、サイズ、色、および他の特性を指定する命令を含んでいてもよい。キーボードモジュール122から受信された情報に基づいて、UIモジュール120は、PSD112に、ユーザインターフェース114のグラフィカルキーボード116Bの一部としてグラフィカルキー118Aを表示させてもよい。
【００１９】
グラフィカルキー118Aの各キーは、キー内に表示される1つまたは複数のそれぞれの文字(たとえば、文字、数字、句読点、または他の文字)に関連付けられ得る。コンピューティングデバイス110のユーザは、(たとえば、出力領域116A内で送信され、表示されるメッセージを構成するため、またはコンピューティングデバイス110がグラフィカルキーボード116B内から実行する検索クエリを入力するためなど)コンテンツ(たとえば、文字、図像記号フレーズ予測など)を編集領域116Cに入力するために、グラフィカルキー118Aのうちの1つまたは複数が表示されるPSD112の位置において入力を提供し得る。キーボードモジュール122は、グラフィカルキーの各々の位置に対するPSD112によって検出された入力に関連付けられた位置を示す情報を、UIモジュール120から受信し得る。空間および/または言語モデルを使用して、キーボードモジュール122は、入力を、キーおよび文字、単語、ならびに/またはフレーズの選択に変換し得る。
【００２０】
たとえば、PSD112は、コンピューティングデバイス110のユーザが、PSD112がグラフィカルキー118Aを提示するPSD112の位置においてまたはその近くでユーザ入力を提供するときに、ユーザ入力を検出し得る。ユーザは、グラフィカルキー118Aにおいて入力して、編集領域116Cにおいてメッセージのテキストを入力することができる。UIモジュール120は、PSD112から、PSD112によって検出されたユーザ入力の指示を受信し、ユーザ入力に関する情報をキーボードモジュール122に出力し得る。ユーザ入力に関する情報は、PSD112によって検出される1つまたは複数のタッチイベントの指示(たとえば、入力に関する位置および他の情報)を含み得る。
【００２１】
UIモジュール120から受信された情報に基づいて、キーボードモジュール122は、PSD112において検出された入力をグラフィカルキー118Aの選択にマッピングし、選択されたキー118Aに基づいて文字を決定し、選択されたキー118Aに関連付けられた文字に基づいて決定された単語および/またはフレーズを予測または自動修正し得る。たとえば、キーボードモジュール122は、キー118Aの位置および入力に関する情報に基づいて、ユーザがメッセージのテキストを入力するときに選択される可能性が最も高い1つまたは複数のキー118Aを決定し得る空間モデルを含み得る。選択されている可能性が最も高い1つまたは複数のキー118Aの決定に応答して、キーボードモジュール122は、メッセージのテキストを構成する1つまたは複数の文字、単語、および/またはフレーズを決定し得る。たとえば、PSD112におけるユーザ入力から選択されている1つまたは複数のキー118Aの各々は、個々の文字またはキーボード動作を表し得る。キーボードモジュール122は、1つまたは複数の選択されたキー118Aに基づいて選択された文字のシーケンスを決定してもよい。いくつかの例では、キーボードモジュール122は、キー118Aの選択に基づいてユーザが入力しようとしている1つまたは複数の最も可能性の高い候補文字、形態素、単語、および/またはフレーズを決定するために、言語モデルを文字のシーケンスを適用し得る。キーボードモジュール122は、文字および/または候補単語およびフレーズのシーケンスをUIモジュール120に送信し、UIモジュール120は、PSD112に、1つまたは複数のキー118Aの選択から決定された文字および/または候補単語を編集領域116C内にテキストとして提示させ得る。
【００２２】
テキスト入力に使用される従来のグラフィカルキーボード動作を実行することに加えて、コンピューティングデバイス110のキーボードモジュール122は、キーボードモジュール122の外部で実行される他のアプリケーションまたはサービスによって通常維持されるコンテンツへのアクセスをユーザに提供する組み込みアプリケーションエクスペリエンスを、グラフィカルキーボード116B内から提供するように各々構成される1つまたは複数の組み込みアプリケーションも実行する。すなわち、コンピューティングデバイス110のユーザに、ユーザインターフェース114から離れて(たとえば、コンピューティングデバイス110において実行される、またはコンピューティングデバイス110からアクセス可能な異なるアプリケーションまたはサービスに)ナビゲートして、キーボードモジュール122の外部で実行される他のアプリケーションまたはサービスによって維持されるコンテンツにアクセスすることを要求するのではなく、キーボードモジュール122は、キーボードモジュール122が、グラフィカルキーボード116Bが表示されるPSD112の同じ領域内から、キーボードアプリケーションモジュール122の外部で維持または記憶されるコンテンツを取得し、提示するように構成される1つまたは複数の組み込みアプリケーションを実行し得る組み込みアプリケーションモードで動作し得る。
【００２３】
組み込みアプリケーションストリップ118Dは、ユーザがキーボードモジュール122をテキスト入力モードから組み込みアプリケーションモードに移行させ、組み込みアプリケーションモードで実行中に、キーボードモジュール122によって提示される、異なる組み込みアプリケーションエクスペリエンス118B間で移行させる方法を提供するグラフィカルキーボード116Bのユーザインターフェース要素である。組み込みアプリケーションストリップ118Dは、アイコン、グラフィカル要素、および/またはラベルを備えた1つもしくは複数のグラフィカルボタンを含む。各ボタンは、組み込みアプリケーションモードで動作しているときにキーボードモジュール122が管理し、実行する特定の組み込みアプリケーションに関連付けられている。ユーザは、組み込みアプリケーションストリップ118Dから組み込みアプリケーションを選択するために、USD112において入力(たとえば、ジェスチャ)を提供してもよい。いくつかの例では、組み込みアプリケーションストリップ118Dは、どの組み込みアプリケーションエクスペリエンスが現在の組み込みアプリケーションエクスペリエンスであるかに関係なく、組み込みアプリケーションモード中、維持され、ユーザが組み込みアプリケーションエクスペリエンス間で切り替えるのを容易にし得る。また、いくつかの事例では、たとえば、ユーザインターフェース114Aの検索組み込みアプリケーションボタンの強調表示によって示されるように、キーボードモジュール122は、組み込みアプリケーションストリップ118Dに、現在の組み込みアプリケーションエクスペリエンスに関連付けられたボタンを強調表示させ得る。他の場合には、キーボードモジュール122は、組み込みアプリケーションエクスペリエンスが表示されるときに組み込みアプリケーションストリップ118Dを非表示にするか、または最小化してもよい。組み込みアプリケーションストリップ118Dは、グラフィカルボタンを列、格子、または他の配列で含み得る。組み込みアプリケーションストリップ118Dは、潜在的にユーザコンテキスト(たとえば、時刻、位置、キー118Aでの入力、アプリケーションフォーカスなど)に基づいて、どのグラフィカルボタンが表示されるか、グラフィカルボタンがどのように配置され、順序付けされるかを動的に変更し得る。組み込みアプリケーションストリップは、ユーザがコンピューティングデバイス110に入力を提供し、それによってキーボードモジュール122が個人の選好を反映するように組み込みアプリケーションストリップ118D上のグラフィカルボタンを追加または削除し、および配置できるように、カスタマイズ可能である。
【００２４】
組み込みアプリケーションエクスペリエンス118Bは、従来はグラフィカルキーボードアプリケーションの外部で動作するサービスおよびアプリケーションによって提供される情報にアクセスするために、キーボードモジュール122内で、その制御下で(または言い換えれば、その動作コンテキスト内で)実行される組み込みアプリケーションによって提供される特殊なGUI環境である。各組み込みアプリケーションは、キーボードアプリケーションモジュール122と同じ開発者によって作成されたファーストパーティアプリケーション、またはキーボードアプリケーションモジュール122と異なる開発者によって作成されたサードパーティアプリケーションのいずれかであり得る。いくつかの例では、テキスト入力モードは、組み込みアプリケーションストリップ118Dに関連ボタンを備えたテキスト入力組み込みアプリケーションエクスペリエンスとしてキーボードモジュール122によって実装され得る。
【００２５】
各組み込みアプリケーションは、キーボードモジュール122の制御下にある(または、ここでも、言い換えると、その動作コンテキスト内にある)別個のルーチンまたはサブルーチンとして実行され得る。キーボードモジュール122は、その制御で各組み込みアプリケーションに関連付けられたアプリケーションスレッドを開始または終了し、その制御で各組み込みアプリケーションに関連付けられたメモリを要求または管理し、そうでなければ、その制御で各組み込みアプリケーションに提供される機能および/またはリソース(たとえば、メモリ、ストレージスペースなど)を管理または処理し得る。
【００２６】
各組み込みアプリケーションは、他のタイプのキーボードアプリケーションが提供し得る外部サービスまたはアプリケーションへのリンクよりも高度である。各組み込みアプリケーションは、それ自体、別個のアプリケーションまたはキーボードモジュール122の一部であり、キーボードモジュール122の制御下にありながら、特定の機能または動作を提供するように構成されている。言い換えれば、各組み込みアプリケーションは、キーボードモジュール122の外部で実行されている、またはコンピューティングデバイス110からアクセス可能な別個のアプリケーションまたはサービスへのリンクよりも高度である。すなわち、キーボードモジュール122の一部として実行される組み込みアプリケーションは、キーボードアプリケーションの外部で実行される他のサービスもしくはリソースを呼び出す、またはそれらにナビゲートする必要なく、キーボードアプリケーションが各組み込みアプリケーションエクスペリエンスに関連する1つまたは複数の高度な機能を実行できるように、出力を提供し、入力を解読し、組み込みアプリケーションエクスペリエンスを維持するための機能を実行し得る。
【００２７】
図1Aの組み込みアプリケーションエクスペリエンス118B-1は、キーボードモジュール122の一部として実行される検索タイプの組み込みアプリケーションに関連付けられたGUIである。検索タイプの組み込みアプリケーションは、検索動作(たとえば、コンピューティングデバイス110のローカルおよび/またはインターネット上での情報検索)を実行してもよい。組み込みアプリケーションエクスペリエンス118B-1は、ユーザが特定の検索クエリを入力するためのテキスト入力を受信するように構成された検索クエリ入力ボックス118Fの上に位置する普及している検索クエリのリストを含む。
【００２８】
図1Bに示すように、組み込みアプリケーションエクスペリエンス118B-2は、キーボードモジュール122の一部として実行されるマップまたはナビゲーションタイプの組み込みアプリケーションに関連付けられたGUIである。マップまたはナビゲーションタイプの組み込みアプリケーションは、マップまたはナビゲーション動作(たとえば、場所の情報検索)を実行し得る。組み込みアプリケーションエクスペリエンス118B-2は、ユーザが特定の位置を入力するためのテキスト入力を受信するように構成された位置入力ボックス118Fを含む。位置入力ボックスは、マップまたはナビゲーションタイプの組み込みアプリケーションが位置入力ボックス118Fに含まれる情報の位置検索の実行から戻る検索結果118Eのカルーセルの上に配置される。ユーザは、カルーセルに含まれる異なる結果カードをスワイプするために、検索結果118Eにおいて入力(たとえば、スワイプアクロス)を提供してもよい。ユーザは、(たとえば、テキストメッセージの一部としてその後に送信するために)特定の結果カードを編集領域116Cに挿入するために、検索結果118Eにおいて入力(たとえば、スワイプアップ)を提供し得る。
【００２９】
組み込みアプリケーションエクスペリエンス118B-2は、図1Bのアプリケーション制御118Gなどのアプリケーション制御を含み得る。各アプリケーション制御は、組み込みアプリケーションエクスペリエンスを提供している組み込みアプリケーションに関連する特定の機能を制御し得る。たとえば、アプリケーション制御118Gは、キーボードモジュール122をテキスト入力モードに戻すための「テキスト入力モードに戻る」制御、コンピューティングデバイス110の現在位置を取得するように組み込みアプリケーションを構成するための「現在位置を挿入する」制御、1つまたは複数の近くの人気のある位置を提供するように組み込みアプリケーションを構成するための「人気のある位置」制御、および位置検索を実行するように組み込みアプリケーションを構成するための「位置検索」制御を含む。
【００３０】
各組み込みアプリケーションは、キーボードモジュール122によって起動、制御、および/または終了され得る。各組み込みアプリケーションは、キーボードアプリケーション内で使用され得る情報を取得するために、キーボードモジュール122によって提供されるキーボードアプリケーションの外部で実行されるアプリケーションまたはサービスと通信するためのコンジット(または、言い換えれば、そのためのインターフェース)として動作し得る。キーボードモジュール122の一部として実行される組み込みアプリケーションによってアクセスされ得るアプリケーションまたはサービスの例には、マルチメディアストリーミングアプリケーション、マップもしくはナビゲーションアプリケーション、写真アプリケーション、検索アプリケーション、または任意の他のタイプの組み込みアプリケーションがある。
【００３１】
キーボードアプリケーションが、グラフィカルキーボードコンテキストから、キーボードアプリケーションの外部で実行される他のアプリケーションまたはサービスによって維持されるコンテンツへの迅速なアクセスを可能にする1つまたは複数の組み込みアプリケーションを実行できるようにすることによって、例示的なコンピューティングデバイスは、いくつかの異なるアプリケーションおよびアプリケーションGUIの間で切り替える必要なく、キーボードアプリケーションの外部で実行される他のアプリケーションまたはサービスによって維持されているコンテンツをユーザが迅速に取得するための方法を提供し得る。このようにして、本開示の技法は、キーボードコンテキスト内から情報を取得するために必要な時間量およびユーザ入力の数を低減し、これによって、ユーザエクスペリエンスが単純化され、コンピューティングデバイスの消費電力が低減され得る。たとえば、この技法によって、ユーザがキーボードアプリケーションの外部またはキーボードアプリケーションを呼び出しているコンテナアプリケーションの外部に存在する異なるアプリケーションにナビゲートするためのいくつかの入力を提供する必要がなくなり得る。
【００３２】
図2は、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスを示すブロック図である。図2のコンピューティングデバイス210について、図1のコンピューティングデバイス110の一例として以下で説明する。図2は、コンピューティングデバイス210の一例を示しているに過ぎず、コンピューティングデバイス210の他の多くの例が他の事例で使用されてもよい。コンピューティングデバイス210は、図2に含まれる構成要素のサブセットを含んでいてもよく、または、図2に示されていない追加の構成要素を含んでいてもよい。
【００３３】
図2の例に示されるように、コンピューティングデバイス210は、PSD212、1つまたは複数のプロセッサ240、1つまたは複数の通信ユニット242、1つまたは複数の入力構成要素244、1つまたは複数の出力構成要素246、および1つまたは複数のストレージ構成要素248を含む。プレゼンスセンシティブディスプレイ212は、ディスプレイ構成要素202およびプレゼンスセンシティブ入力構成要素204を含む。コンピューティングデバイス210のストレージ構成要素248は、UIモジュール220、キーボードモジュール222、サインインモジュール230A、および1つまたは複数のアプリケーションモジュール224を含む。キーボードモジュール222は、テキスト入力モジュール228、サインインモジュール230B、および組み込みアプリケーションモジュール232を含む。サインインモジュール230Aおよび230Bは、総称してサインインモジュール230と呼ばれる。
【００３４】
通信チャネル250は、(物理的、通信的、および/または動作的)構成要素間通信のために、構成要素212、240、242、244、246、および248の各々を相互接続し得る。いくつかの例では、通信チャネル250は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他の方法を含み得る。
【００３５】
コンピューティングデバイス210の1つまたは複数の通信ユニット242は、1つまたは複数のネットワーク上でネットワーク信号を送信および/または受信することによって、1つまたは複数のワイヤードおよび/またはワイヤレスのネットワークを介して外部デバイスと通信し得る。通信ユニット242の例には、ネットワークインターフェースカード(たとえば、Ethernetカードなど)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または情報を送信および/もしくは受信することができる任意の他のタイプのデバイスがある。通信ユニット242の他の例には、短波無線、セルラーデータ無線、ワイヤレスネットワーク無線、ならびにユニバーサルシリアルバス(USB)コントローラがあり得る。
【００３６】
コンピューティングデバイス210の1つまたは複数の入力構成要素244は、入力を受信し得る。入力の例には、タクティル、オーディオ、およびビデオ入力がある。一例では、コンピューティングデバイス210の入力構成要素242は、プレゼンスセンシティブ入力デバイス(たとえば、タッチセンシティブスクリーン、PSD)、マウス、キーボード、音声応答システム、ビデオカメラ、マイクロフォン、または人間もしくは機械からの入力を検出するための任意の他のタイプのデバイスを含む。いくつかの例では、入力構成要素242は、1つまたは複数のセンサ構成要素、1つまたは複数の位置センサ(GPS構成要素、Wi-Fi構成要素、セルラー構成要素)、1つまたは複数の温度センサ、1つまたは複数の運動センサ(たとえば、加速度計、ジャイロ)、1つまたは複数の圧力センサ(気圧計など)、1つまたは複数の周囲光センサ、および1つまたは複数の他のセンサ(マイク、カメラ、赤外近接センサ、湿度計など)を含み得る。他のいくつかの非限定的な例を挙げれば、他のセンサには、心拍数センサ、磁力計、グルコースセンサ、湿度計センサ、嗅覚センサ、コンパスセンサ、ステップカウンターセンサなどがあり得る。
【００３７】
コンピューティングデバイス110の1つまたは複数の出力構成要素246は、出力を生成し得る。出力の例には、タクティル、オーディオ、およびビデオ出力がある。コンピューティングデバイス210の出力構成要素246は、一例では、PSD、サウンドカード、ビデオグラフィックスアダプタカード、スピーカー、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、または人間もしくは機械への出力を生成するための任意の他のタイプのデバイスを含む。
【００３８】
コンピューティングデバイス210のPSD212は、コンピューティングデバイス110のPSD112と同様であってもよく、ディスプレイ構成要素202およびプレゼンスセンシティブ入力構成要素204を含む。ディスプレイ構成要素202は、情報がPSD212によって表示される画面であり得、プレゼンスセンシティブ入力構成要素204は、ディスプレイ構成要素202における、および/またはその近くのオブジェクトを検出し得る。1つの例示的な範囲として、プレゼンスセンシティブ入力構成要素204は、ディスプレイ構成要素202から2インチ以内にある指またはスタイラスなどのオブジェクトを検出し得る。プレゼンスセンシティブ入力構成要素204は、オブジェクトが検出されたディスプレイ構成要素202の位置(たとえば、[x,y]座標)を決定し得る。別の例示的な範囲では、プレゼンスセンシティブ入力構成要素204は、ディスプレイ構成要素202から6インチ以内にあるオブジェクトを検出することができ、他の範囲も可能である。プレゼンスセンシティブ入力構成要素204は、容量式、誘導式、および/または光学式認識技法を使用して、ユーザの指によって選択されたディスプレイ構成要素202の位置を決定し得る。いくつかの例では、プレゼンスセンシティブ入力構成要素204も、ディスプレイ構成要素202に関して説明したように、タクティル、オーディオ、またはビデオの刺激を使用してユーザに出力を提供する。図2の例では、PSD212は、ユーザインターフェース(図1Aおよび図1Bのグラフィカルユーザインターフェース114Aおよび114Bなど)を提示し得る。
【００３９】
コンピューティングデバイス210の内部構成要素として示されているが、PSD212はまた、入力および出力を送信および/または受信するためにコンピューティングデバイス210とデータパスを共有する外部構成要素を表してもよい。たとえば、一例では、PSD212は、コンピューティングデバイス210の外部パッケージ(たとえば、携帯電話の画面)内に配置され、それと物理的に接続されたコンピューティングデバイス210の内蔵構成要素を表す。別の例では、PSD212は、(たとえば、ワイヤードおよび/またはワイヤレスデータパスをコンピューティングデバイス210と共有するモニタ、プロジェクタなど)コンピューティングデバイス210のパッケージングまたはハウジングの外側に配置され、それから物理的に分離されたコンピューティングデバイス210の外部構成要素を表す。
【００４０】
コンピューティングデバイス210のPSD212は、コンピューティングデバイス210のユーザからの入力として2次元および/または3次元ジェスチャを検出し得る。たとえば、PSD212のセンサは、PSD212のセンサのしきい値距離内でのユーザの動き(たとえば、手、腕、ペン、スタイラスなどを動かす)を検出し得る。PSD212は、動きの2次元または3次元のベクトル表現を決定し、ベクトル表現を、複数の次元を有するジェスチャ入力(たとえば、手振り、ピンチ、拍手、ペンストロークなど)に関連付け得る。言い換えれば、PSD212は、PSD212が表示のために情報を出力する画面もしくは表面において、またはその近くにおいてユーザがジェスチャすることを要求することなく、多次元ジェスチャを検出することができる。代わりに、PSD212は、PSD212が表示のために情報を出力する画面または表面の近くに配置されていてもよく、そうでなくてもよいセンサで、またはその近くで実行される多次元ジェスチャを検出することができる。
【００４１】
1つまたは複数のプロセッサ240は、機能を実装し、および/またはコンピューティングデバイス210に関連付けられた命令を実行し得る。プロセッサ240の例には、アプリケーションプロセッサ、ディスプレイコントローラ、補助プロセッサ、1つまたは複数のセンサハブ、およびプロセッサ、処理ユニット、または処理デバイスとして機能するように構成された任意の他のハードウェアがある。モジュール220、222、224、228、230、および232は、コンピューティングデバイス210の様々なアクション、動作、または機能を実行するためにプロセッサ240によって動作可能であってもよい。たとえば、コンピューティングデバイス210のプロセッサ240は、プロセッサ240に動作モジュール220、222、224、228、230、および232を実行させるストレージ構成要素248によって記憶された命令を取り出し、実行し得る。命令は、プロセッサ240によって実行されると、コンピューティングデバイス210に、情報をストレージ構成要素248内に記憶させ得る。
【００４２】
コンピューティングデバイス210内の1つまたは複数のストレージ構成要素248は、コンピューティングデバイス210の動作中に処理するための情報を記憶し得る(たとえば、コンピューティングデバイス210は、コンピューティングデバイス210における実行中にモジュール220、222、224、228、230、および232によってアクセスされるデータを記憶し得る)。いくつかの例では、ストレージ構成要素248は一時メモリであり、これは、ストレージ構成要素248の主な目的は長期保存ではないことを意味する。コンピューティングデバイス210上のストレージ構成要素248は、揮発性メモリとして情報の短期記憶のために構成され、したがって、電源が切られた場合、記憶されたコンテンツを保持しない場合がある。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で知られている他の形態の揮発性メモリがある。
【００４３】
ストレージ構成要素248は、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体も含む。ストレージ構成要素248は、いくつかの例では、1つまたは複数の非一時的コンピュータ可読記憶媒体を含む。ストレージ構成要素248は、揮発性メモリによって通常記憶されるよりも大量の情報を記憶するように構成され得る。ストレージ構成要素248はさらに、不揮発性メモリ空間として情報を長期間記憶するように構成され、電源オン/オフサイクル後に情報を保持し得る。不揮発性メモリの例には、磁気ハードディスク、光ディスク、フロッピーディスク、フラッシュメモリ、または電気的プログラマブルメモリ(EPROM)または電気的消去可能プログラマブル(EEPROM)メモリの形式がある。ストレージ構成要素248は、モジュール220、222、224、228、230、および232に関連付けられたプログラム命令および/または情報(たとえば、データ)を記憶し得る。ストレージ構成要素248は、モジュール220、222、224、228、230、および232に関連付けられたデータまたは他の情報を記憶するように構成されたメモリを含み得る。
【００４４】
UIモジュール220は、図1のコンピューティングデバイス110のUIモジュール120のすべての機能を含み、コンピューティングデバイス210が、ユーザからの入力を処理するためにプレゼンスセンシティブディスプレイ212において提供するユーザインターフェース(たとえば、ユーザインターフェース114Aおよび114B)を管理するためのUIモジュール120と同様の動作を実行し得る。たとえば、コンピューティングデバイス210のUIモジュール220は、キーボードレイアウト(たとえば、英語のQWERTYキーボードなど)についてキーボードモジュール222に問い合わせることができる。UIモジュール220は、通信チャネル250を介してキーボードレイアウトの要求をキーボードモジュール222に送信し得る。キーボードモジュール222は、要求を受信し、キーボードレイアウトに関連付けられたデータでUIモジュール220に応答し得る。UIモジュール220は、通信チャネル250を介してキーボードレイアウトデータを受信し、そのデータを使用してユーザインターフェースを生成し得る。UIモジュール220は、通信チャネル250を介して表示コマンドおよびデータを送信して、PSD212に、PSD212においてユーザインターフェースを提示させ得る。
【００４５】
いくつかの例では、UIモジュール220は、PSD212において検出された1つまたは複数のユーザ入力の指示を受信し、ユーザ入力に関する情報をキーボードモジュール222に出力してもよい。たとえば、PSD212は、ユーザ入力を検出し、ユーザ入力に関するデータをUIモジュール220に送信し得る。UIモジュール220は、検出された入力に基づいて1つまたは複数のタッチイベントを生成し得る。タッチイベントは、ユーザ入力の位置成分(たとえば、[x,y]座標)、時間成分(たとえば、いつユーザ入力が受信されたか)、力成分(たとえば、ユーザ入力によって加えられる圧力の量)、またはユーザ入力に関する他のデータ(たとえば、速度、加速度、方向、密度など)など、ユーザ入力を特徴づける情報を含み得る。
【００４６】
ユーザ入力から生成されたタッチイベントの位置情報に基づいて、UIモジュール220は、検出されたユーザ入力がグラフィカルキーボードに関連付けられていると判断し得る。UIモジュール220は、さらなる解釈のために、1つまたは複数のタッチイベントの指示をキーボードモジュール222に送信してもよい。キーボードモジュール222は、UIモジュール220から受信されたタッチイベントに基づいて、検出されたユーザ入力がグラフィカルキーボードの1つまたは複数のキーの初期選択を表すと判断し得る。
【００４７】
アプリケーションモジュール224は、統合された図像記号フレーズ予測を有するグラフィカルキーボードに依存し得るコンピューティングデバイス210で実行され、そこからアクセス可能な様々な個々のアプリケーションおよびサービスのすべてを表す。コンピューティングデバイス210のユーザは、1つまたは複数のアプリケーションモジュール224に関連付けられたグラフィカルユーザインターフェースと対話して、コンピューティングデバイス210に動作を実行させる、または機能を実行させ得る。アプリケーションモジュール224の多数の例が存在し得、フィットネスアプリケーション、カレンダーアプリケーション、パーソナルアシスタントもしくは予測エンジン、検索アプリケーション、マップもしくはナビゲーションアプリケーション、輸送サービスアプリケーション(たとえば、バスもしくは列車追跡アプリケーション)、ソーシャルメディアアプリケーション、ゲームアプリケーション、電子メールアプリケーション、チャットもしくはメッセージングアプリケーション、インターネットブラウザアプリケーション、またはコンピューティングデバイス210において実行される可能性のある他のすべてのアプリケーションを含み得る。
【００４８】
キーボードモジュール222は、図1のコンピューティングデバイス110のキーボードモジュール122のすべての機能を含み、キーボードモジュール222の外部で実行される他のアプリケーションまたはサービスによって通常維持されるコンテンツへのアクセスを、グラフィカルキーボード内から提供するためのキーボードモジュール122と同様の動作を実行することができる。キーボードモジュール222は、キーボードモジュール222の機能を実行し得る、テキスト入力モジュール228、サインインモジュール230、および組み込みアプリケーションモジュール232など様々なサブモジュールを含んでいてよい。
【００４９】
テキスト入力モジュール228は、1つまたは複数のタッチイベントを入力として受信し、1つまたは複数の文字がタッチイベントを定義する可能性または精度を示す信頼度または空間モデルスコアとともに、1つまたは複数のタッチイベントを表す可能性のある文字または文字のシーケンスを出力する空間モデルを含み得る。言い換えれば、テキスト入力モジュール228の空間モデルは、キーボードの1つまたは複数のキーの選択としてタッチイベントを推測し、1つまたは複数のキーの選択に基づいて、文字または文字のシーケンスを出力し得る。
【００５０】
テキスト入力モジュール228は、言語モデルをさらに含んでいてもよい。キーボードモジュール222は、テキスト入力モードで動作し、テキスト入力モジュール228の言語モデルは、文字または文字シーケンスを入力として受信し、言語モデルが(たとえば、記述言語のセンテンスなど)所与の言語コンテキストの入力として受信する文字シーケンスの潜在的な置換として辞書から識別する1つまたは複数の候補文字、単語、またはフレーズを出力し得る。キーボードモジュール222によって、UIモジュール220は、ユーザインターフェース114Aおよび114Bの編集領域116Cに候補単語のうちの1つまたは複数を提示し得る。
【００５１】
組み込みアプリケーションモジュール232は、そうでなければキーボードモジュール222によって提供されるキーボードGUIの外部でナビゲートすることによってのみアクセス可能であり得る情報を取得するためのそれぞれのコンジットとして各々機能する1つまたは複数の組み込みアプリケーションを表す。キーボードモジュール222は、キーボードモジュール222が従来のグラフィカルキーボードと同様に機能するテキスト入力モードでの動作と、キーボードモジュール222が1つまたは複数の統合された組み込みアプリケーションを実行し、組み込みアプリケーションエクスペリエンスを提供するための様々な動作を実行する組み込みアプリケーションモードでの動作との間を切り替え得る。組み込みアプリケーションモジュール232の各組み込みアプリケーションは、キーボードモジュール222によって管理されてもよく、キーボードモジュール222の裁量および制御で実行されてもよい。たとえば、キーボードモジュール222とは独立して実行されるアプリケーションモジュール224の各々とは異なり、キーボードモジュール222は、プロセッサ240において実行される各組み込みアプリケーションスレッドを開始し、終了し得る。キーボードモジュール222は、組み込みアプリケーションモジュール232の各々に代わってメモリおよび/または記憶スペースを要求することがある。
【００５２】
キーボードアプリケーションの外部でユーザエクスペリエンスを提供するアプリケーションモジュール224とは対照的に、組み込みアプリケーションモジュール232は、キーボードモジュール222によって提供されるキーボードGUI内からユーザエクスペリエンスを提供する。たとえば、アプリケーションモジュール224のメッセージングアプリケーションは、キーボードモジュール222を呼び出して、メッセージングアプリケーションのユーザインターフェース内にグラフィカルキーボードユーザインターフェースを提供してもよい。ユーザは、アプリケーションモジュール224のビデオアプリケーションに関連付けられているメッセージ内のコンテンツを共有したい場合、他のデバイスでは、メッセージングアプリケーションのユーザインターフェースから離れてそのコンテンツを取得する必要がある場合がある。しかしながら、キーボードモジュール222は、ユーザがキーボードモジュール222にビデオを起動させる入力を提供することができるインターフェース要素(たとえば、組み込みアプリケーションストリップ)、ユーザが、キーボードモジュール222および/またはメッセージングアプリケーションインターフェースによって提供されるキーボードGUIの外部でナビゲートする必要なく、メッセージで共有したいコンテンツを取得し得る組み込みアプリケーションモジュール232の組み込みアプリケーションを提供し得る。
【００５３】
キーボードモジュール222は、(たとえば、インターネットを介して)サービスプロバイダのアプリケーションまたはアプリケーション拡張リポジトリから組み込みアプリケーションモジュール232をダウンロードし、インストールしてもよい。組み込みアプリケーションモジュール232は、コンピューティングデバイス210の製造中にプリロードされてもよく、またはキーボードモジュール222を用いた初期インストールの一部としてコンピューティングデバイス210にインストールされてもよい。キーボードモジュール222は、組み込みアプリケーションストアへのアクセスを提供することができ、この組み込みアプリケーションストアから、ユーザは、特定の組み込みアプリケーションを選択するための入力を提供し、キーボードモジュール222に特定の組み込みアプリケーションのダウンロードおよびインストールを行わせ得る。
【００５４】
組み込みアプリケーションモジュール232の多数の例が存在し得、フィットネスアプリケーション、写真アプリケーション、ビデオアプリケーション、音楽アプリケーション、カレンダーアプリケーション、パーソナルアシスタントもしくは予測エンジン、検索アプリケーション、マップもしくはナビゲーションアプリケーション、輸送サービスアプリケーション(たとえば、バスもしくは列車追跡アプリケーション)、ソーシャルメディアアプリケーション、ゲームアプリケーション、電子メールアプリケーション、チャットもしくはメッセージングアプリケーション、インターネットブラウザアプリケーション、またはコンピューティングデバイス210において実行される可能性のある他のすべての組み込みアプリケーションを含み得る。
【００５５】
いくつかの場合には、組み込みアプリケーションモジュール232は、個人もしくはクラウドベースのユーザアカウントまたは他の「個人情報」に関連付けられ得る。サインインモジュール230によって、ユーザは、キーボードモジュール222がキーボードモジュール222によって実行される1つまたは複数の組み込みアプリケーションモジュール232に関連付けられた個人情報またはクラウドベースのユーザアカウントにアクセスできるようにする資格証明を(たとえば、キーボードモジュール222によって提供されるグラフィカルキーボード内から、またはキーボードモジュール222の外部からの設定メニューもしくは他のインターフェースを介して)提供することができる。
【００５６】
サインインモジュール230Aは、コンピューティングデバイス210のオペレーティングプラットフォームまたはオペレーティングシステムの構成要素またはモジュールを表し、サインインモジュール230Bは、キーボードモジュール222の構成要素またはモジュールを表す。組み合わせて、サインインモジュール230は、キーボードモジュール222に代わって、ユーザ資格証明を取得し、資格証明に基づいて情報へのアクセスを取得し、取り消すための以下に説明する機能を提供する。言い換えれば、サインインモジュール230を使用して、キーボードモジュール222は、キーボードモジュール222からサインインフローを開始し得るが、プライバシーを保護するために、サインインモジュール230Aによってキーボードモジュール222の外部で実際のサインインが行われ得る。キーボードモジュール222は、キーボードモジュール222に関連付けられたセキュリティ許可に応じて、サインインモジュール230Aと230Bとの間で切り替わり得る。
【００５７】
たとえば、ユーザの個人情報を利用し、記憶するための明示的な許可をユーザから取得した後、アプリケーションモジュール224からの検索アプリケーションは、ユーザとの検索履歴の関連付け(たとえば、ユーザを識別する提供された資格証明に関連付けられたユーザアカウントなど)を維持し得る。検索アプリケーションは、リモートコンピューティングデバイス(たとえば、クラウド内のサーバ)における検索履歴、または検索履歴のコピーを維持する場合がある。キーボードモジュール222によって提供されるグラフィカルキーボード内から、サインインモジュール230は、コンピューティングデバイス210のオペレーティングシステムのセキュリティ構成要素を呼び出して、セキュリティ構成要素が検索履歴にアクセスするためのユーザの資格証明を取得することを要求することができ、資格証明を使用して、セキュリティ構成要素は、組み込みアプリケーションモジュール232からの対応する検索関連の組み込みアプリケーションが、リモートコンピューティングデバイスに記憶された検索履歴にアクセスできるようにサインインモジュール230を許可し得る。
【００５８】
検索履歴は、ユーザがキーボードモジュール222およびサインオンモジュール230によって提供される機能を使用してアクセスできる個人情報の一例である。個人情報の他の例には、他のアプリケーションモジュール224によって維持される非検索情報がある(たとえば、個人の写真、電子メール、カレンダーの招待状など)。個人情報の例として、アプリケーションに関連付けられた「ゼロ状態」情報も含まれる。言い換えれば、アプリケーションの記憶された個人のゼロ状態情報にアクセスすることによって、キーボードモジュール222は、組み込みアプリケーションモジュール232のユーザエクスペリエンスが、ユーザがそのスタンドアロンアプリケーションと最後に対話した、対応するスタンドアロンアプリケーションの外観に似て見えるようにすることができる。
【００５９】
組み込みアプリケーションモジュール232に個人情報へのアクセスを提供することに加えて、サインインモジュール230は、同様にユーザが選択する任意の時点で個人情報へのアクセスを取り消すことができる。すなわち、サインインモジュールは、キーボードモジュール222のユーザがキーボードモジュール222からサインアウトする方法を提供し、組み込みアプリケーションモジュール232のいずれかがユーザの個人情報にアクセスするのを防ぎ得る。
【００６０】
いくつかの事例では、サインインモジュール230によって、ユーザは、キーボードモジュール222がキーボードモジュール222によって実行される1つまたは複数の組み込みアプリケーションモジュール232に関連付けられた個人情報またはクラウドベースのユーザアカウントにアクセスできるようにする資格証明を、キーボードモジュール222によって提供されるグラフィカルキーボード内から提供することができ得る。追加または代替として、サインインモジュール230によって、ユーザは、キーボードモジュール222がキーボードモジュール222によって実行される1つまたは複数の組み込みアプリケーションモジュール232に関連付けられた個人情報またはクラウドベースのユーザアカウントにアクセスできるようにする資格証明を、外部エンティティ(たとえば、外部キーボードモジュール222からの設定メニューまたは他のインターフェース)を介して提供することができる。たとえば、ユーザは、サインインモジュール230がユーザの個人情報にアクセスするための認証として使用し得る資格証明をアプリケーションモジュール224の1つに提供してもよい。ユーザは、サインインモジュール230がユーザの個人情報にアクセスするための認証として使用し得る資格証明を、コンピューティングデバイス210のオペレーティングシステムまたはオペレーティングプラットフォームに提供してもよい。このようにして、ユーザが明示的にログインする必要がある代わりに、キーボードモジュール222は、ユーザが外部エンティティにすでにサインインしているときに、個人化されたキーボードエクスペリエンスを自動的に提供し得る。
【００６１】
サインインモジュール230は、アプリケーション224ならびにコンピューティングデバイス210からアクセス可能な他のアプリケーションおよびサービスと通信し、そのようなアプリケーションおよびサービスによって維持されるセキュリティ保護された情報を取得し得る。たとえば、サインインモジュール230は、ユーザのために取得された資格証明を妥当性検査のためにリモートコンピューティングデバイス(たとえばサーバ)に送信し得る。サインインモジュール230は、妥当性検査のために、コンピューティングデバイス210にローカルで実行されるローカルアプリケーションまたはプロセスに資格証明を送信し得る。いずれの場合にも、妥当性検査のための資格証明の出力に応答して、キーボードモジュール222のサインインモジュール230は、妥当性検査に関して認証または拒否を受信し得る。たとえば、サインインモジュール230は、資格証明を妥当性検査するメッセージを受信し、それによって、キーボードモジュール222が資格証明に関連付けられたセキュリティ保護された情報を利用し、それにアクセスすることを許可し得る。代替的に、サインインモジュール230は、資格証明を拒否するメッセージを受信し、それによって、キーボードモジュール222が資格証明に関連付けられたセキュリティ保護された情報を利用し、それにアクセスすることを防止し得る。
【００６２】
図3は、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成されたコンピューティングデバイスの例示的な動作を示すフローチャートである。図3の動作は、図1Aおよび図1Bのコンピューティングデバイス110または図2のコンピューティングデバイス210などのコンピューティングデバイスの1つまたは複数のプロセッサによって実行され得る。単に説明の目的で、図3は、図1Aおよび図1Bのコンピューティングデバイス110の文脈内で以下に説明される。
【００６３】
動作中、コンピューティングデバイス110は、表示のためにグラフィカルキーボードを出力し得る(300)。たとえば、コンピューティングデバイス110において実行されるチャットアプリケーションは、PSD112においてグラフィカルキーボード116Bを提示するために、キーボードモジュール122(たとえば、チャットアプリケーションとは別個のスタンドアロンアプリケーションまたはコンピューティングデバイス110の機能)を呼び出し得る。
【００６４】
コンピューティングデバイス110は、表示のために、組み込みアプリケーションストリップを含むグラフィカルキーボードを出力することができる(300)。たとえば、コンピューティングデバイス110のユーザは、コンピューティングデバイス110に、メッセージングアプリケーションを実行させる入力をUID112に提供し得る。UIモジュール120は、UIモジュール120に、UID112において表示するために、ユーザインターフェース114Aを出力させる情報をメッセージングアプリケーションから受信し得る。ユーザインターフェース114Aは、送信および受信されたメッセージを表示するための出力領域116A、メッセージとして送信され得るコンテンツをプレビューするための編集領域116C、および編集領域116Cに挿入されるコンテンツを構成するためのグラフィカルキーボード116Bを含む。
【００６５】
UIモジュール120は、キーボードモジュール122から直接またはメッセージングアプリケーションを介して、UID112においてグラフィカルキーボード116Bがどのように表示されるかに関してUIモジュール120に指示する情報を受信し得る。たとえば、キーボードモジュール122は、UIモジュール120に、キー118A、組み込みアプリケーションストリップ118D、および最初の組み込みアプリケーションエクスペリエンス118B-1を表示させるための命令をUIモジュールに送信してもよい。他の例では、キーボードモジュール122は、UIモジュール120に、キー118A、組み込みアプリケーションストリップ118D、および最初の組み込みアプリケーションエクスペリエンス118B-1を表示させるためにUIモジュール120に渡される命令をメッセージングアプリケーションに送信してもよい。
【００６６】
コンピューティングデバイス110は、組み込みアプリケーションストリップを選択するユーザ入力を受信し得る(302)。たとえば、コンピューティングデバイス110のユーザは、キーボードモジュール122のマップまたはナビゲーション組み込みアプリケーションと対話することを望む場合がある。ユーザは、組み込みアプリケーションストリップ118Dが表示されるUID112の位置においてまたはその近くでジェスチャしてもよい。
【００６７】
コンピューティングデバイス110は、ユーザ入力に基づいて特定の組み込みアプリケーションを決定し得る(304)。たとえば、キーボードモジュール122は、入力の位置または他の特性を示す情報をUIモジュール120およびUID112から受信し、入力がマップまたはナビゲーション組み込みアプリケーションに関連付けられた組み込みアプリケーションストリップ118D内のグラフィカルボタンの選択に対応することを決定し得る。
【００６８】
コンピューティングデバイス110は、特定のアプリケーションを起動することができる(306)。たとえば、組み込みアプリケーションストリップ118Dを選択するユーザ入力の検出に応答して、および特定の組み込みアプリケーションの決定に応答して、キーボードモジュール122は、マップまたはナビゲーション組み込みアプリケーションが、キーボードモジュール122の制御下にある1つまたは複数のアプリケーションスレッドまたはプロセスとして実行されるように、マップまたはナビゲーション組み込みアプリケーションを起動し、または呼び出し得る。
【００６９】
コンピューティングデバイス110は、特定の組み込みアプリケーションに関連付けられた組み込みアプリケーションエクスペリエンスを表示のために出力し得る(308)。たとえば、マップまたはナビゲーション組み込みアプリケーションを起動することによって、キーボードモジュール122は、UIモジュール120およびUID112に、最初の組み込みアプリケーションエクスペリエンスを置き換える第2の組み込みアプリケーションエクスペリエンスを表示させる。キーボードモジュール122は、UIモジュール120に、キー118A、組み込みアプリケーションストリップ118D、およびマップまたはナビゲーション組み込みアプリケーションに関連する後続の組み込みアプリケーションエクスペリエンス118B-2を表示させるための命令をUIモジュールに送信してもよい。
【００７０】
コンピューティングデバイス110は、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力を受信し得る(310)。たとえば、組み込みアプリケーションエクスペリエンス118B-2から、コンピューティングデバイス110のユーザは、位置入力ボックス118Fに「映画館」の位置検索クエリを入力するように、キー118Aにおいて入力を提供し得る。
【００７１】
コンピューティングデバイス110は、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力に基づいて、1つまたは複数の動作を実行し得る(312)。たとえば、キーボードモジュール122は、マップまたはナビゲーションタイプの組み込みアプリケーションが位置入力ボックス118Fに含まれる情報の位置検索の実行から戻る検索結果118Eのカルーセルを取得し得る。ユーザは、カルーセルに含まれる異なる結果カードをスワイプするために、検索結果118Eにおいて入力(たとえば、スワイプアクロス)を提供してもよい。ユーザは、(たとえば、テキストメッセージの一部としてその後送信するために)特定の結果カードを編集領域116Cに挿入するために、検索結果118Eにおいて入力(たとえば、スワイプアップ)を提供し得る。
【００７２】
コンピューティングデバイス110は、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力に応答して実行し得る他の多くの動作がある。たとえば、キーボードモジュール122は、カレンダータイプの組み込みアプリケーションによって維持またはアクセスされるカレンダーに関連付けられたカレンダーエントリを修正してもよい。キーボードモジュール122は、組み込みアプリケーションによって提供されるメディアコンテンツ(たとえば、映画、音楽、テレビ番組、ビデオクリップ、ゲームなど)をストリーミングし得る。キーボードモジュール122は、写真管理タイプの組み込みアプリケーションによって提供される写真を表示または検索してもよい。キーボードモジュール122は、検索タイプの組み込みアプリケーションによって提供される検索結果を表示してもよい。
【００７３】
図4A〜図4Cは、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。図4A〜図4Cは、それぞれ、例示的なグラフィカルユーザインターフェース614A〜614C(総称してユーザインターフェース614)を示す。しかしながら、グラフィカルユーザインターフェースの多くの他の例が他の事例で使用されてもよい。グラフィカルユーザインターフェース614の各々は、図1A、図1B、および図2のコンピューティングデバイス110または210によって表示されるグラフィカルユーザインターフェースに対応し得る。図4A〜図4Cは、コンピューティングデバイス110の文脈で以下に説明される。
【００７４】
グラフィカルユーザインターフェース614は、出力領域616A、編集領域616C、およびグラフィカルキーボード616Bを含む。グラフィカルキーボード616Bは、複数のキー618Aと、組み込みアプリケーションエクスペリエンス618B-1および組み込みアプリケーションストリップ618D-1、組み込みアプリケーションエクスペリエンス618B-2および組み込みアプリケーションストリップ618D-2、または組み込みアプリケーションエクスペリエンス618B-3および組み込みアプリケーションストリップ618D-3を含む。
【００７５】
図4A〜図4Cは、キーボードモジュール122が、強調表示、色変更などを介して、組み込みアプリケーションストリップに外観を変化させて、どの特定の組み込みアプリケーションが実行されており、組み込みアプリケーションエクスペリエンスを提供しているかをユーザに示す方法を示す。たとえば、図4Aに示すように、組み込みアプリケーションストリップ618D-1は、組み込みデバイスエクスペリエンス618B-1がキーボードモジュール122によって実行されている検索タイプの組み込みアプリケーションに関連付けられていることをコンピューティングデバイス110のユーザに示すために強調表示されている検索要素を示す。図4Bに示すように、組み込みアプリケーションストリップ618D-2は、組み込みアプリケーションエクスペリエンス618B-2がキーボードモジュール122によって実行されているマップまたはナビゲーションタイプの組み込みアプリケーションに関連付けられていることをコンピューティングデバイス110のユーザに示すために強調表示されるマップまたはナビゲーション要素を示す。図4Cに示すように、組み込みアプリケーションストリップ618D-3は、組み込みアプリケーションエクスペリエンス618B-3がキーボードモジュール122によって実行されているビデオタイプの組み込みアプリケーションに関連付けられていることをコンピューティングデバイス110のユーザに示すために強調表示されるビデオ要素を示す。
【００７６】
図4A〜図4Cは、キーボードモジュール122が、どのように、組み込みアプリケーションエクスペリエンスの入力領域に、どの特定の組み込みアプリケーションが実行され、組み込みアプリケーションエクスペリエンスを提供しているかをユーザに示すことができることも示す。たとえば、図4Aに示されるように、組み込みアプリケーションエクスペリエンス618B-1は、入力領域の隣に検索要素を含み、図4Bに示されるように、組み込みアプリケーションストリップ618D-2は、入力領域の隣にマップまたはナビゲーション要素を含み、図4Cに示されるように、組み込みアプリケーションエクスペリエンス618B-3は、入力領域の隣にビデオ要素を含む。
【００７７】
図5Aおよび図5Bは、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。図5Aおよび図5Bは、それぞれ、例示的なグラフィカルユーザインターフェース714A〜714C(総称してユーザインターフェース714)を示す。しかしながら、グラフィカルユーザインターフェースの多くの他の例が他の事例で使用されてもよい。グラフィカルユーザインターフェース714の各々は、図1A、図1B、および図2のコンピューティングデバイス110または210によって表示されるグラフィカルユーザインターフェースに対応し得る。図5Aおよび図5Bは、コンピューティングデバイス110の文脈で以下に説明される。
【００７８】
グラフィカルユーザインターフェース714は、出力領域716A、編集領域716C、およびグラフィカルキーボード716Bを含む。グラフィカルキーボード716Bは、複数のキー718A、組み込みアプリケーションエクスペリエンス718B、および組み込みアプリケーションストリップ718Dを含む。
【００７９】
いくつかの場合には、キーボードモジュール122は、UID112に、キー718Aの上またはキー718Aと編集領域716Cとの間に組み込みアプリケーションストリップ718Dを表示させてもよいが、他の例では、キーボードモジュール122は、UID112に、グラフィカルキーボード716Bの異なる位置にアプリケーションストリップ718Dを表示させてもよい。たとえば、図5Aは、キーボードモジュール122がどのようにしてUID112にキー118Aの左または右に組み込みアプリケーションストリップ718Dを表示させることができるかを示す。図5Bは、キーボードモジュール122がどのようにしてUID112にキー118Aの下に組み込みアプリケーションストリップ718Dを表示させることができるかを示す。キーボードモジュール122は、UID112に、有用性を向上させるグラフィカルキーボード716Bの任意の部分内に組み込みアプリケーションストリップ718を表示させることができる。言い換えれば、組み込みアプリケーションストリップ718Dは、グラフィカルキーボード716B内のどこにでも配置することができる。いくつかの場合には、キーボードモジュール122は、UID112に、組み込みアプリケーションストリップ718Dを複数の部分に分割させ、組み込みアプリケーションストリップ718Dの一部はグラフィカルキーボード716Bの一部分に配置され、組み込みアプリケーションストリップ718Dの他の部分はグラフィカルキーボード716Bの異なる部分に配置される。
【００８０】
図6Aおよび図6Bは、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。図6Aおよび図6Bは、それぞれ、例示的なグラフィカルユーザインターフェース814A〜814B(総称してユーザインターフェース814)を示す。しかしながら、グラフィカルユーザインターフェースの多くの他の例が他の事例で使用されてもよい。グラフィカルユーザインターフェース814の各々は、図1A、図1B、および図2のコンピューティングデバイス110または210によって表示されるグラフィカルユーザインターフェースに対応し得る。図6Aおよび図6Bは、コンピューティングデバイス110の文脈で以下に説明される。
【００８１】
グラフィカルユーザインターフェース814は、出力領域816A、編集領域816C、およびグラフィカルキーボード816Bを含む。グラフィカルキーボード816Bは、複数のキー818A、組み込みアプリケーションエクスペリエンス818B-1および組み込みアプリケーションストリップ818D-1、または組み込みアプリケーションエクスペリエンス818B-2および組み込みアプリケーションストリップ818D-2を含む。
【００８２】
図6Aおよび図6Bは、キーボードモジュール122が組み込みアプリケーションストリップ818D-1および818D-2を静止させる一方で、キーボードモジュール122が、組み込みアプリケーションストリップ818D-1および818D-2をスクロール可能にする、または複数のタブまたはページを持たせる方法を示す。たとえば、図6Aは、キーボードモジュール122がどのようにしてUID112にグラフィカルボタンの第1のグループを含む組み込みアプリケーションストリップ818D-1を表示させ得るかを示す。図6Bは、組み込みアプリケーションストリップ818D-1が表示される位置においてUID112における入力を検出した後、キーボードモジュール122がUID112に第2のグループのグラフィカルボタンを含む組み込みアプリケーションストリップ818D-2を表示させる方法を示す。グラフィカルボタンの第1のグループは、ボタンの第1のページまたはタブを表し、グラフィカルボタンの第2のグループは、ボタンの異なるページまたはタブを表す。
【００８３】
図6Aは、キーボードモジュール122が、UID112に、組み込みアプリケーションストリップ818D-1を表示しながら、組み込みアプリケーションエクスペリエンス818B-1をデフォルトの組み込みアプリケーションエクスペリエンスとして表示させる方法をさらに示す。図6Bは、組み込みアプリケーションストリップ818D-1が表示される位置においてUID112における入力を検出した後、キーボードモジュール122が、UID112に、組み込みアプリケーションストリップ818D-2を表示しながら、組み込みアプリケーションエクスペリエンス818B-2をデフォルトの組み込みアプリケーションエクスペリエンスとして表示させる方法を示す。ページまたは異なるデフォルトの組み込みアプリケーションエクスペリエンスを有効にすることによって、キーボードモジュール122は、異なる組み込みアプリケーションエクスペリエンスに切り替えるためにユーザに要求される入力の量が低減され得るので、グラフィカルキーボード816Bの有用性を向上させ得る。
【００８４】
図7Aおよび図7Bは、本開示の1つまたは複数の態様による、1つまたは複数の組み込みアプリケーションを実行するグラフィカルキーボードを提示するように構成された例示的なコンピューティングデバイスの例示的なグラフィカルユーザインターフェースを示す概念図である。図7A〜図7Bは、それぞれ、例示的なグラフィカルユーザインターフェース914A〜914B(総称してユーザインターフェース914)を示す。しかしながら、グラフィカルユーザインターフェースの多くの他の例が他の事例で使用されてもよい。グラフィカルユーザインターフェース914の各々は、図1A、図1B、および図2のコンピューティングデバイス110または210によって表示されるグラフィカルユーザインターフェースに対応し得る。図7Aおよび図7Bは、コンピューティングデバイス110の文脈で以下に説明される。
【００８５】
グラフィカルユーザインターフェース914は、出力領域916A、編集領域916C、およびグラフィカルキーボード916Bを含む。グラフィカルキーボード916Bは、複数のキー918A-1、または複数のキー918A-2、組み込みアプリケーションエクスペリエンス918B、および組み込みアプリケーションストリップ918Dを含む。
【００８６】
図7Aに示されているように、いくつかの例では、テキスト入力モードで動作するとき、キーボードモジュール122によって、グラフィカルキーボード116Bは、キー918A-1のうちの1つとしてグラフィカル要素918Cを含むことができる。グラフィカル要素918Cは、グラフィカルキーボード116B内からアクセス可能な様々な組み込みアプリケーションエクスペリエンスのうちの1つまたは複数を手動で呼び出すためのグラフィカルキーボード116Bの選択可能な要素(たとえば、アイコン、画像、キーボードキー、または他のグラフィカル要素)を表す。
【００８７】
たとえば、図7Bに示されるように、グラフィカル要素918Cが表示されるUID112の位置における入力の検出に応答して、キーボードモジュール122は、ユーザがグラフィカル要素918Cを選択することを決定し得る。キーボードモジュール122は、テキスト入力モードでの動作から組み込みアプリケーションモードでの動作に移行し、グラフィカル要素918Cに関連付けられた入力の検出に応答して、UID112に、グラフィカルキー918A-1の代わりにグラフィカルキー918A-2を表示させ得る。組み込みアプリケーションモードで動作している間、キーボードモジュール122によって、グラフィカルキーボードは、組み込みアプリケーションエクスペリエンス918Bおよび/または組み込みアプリケーションストリップ918Dをグラフィカルキーボード916B内に表示させ得る。
【００８８】
本開示のいくつかの態様は、コンピューティングデバイスにおいて実行されるキーボードアプリケーションによって、表示のために、組み込みアプリケーションストリップを含むグラフィカルキーボードを出力することを含む。いくつかの場合には、組み込みアプリケーションストリップは、1つまたは複数のグラフィカル要素を含み、各グラフィカル要素は、キーボードアプリケーションによって各々実行可能な複数の組み込みアプリケーションからの特定の組み込みアプリケーションに対応する。複数の組み込みアプリケーションは、いくつかの例では、検索タイプの組み込みアプリケーション、カレンダータイプの組み込みアプリケーション、ビデオタイプの組み込みアプリケーション、写真タイプの組み込みアプリケーション、マップまたはナビゲーションタイプの組み込みアプリケーション、音楽タイプの組み込みアプリケーションなどを含む。
【００８９】
いくつかの態様は、組み込みアプリケーションストリップを選択するユーザ入力の受信、キーボードアプリケーションによる、ユーザ入力に基づいた、特定の組み込みアプリケーションストリップの決定、およびキーボードアプリケーションによる、特定の組み込みアプリケーションの起動を含む。いくつかの場合には、キーボードアプリケーションは、組み込みアプリケーションストリップを選択するユーザ入力の受信に応答して、組み込みアプリケーションストリップ内で、特定の組み込みアプリケーションのグラフィカル要素を強調表示する。いくつかの場合には、特定の組み込みアプリケーションを起動することは、特定の組み込みアプリケーションの動作を実行するための1つまたは複数のアプリケーションスレッドをキーボードアプリケーションによって開始することを含む。
【００９０】
いくつかの態様は、キーボードアプリケーションによって、特定の組み込みアプリケーションに関連付けられた組み込みアプリケーションエクスペリエンスを表示のために出力することを含む。いくつかの例では、組み込みアプリケーションエクスペリエンスを出力することは、グラフィカルキーボードの一部またはすべてのグラフィカルキーの代わりに、特定の組み込みアプリケーションのGUIを表示することを含む。いくつかの場合には、特定の組み込みアプリケーションエクスペリエンスは、特定の組み込みアプリケーションに固有のアプリケーション制御を含む。いくつかの場合には、特定の組み込みアプリケーションエクスペリエンスは、1つまたは複数のコンテンツカードなどの選択可能なコンテンツを含む。
【００９１】
態様のいくつかは、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力を受信すること、および組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力に基づいて動作を実行することを含む。いくつかの場合には、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力は、組み込みアプリケーションエクスペリエンスのコンテンツを選択するための入力を含む。また、いくつかの場合には、組み込みアプリケーションエクスペリエンスに関連付けられたユーザ入力に基づいて動作を実行することには、キーボードアプリケーションのグラフィカルキーボードで構成されたテキストの本文に選択されたコンテンツを入力することを含む。いくつかの事例では、テキストの本文は、メッセージもしくはドキュメント、またはメッセージもしくはドキュメントを作成するためのGUIの編集領域である。
【００９２】
態様のうちのいくつかは、組み込みアプリケーションストリップに関連付けられた追加のユーザ入力を受信すること、ならびに、追加のユーザ入力に応答して、キーボードアプリケーションによって異なる組み込みアプリケーションを起動すること、およびキーボードアプリケーションによって異なる組み込みアプリケーションに関連する動作を実行することを含む。いくつかの場合には、異なる組み込みアプリケーションに関連する動作を実行することは、以前表示された組み込みアプリケーションエクスペリエンスを、異なるアプリケーションに関連付けられた新しい組み込みアプリケーションエクスペリエンスに置き換えることを含む。
【００９３】
いくつかの態様では、組み込みアプリケーションストリップはスクロール可能である。いくつかの態様では、組み込みアプリケーションストリップは、選択可能なグラフィカル要素の複数のページを含む。いくつかの態様では、組み込みアプリケーションストリップは、グラフィカルキーボードのキーのうちの少なくとも一部の上に配置される。いくつかの態様では、組み込みアプリケーションストリップは、グラフィカルキーボードのキーのうちの少なくとも一部の下または片側に配置される。いくつかの態様では、組み込みアプリケーションストリップの一部は、グラフィカルキーボードのあるエリアに配置され、組み込みアプリケーションストリップの他の部分は、グラフィカルキーボードの他のエリアに配置される。
【００９４】
態様のうちのいくつかは、グラフィカルキーボードは、選択されると、キーボードアプリケーションに、組み込みアプリケーションストリップを表示させる特定のグラフィカル要素またはキーを含む。
【００９５】
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体に記憶され、またはそれを介して送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的な有形のコンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のために命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスすることができる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【００９６】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、もしくは他の光ディスク記憶装置、磁気ディスク記憶装置、もしくは他の磁気記憶装置、フラッシュメモリ、または命令もしくはデータ構造の形式で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。また、任意の接続は、正確には、コンピュータ可読媒体と呼ばれる。たとえば、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形の記憶媒体が対象となることを理解されたい。使用されるディスクおよびディスクは、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびブルーレイディスクを含む、通常、ディスク(disks)は、磁気的にデータを再生し、ディスク(discs)はレーザで光学的にデータを再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるものとする。
【００９７】
命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の統合または個別の論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、使用される「プロセッサ」という用語は、上述の構造のいずれか、または記載された技法の実装に適した任意の他の構造を指し得る。加えて、いくつかの態様では、記載された機能は、専用ハードウェアおよび/またはソフトウェアモジュール内で提供されてもよい。また、この技法は、1つまたは複数の回路または論理要素に完全に実装することができる。
【００９８】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む多種多様なデバイスまたは装置で実装され得る。本開示では、開示された技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが記載されているが、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上記で説明したように、様々なユニットを、ハードウェアユニットに組み合わせるか、適切なソフトウェアおよび/またはファームウェアとともに、上述した1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてもよい。
【００９９】
様々な例について説明してきた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【０１００】
110  コンピューティングデバイス
112  プレゼンスセンシティブディスプレイ(PSD)
114  ユーザインターフェース
116A  出力領域
116B  グラフィカルキーボード
116C  編集領域
118A  グラフィカルキー
118B  組み込みアプリケーションエクスペリエンス
118D  組み込みアプリケーションストリップ
118E  検索結果
118F  検索クエリ入力ボックス
118F  位置入力ボックス
118G  アプリケーション制御
120  ユーザインターフェース(UI)モジュール
122  キーボードモジュール
202  ディスプレイ構成要素
204  プレゼンスセンシティブ入力構成要素
210  コンピューティングデバイス
212  プレゼンスセンシティブディスプレイ
220  UIモジュール
222  キーボードモジュール
224  アプリケーションモジュール
228  テキスト入力モジュール
230A  サインインモジュール
230B  サインインモジュール
232  組み込みアプリケーションモジュール
240  プロセッサ
242  通信ユニット
242  入力構成要素
244  入力構成要素
246  出力構成要素
248  ストレージ構成要素
250  通信チャネル
614  ユーザインターフェース
616A  出力領域
616B  グラフィカルキーボード
616C  編集領域
714  ユーザインターフェース
716A  出力領域
716B  グラフィカルキーボード
716C  編集領域
718A  キー
718B  組み込みアプリケーションエクスペリエンス
718D  組み込みアプリケーションストリップ
814  ユーザインターフェース
816A  出力領域
816B  グラフィカルキーボード
816C  編集領域
818A  キー
818B-1  組み込みアプリケーションエクスペリエンス
818B-2  組み込みアプリケーションエクスペリエンス
818D-1  組み込みアプリケーションストリップ
818D-2  組み込みアプリケーションストリップ
914  グラフィカルユーザインターフェース
916A  出力領域
916B  グラフィカルキーボード
916C  編集領域
918A-1  キー
918A-2  キー
918B  組み込みアプリケーションエクスペリエンス
918C  グラフィカル要素
918D  組み込みアプリケーションストリップ
【図１Ａ】
2020525933.tif 000003
【図１Ｂ】
2020525933.tif 000004
【図２】
2020525933.tif 000005
【図３】
2020525933.tif 000006
【図４Ａ】
2020525933.tif 000007
【図４Ｂ】
2020525933.tif 000008
【図４Ｃ】
2020525933.tif 000009
【図５Ａ】
2020525933.tif 000010
【図５Ｂ】
2020525933.tif 000011
【図６Ａ】
2020525933.tif 000012
【図６Ｂ】
2020525933.tif 000013
【図７Ａ】
2020525933.tif 000014
【図７Ｂ】
2020525933.tif 000015
【国際調査報告】
2020525933.tif 000016
2020525933.tif 000017