(57)【特許請求の範囲】
【請求項１】
複数の加速度プロファイルを格納する段階であって、各加速度プロファイルが、前記複数の加速度プロファイルに対応する複数の活動の1つの最中にユーザと一緒に持ち運ばれるときにモバイル装置が受けることになる加速力シーケンスに対応する段階と、
前記モバイル装置内の加速度計から加速度計データを受信する段階と、
前記加速度計データを、前記複数の加速度プロファイルのうち1つの加速度プロファイルと相関させる段階と、
前記相関された1つの加速度プロファイルに関連づけられた、前記モバイル装置のアプリケーションをアクティブ化する段階と
を含み、
前記加速力シーケンスのうち少なくとも1つが、前記モバイル装置とは別個である複数の装置の分析に基づいて予測され、
前記アプリケーションをアクティブ化する段階は、加速度プロファイルとアプリケーションとを関連づける段階を含む、コンピュータ実施方法。
【請求項２】
前記加速力シーケンスのうち少なくとも1つが、前記モバイル装置が対応するユーザに引き渡される前に前記モバイル装置に予め格納されている、請求項1に記載のコンピュータ実施方法。
【請求項３】
前記加速力シーケンスのうち少なくとも1つが、コンテンツプロバイダから前記モバイル装置にワイヤレスでダウンロードされる、請求項1に記載のコンピュータ実施方法。
【請求項４】
前記加速力シーケンスのうち少なくとも1つが、前記モバイル装置が受ける実際の加速力がリアルタイムでサンプリングされ、かつ、前記モバイル装置に格納されるトレーニングモード中に前記モバイル装置によって格納される、請求項1に記載のコンピュータ実施方法。
【請求項５】
相関させる段階が、前記受信された加速度計データをサンプリングする段階と、前記サンプリングされた加速度計データを、比較アルゴリズムを用いて前記複数の加速度プロファイルの1つまたは複数と比較して、前記サンプリングされた加速度計データが前記複数の加速度プロファイルのうち1つの加速度プロファイルと合致するかどうか判定する段階とを含む、請求項1に記載のコンピュータ実施方法。
【請求項６】
複数のアプリケーションを稼働するモバイル装置内のアプリケーションを自動的にアクティブ化する方法であって、
トレーニングモードにおいて、
モバイル装置向けのトレーニング用加速度データを受信する段階と、
前記複数のアプリケーションのうち1つのアプリケーションを起動するためのユーザ入力を受信する段階と、
前記受信された加速度データおよび前記ユーザ入力に基づいて、1つまたは複数のトレーニング用シグネチャを生成する段階と、
前記モバイル装置向けの追加加速度データおよび前記アプリケーションを起動するための追加ユーザ入力を受信する段階と、
前記1つまたは複数のトレーニング用シグネチャを適応的に改善する段階であって、前記トレーニング用シグネチャが、前記ユーザ入力が受信される時間に基づいてさらに生成される段階と、
前記モバイル装置内の加速度計から加速度計データを受信する段階と、
前記受信された加速度計データに基づいてシグネチャを生成する段階と、
前記生成されたシグネチャを、前記モバイル装置に格納されている加速度プロファイルと相関させる段階と、
前記生成されたシグネチャと相関される前記加速度プロファイルに関連づけられた、前記モバイル装置内のアプリケーションをアクティブ化する段階と
を含み、
前記アプリケーションをアクティブ化する段階は、加速度プロファイルとアプリケーションとを関連づける段階を含む方法。
【請求項７】
相関させる段階が、前記生成されたシグネチャを、前記モバイル装置に格納されている1つまたは複数の加速度プロファイルと比較する段階と、前記生成されたシグネチャと前記1つまたは複数の加速度プロファイルの1つが類似性の閾値測度内で合致するときを判定する段階とを含む、請求項6に記載の方法。
【請求項８】
トレーニング用加速度データを受信する段階が、前記モバイル装置に含まれる前記加速度計からデータを受信する段階を含む、請求項6に記載の方法。
【請求項９】
前記トレーニング用加速度データが、少なくとも2つの軸における、前記モバイル装置に関する加速度データを含む、請求項8に記載の方法。
【請求項１０】
トレーニング用加速度データを受信する段階が、前記モバイル装置に関する前記トレーニング用加速度データを、少なくとも25Hzのレートで周期的に受信する段階を含む、請求項9に記載の方法。
【請求項１１】
受信されたトレーニング用加速度データを、最近受信された所定量のトレーニング用加速度データが所与の時間に格納されるように、先入れ先出し循環バッファに格納する段階をさらに含む、請求項6に記載の方法。
【請求項１２】
前記トレーニング用シグネチャが、前記ユーザ入力が受信される曜日に基づいてさらに生成される、請求項6に記載の方法。
【請求項１３】
前記トレーニング用シグネチャが、前記ユーザ入力が受信されるときの前記モバイル装置の場所に基づいてさらに生成される、請求項6に記載の方法。
【請求項１４】
第1の時間に受信される、前記トレーニング用加速度データおよび前記アプリケーションを起動するための前記ユーザ入力に基づいて第1のトレーニング用シグネチャを生成する段階と、
前記第1の時間とは少なくとも所定の閾値だけ異なる第2の時間に受信される、第2のトレーニング用加速度データおよび前記アプリケーションを起動するための第2のユーザ入力に基づいて第2の、別個のトレーニング用シグネチャを生成する段階と
をさらに含む、請求項6に記載の方法。
【請求項１５】
前記トレーニング用シグネチャを生成する段階が、前記アプリケーションを起動するための前記ユーザ入力の受信に先立つ、所定の期間に受信される前記トレーニング用加速度データに基づいて前記トレーニング用シグネチャを生成する段階を含む、請求項6に記載の方法。
【請求項１６】
前記トレーニング用シグネチャを生成する段階が、前記アプリケーションを起動するための前記ユーザ入力の受信に続く、第2の所定の期間に受信される第2のトレーニング用加速度データに基づいて前記トレーニング用シグネチャを生成する段階をさらに含む、請求項15に記載の方法。
【請求項１７】
複数のアプリケーションを稼働するモバイル装置内のアプリケーションを自動的にアクティブ化する方法であって、
トレーニングモードにおいて、
モバイル装置向けのトレーニング用加速度データを受信する段階と、
前記複数のアプリケーションのうち1つのアプリケーションを起動するためのユーザ入力を受信する段階と、
前記受信された加速度データおよび前記ユーザ入力に基づいて、1つまたは複数のトレーニング用シグネチャを生成する段階と、
前記モバイル装置向けの追加加速度データおよび前記アプリケーションを起動するための追加ユーザ入力を受信する段階と、
前記1つまたは複数のトレーニング用シグネチャを適応的に改善する段階であって、前記トレーニング用シグネチャが、前記ユーザ入力が受信されるときの前記モバイル装置の場所に基づいてさらに生成される段階と、
前記モバイル装置内の加速度計から加速度計データを受信する段階と、
前記受信された加速度計データに基づいてシグネチャを生成する段階と、
前記生成されたシグネチャを、前記モバイル装置に格納されている加速度プロファイルと相関させる段階と、
前記生成されたシグネチャと相関される前記加速度プロファイルに関連づけられた、前記モバイル装置内のアプリケーションをアクティブ化する段階と
を含み、
前記アプリケーションをアクティブ化する段階は、加速度プロファイルとアプリケーションとを関連づける段階を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本書は、2007年11月9日に出願した、先行の米国仮出願第60/986,873号の利益を請求する。
【０００２】
本書は概して、モバイル装置内のアプリケーションを自動的にアクティブ化するシステムおよび技法について記載し、詳細には、モバイル装置内の加速度計によって取り込むことができる加速度データに基づく、アプリケーションの自動アクティブ化について記載する。
【背景技術】
【０００３】
多くの人々が、様々な種類のモバイルコンピューティング装置(たとえば、スマートフォン、携帯情報端末(PDA)、セル電話、メディアプレーヤなど)を持ち運び、モバイルコンピューティング装置を1日中使って、情報もしくはメディアコンテンツを受信し、もしくは処理し、または他者と通信する場合がある。たとえば、スマートフォンユーザは、スマートフォンを利用して、朝のジョギング中に音楽を再生し、通勤中にニュースを提供し、または職場でeメール、テキストおよび音声通信を管理する場合がある。PDAユーザは、PDAを利用して、駐車場から職場まで歩く間にカレンダ情報を表示し、または通常のフィールドコール中に地図情報を提供する場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国仮出願第60/986,873号
【発明の概要】
【課題を解決するための手段】
【０００５】
本書は、モバイル装置によって測定された現在のリアルタイム加速度データと、モバイル装置に格納されている加速度プロファイルの比較に基づいて、モバイル装置上でアプリケーションを自動的にアクティブ化するシステムおよび技法について記載する。格納されている各加速度プロファイルは、ユーザが、対応するモバイル装置アプリケーションを使っている間に携わり得る活動に関連づけることができる。たとえば、背景技術によって上述したように、ジョギングする人は、ジョギングしている間、自分のスマートフォンによって提供されるメディアプレーヤアプリケーションを使って、音楽を聴く場合がある。スマートフォンは、たとえば、ジョギングおよびメディアプレーヤアプリケーションに関連づけられた、モバイル装置上に格納された加速度プロファイルと合致するリアルタイム加速度データの検出に基づいて、ジョギングする人がジョギングを始めたときを検出することができる。
【０００６】
1つまたは複数の実装形態の詳細を、添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１Ａ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｂ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｃ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｄ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｅ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｆ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｇ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｈ】モバイル装置ユーザが携わり得る様々な活動に対応する加速度プロファイル例を示す図である。
【図１Ｊ】識別され、さらに処理され得る加速度データのウィンドウ例を示す図である。
【図２Ａ】モバイル装置によって取り込まれるリアルタイム加速度データに応答してアプリケーションをアクティブ化する方法例を示す図である。
【図２Ｂ】アプリケーションを加速度プロファイルと関連づけるようにモバイル装置を適応的にトレーニングする方法例を示す図である。
【図３Ａ】モバイルコンピューティング装置のユーザが携わり得る一連の活動例、および活動に携わっている間にユーザが稼働し得る、対応するモバイル装置アプリケーションを示す図である。
【図３Ｂ】様々なユーザ活動(および対応する加速度プロファイル)をモバイル装置アプリケーションと関連づけるのに使うことができるユーザインタフェース例を示す図である。
【図３Ｃ】一連の活動に応答して様々なアプリケーションをアクティブ化するようにモバイル装置を構成するのに利用され得るユーザインタフェースの一例を示す図である。
【図４Ａ】モバイル装置がアプリケーションのアクティブ化をリアルタイム加速度データと適応的に相関させることができるトレーニングモード例を示す図である。
【図４Ｂ】図4Aに対応する動作モードを示す図である。
【図５】リアルタイム加速度データを受信し処理し、処理されたリアルタイムの加速度情報を1つまたは複数の加速度プロファイルと相関させ、相関に基づいて1つまたは複数のアプリケーションをアクティブ化することができるモバイル装置例を示すブロック図である。
【図６】リアルタイム加速度データに基づいてアプリケーションを自動的にアクティブ化することができる例示的なモバイル装置を示す略図である。
【図７】図6の装置の内部アーキテクチャの追加詳細を示すブロック図である。
【図８】図6の装置によって使われるオペレーティングシステムの例示的なコンポーネントを示すブロック図である。
【図９】図8のオペレーティングシステムによって実装される例示的なプロセスを示すブロック図である。
【図１０】本明細書に記載する技法を実装するのに使うことができるコンピュータ装置およびモバイルコンピュータ装置の例を示す図である。
【発明を実施するための形態】
【０００８】
様々な図面中の同じ参照記号は、同じ要素を示す。
【０００９】
本書は、モバイル装置によって測定された現在のリアルタイム加速度データと、モバイル装置に格納されている加速度プロファイルの比較に基づいて、モバイル装置上でアプリケーションを自動的にアクティブ化するシステムおよび技法について記載する。格納されている各加速度プロファイルは、ユーザが、対応するモバイル装置アプリケーションを使っている間に携わり得る活動に関連づけることができる。たとえば、ジョギングする人は、ジョギングしている間、自分のスマートフォンによって提供されるメディアプレーヤアプリケーションを使って、音楽を聴く場合がある。スマートフォンは、たとえば、ジョギングおよびメディアプレーヤアプリケーションに関連づけられた、モバイル装置上に格納された加速度プロファイルと合致するリアルタイム加速度データの検出に基づいて、ジョギングする人がジョギングを始めたときを検出することができる。
【００１０】
モバイル装置は、それぞれが異なる活動に対応することができ、モバイル装置のユーザがその活動に携わっている間に稼働し得る対応するアプリケーションに関連づけることができる、異なるいくつかの加速度プロファイルを格納することができる。具体的には、1つの加速度プロファイルが、ジョギング運動を示すデータを格納することができ、そのプロファイルは、音楽アプリケーションに関連づけることができる。
【００１１】
一部の実装形態では、格納された加速度プロファイルが、モバイル装置に提供される(たとえば、モバイル装置が最初のエンドユーザに引き渡されるときに予めロードされている)。具体的には、たとえば、モバイル装置によって取り込まれたリアルタイム加速度データが、格納された加速度プロファイルの1つと合致したときをモバイル装置が直ちに判定するように、異なる多くのユーザまたはモバイル装置にとって一般的であり得る加速度プロファイルを、モバイル装置に予めロードすることができる。一部のこのような一般的加速度プロファイルは、様々なタイプの装置(たとえば、一般的なプロファイルが予めロードされているモバイル装置や、様々な装置の間の違いを含めるようにプロファイルが平均化され得るモバイル装置以外の他の様々な装置を含む)を分析することによって生成することができる。一部の実装形態では、一般的加速度プロファイルは、装置が最初のエンドユーザに引き渡された後で、モバイル装置に格納することができる。具体的には、たとえば、加速度プロファイルは、モバイル装置にダウンロードし、あるいは(たとえば、別の装置からケーブルによって、取外し可能記憶装置によって、など)モバイル装置に転送することができる。一部の実装形態では、加速度プロファイルは、モバイル装置によって記録し、モバイル装置に格納することができる(たとえば、記録された加速度プロファイルがある特定のモバイル装置またはそのモバイル装置のある特定のユーザに合わせてカスタマイズされるように)。
【００１２】
動作の際、モバイル装置は、リアルタイム加速度データを(たとえば、加速度計で)取り込み、リアルタイム加速度データを、モバイル装置に格納された加速度プロファイルと比較することができる。リアルタイム加速度データが、加速度プロファイル(たとえば、ジョギング用加速度プロファイル)に対応する(たとえば、比較アルゴリズム、および類似性の閾値測度の範囲内である、比較アルゴリズムによって判定される類似性測度(たとえば、少なくとも80%、90%、または95%という統計的類似性測度、リアルタイムデータと他の任意の加速度プロファイルとの間の類似性に匹敵すると判定される、リアルタイムデータと加速度プロファイルとの間の少なくとも10%、15%などでのより大きい類似性、など)に基づいて合致する)とモバイル装置が判定した場合、モバイル装置は、合致する加速度プロファイル(たとえば、メディアプレーヤアプリケーション)に関連づけられたアプリケーションを自動的にアクティブ化することができる。リアルタイム加速度データを受信し、予め格納された加速度プロファイルと比較するプロセスについては、図2Aを参照して後でより詳細に説明する。
【００１３】
加速度プロファイルとアプリケーションとの間の関連づけは、一定の活動が検出されたときにアクティブ化されるべきである一定のアプリケーションをユーザが決定することができるように、ユーザによって構成可能でよい。加速度プロファイルへのアプリケーションの関連づけについては、図3A、3Bを参照して後でより詳細に説明する。
【００１４】
リアルタイム加速度データおよび格納された加速度プロファイルは、加速度計から受信されるデータを含み得る。異なる種類の加速度計が、異なる種類のデータを提供し得るが、概して、一部の加速度計は、1つまたは複数の方向の力を測定し、具体的には、多くの加速度計が、3方向、すなわち、x軸、y軸およびz軸に沿った力を測定する。力データから、加速度、速さおよび位置データを判定することができる。たとえば、3軸加速度計で、どの軸が重力を測定するかに基づいて、加速度計の位置を判定することができる。一部の実装形態では、加速度データは、3軸直線加速度計(たとえば、力データを3通りの軸で、100〜400Hzのレートで出力することができるMEMSベースの加速度計(微小電気機械システム))によって提供することができる。他の装置も、加速度データを提供することができる。
【００１５】
一部の実装形態では、加速度プロファイルは、加速度データの集合体を格納する。加速度データは、ある程度の期間、3つの軸それぞれに対応する力データを含み得る。分かりやすくするために、力および加速度は、本明細書において入換え可能に使うことができるが、加速度計は概して、力を測定し、力データおよび加速成分の大部分から、加速度値を判定することができることが、読者には理解されよう。異なる活動に対する加速度データの様々な例を、図1A〜1Hを参照して説明する。
【００１６】
例示目的のために、3通りの軸(たとえば、x軸106、y軸107、およびz軸108)にある未加工データを、グラフによって図1A〜1Hに示す。実際の実装形態では、未加工データは、各方向の力の値に対応する時間順の数字列(たとえば、{(F1x、F1y、F1z)、(F2x、F2y、F2z)、...、(Fnx、Fny、Fnz)、...}を含むことができ、ここで、新たな力の値が、2.5msごとなどの規則的な時間間隔で、または加速度プロファイルの生成を容易にする他のある程度の頻度で与えられる)。他の実装形態では、2軸または1軸加速度計が、加速度データを提供することができ、または加速度計以外の装置を、加速度または運動プロファイルを示すデータを提供するのに利用することができる。
【００１７】
図1Aは、ジョギングし、または走っているユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ110を示す。これを説明するために、軸を、図1Aに示すように定義することができる。具体的には、x軸106は、ジョギングしている人に相対して水平面上にあり、ジョギングしている人がそれに沿って移動する前進軌道と一致する線に対応してよく、y軸107は、ジョギングしている人の垂直面に対応してよく、z軸108は、x軸106に垂直な方向にある、ジョギングしている人の水平面に対応してよい。この配向に基づいて、x軸に沿って取り込まれるデータは、前進加速度(たとえば、ジョギングしている人の高速化や低速化)を測定することができ、y軸107に沿って取り込まれるデータは、垂直加速度(たとえば、ジョギングしている人の跳ね上がり)を測定することができ、z軸108に沿って取り込まれるデータは、左右加速度(たとえば、ジョギングしている人の揺れ)を測定することができる。
【００１８】
比較的一定のペースで比較的真直ぐジョギングしている人にとって、x軸106(たとえば、前進)加速度値は比較的一定でよく、y軸107(たとえば、垂直)加速度値は、ジョギングする人の垂直な跳ね上がりから、重力に関連づけられた基礎力ならびに周期的加速および減速を示すことができ、z軸108(たとえば、左右)加速度値は比較的一定でよい。y軸成分の周波数は、ユーザの歩調に対応してよく、y軸成分の振幅は、ユーザがステップを踏む際の力に対応してよい。振幅および周波数は両方とも、歩いているのではなくジョギングし、または走っているユーザのケースでは、より高くなり得る。例示および比較目的のために、歩いているユーザに対する加速度例を、図1Bに示す。
【００１９】
図1Bは、歩いているユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ例120を示す。比較的一定のペースで比較的真直ぐジョギングしている人のように、同じように歩いている歩行者は、x軸106またはz軸108に沿った加速度をほとんど経験しない場合がある(たとえば、時折起こるペース上昇もしくは低下、または片側から反対側への逸脱を除く)。y軸107に沿って、加速度110は、ユーザの歩幅に関連づけられた少量の垂直運動に対応する周期的加速および減速を示す。周期的加速の周波数は、ユーザの歩調に対応し得る。図1Bに示すように、歩行ステップが通常、ジョギングまたはランニングステップより穏やかである(たとえば、衝撃がより小さい)と仮定すると、y軸107のデータの振幅は、ジョギングに関連づけられたy軸のデータより小さくてよい。他の様々な加速度プロファイル例を、次に説明する。
【００２０】
図1Cは、電車に乗っているユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ例130を示す。図1Cに示すように、電車は、電車が路線上で停車場から出発し、停車場に到着するとき、x軸106に沿った周期的加速132および減速133力をモバイル装置に受けさせる場合がある。y軸107に沿って、電車は、路線上で傾斜を昇り、下るとき、加速および減速をモバイル装置に受けさせる場合がある。さらに、電車が走行する線路にある規則的に現れる溝または亀裂の上を移動する際、モバイル装置は、y軸107に沿ったより高周波の加速度を検出する場合がある。モバイル装置は、たとえば、電車が線路にある比較的急なカーブを通り抜ける際、z軸108に沿った加速力134を検出する場合もある。
【００２１】
図1Dは、交通渋滞(たとえば、のろのろ運転状態)にある車両の中にいるユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ例140を示す。図1Dに示すように、のろのろ運転状態は、渋滞中の車両の(および相対的には、車両内のモバイル装置における)x軸106に沿った頻繁な、可能性としては漸進的な加速141および減速142を引き起こし得る。この加速および減速は、自動車がのろのろ運転状態において実施する発車および停車(または速度低下および速度上昇)に関連づけられ得る。y軸107に沿った少量の周期的加速は、道路の伸縮継手に関連づけられ得る。z軸108に沿った加速度は、車両による任意の逸脱は別にして、無視してよい。
【００２２】
図1Eは、交通量の少ない状態(たとえば、ハイウェイ速度で移動する、順調に流れている交通状態)にある車両の中にいるユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ例150を示す。具体的には、図1Eは、x軸106に沿って、たとえば、初期加速度152およびその後に続く一定の巡航速度153(加速度なし)、次いで、突然ではあるが短時間の速度低下154、次いで急加速155を示す。y軸107に沿って、加速度データは、高速道路の伸縮継手に関連づけられた高周波成分を含み得る。z軸108に沿って、加速度データは、短時間の速度低下に対応する逸脱156を除いて、比較的一定なものとして示されている。
【００２３】
図1Fは、エレベータに乗っているユーザによって持ち運ばれるモバイル装置に対応し得る加速度データ例160を示す。具体的には、図1Fは、x軸106およびz軸108に沿った最小加速度(それぞれ、前進または側方の運動)を示す。y軸107に沿った比較的大きい振幅加速162および減速163は、それぞれ、異なる階でのエレベータの始動および停止に対応し得る。
【００２４】
図1Gは、落下されるモバイル装置に対応し得る加速度データ例170を示す。具体的には、図1Gは、この例では、各軸に反映される、急な減速加速成分につながる、軸に相対的な角度で落下されるモバイル装置を示す。
【００２５】
図1Hは、堅い表面(たとえば、机)に置かれるモバイル装置に対応し得る加速度データ例180を示す。具体的には、急な減速が、非常に小さいx軸106成分をもち、y軸107に沿って示される。この例では、減速力は、モバイル装置がある角度で落下されている、図1Gに示す減速力とは対照的に、(モバイル装置は、平らに置かれる可能性があるので)主としてy軸107に沿って集中されるものとして示される。さらに、モバイル装置を堅い表面の上に置くと、モバイル装置を落とすより小さい力をモバイル装置に受けさせる可能性があるので、図1Hに示す減速力は、図1Gに示す減速力より振幅が低い。
【００２６】
説明のために、図1A〜Hは、装置を、x軸106に沿ったデータが概して順方向の運動に対応し、y軸107に沿ったデータが概して垂直方向の運動に対応し、z軸108に沿ったデータが概して水平横断方向の運動に対応するように配向されたものとして示す、モバイルコンピューティング装置に対する加速度データの例を示す。ただし、モバイルコンピューティング装置は、ユーザまたはユーザが移動のために乗っている車両に相対してどのように位置決めしてもよいことが、読者には理解されよう。したがって、加速度データは、図示してあるのとは異なる軸に沿っても、組み合わされた複数の軸に沿っても検出することができる。一部の実装形態では、3軸加速度計(または対応する回路構成)が、未加工加速度データから、モバイル装置の配向に関わらず、3つの直交軸に沿って加速度値を抽出する(たとえば、加速度データを、必要に応じて異なる1組の軸に数学的に翻訳する)ように構成される。言い換えると、加速度データは、(たとえば、モバイル装置の配向により)2つの軸または3つすべての軸で検出される同じ加速力の効果をなくすように処理することができる。
【００２７】
図1A〜Hを参照して示したように、多くの活動が、同様の加速度プロファイルを有し得る。たとえば、図1Aに示すジョギング、および図1Bに示す歩行は、y軸107に沿った同様の加速力と、x軸106またはz軸108に沿ったごく小さい(および同様の)力とを生じ得る。図1A〜Bに示すデータ例では、y軸107に沿った歩行とジョギングとの間の区別は、ジョギングに対する加速および減速周期の周波数の増加(たとえば、より速い歩調)、ならびに振幅の増加(垂直方向の力の増大、または言い換えると、よりしっかりとしたステップ)を含み得る。
【００２８】
別の例として、落下されるモバイル装置(図1Gを参照)に対応する加速度データ、および堅い表面の上に置かれるモバイル装置(図1Hを参照)に対応する加速度データは、1つまたは複数の軸に沿った、同様のインパルスのような応答になり得る。ただし、落下に関連づけられた加速力は、振幅がより大きくなる場合があり、複数の軸で見ることができ(たとえば、急な力が複数の軸に沿って検出されるように、装置がある程度の角度で落下する見込みを仮定すると)、下に置かれるモバイル装置に関連づけられた加速力は、振幅がより小さくなる場合があり、主として単一の軸に沿って見られる可能性がより大きい。
【００２９】
別の例として、電車に関連づけられた加速力(図1Cを参照)は、車両に関連づけられた加速力と同様になり得る。ただし、z軸に沿った(たとえば、横断運動に対応する)より大きい加速力は、車両が航行し得るよりも急な曲がり角にさしかかった電車に関連づけられ得る。
【００３０】
図2Aは、モバイル装置によってリアルタイムで取り込まれる加速度データに応答してアプリケーションをアクティブ化する方法例201を示す。一部の実装形態では、加速度プロファイルが、モバイル装置に格納される(203)。たとえば、図1A〜1Hに示し、これらの図を参照して説明したような、様々な加速度プロファイルを、モバイル装置に格納することができる。加速度プロファイルは、エンドユーザに引き渡されるときにモバイル装置に予め格納しておくこともでき、加速度プロファイルは、エンドユーザによってモバイル装置にダウンロードすることもでき、加速度プロファイルは、モバイル装置によって取り込む(たとえば、記録する)ことなどもできる。
【００３１】
加速度プロファイルと、格納された加速度プロファイルと合致すると判定された(212)リアルタイム加速度データが受信された(209)ときにアクティブ化されるべきアプリケーションとの間の関連づけを構成する(206)ことができる。一部の実装形態では、関連づけは、構成モードにおいて(たとえば、図3Bまたは3Cを参照して後で説明するような構成インタフェースを用いて)行われる。
【００３２】
リアルタイム加速度データを、モバイル装置によって取り込む(209)ことができる。たとえば、一部の実装形態では、モバイル装置内の加速度計が、加速度データを絶えず取り込む(または、いくつかのサンプリングレート例を挙げると、25Hz、50Hz、100Hz、400Hzのサンプリングレートで加速度データをほぼ絶えず取り込む)。一部の実装形態では、取り込まれたリアルタイム加速度データは、ある程度の量の加速度データ(たとえば、5秒間のデータ、30秒間のデータ、2分間のデータ、10分間のデータ、1時間分のデータなど)を格納する循環バッファ(または他のメモリ構造)に格納される。
【００３３】
方法201は、取り込まれたリアルタイム加速度データが、格納された加速度プロファイルのいずれかと合致するかどうか判定する(212)ことを含み得る。具体的には、たとえば、リアルタイム加速度データと、モバイル装置に格納されたあらゆる加速度プロファイルそれぞれとの間に、比較アルゴリズムを適用することができる。リアルタイム加速度データと加速度プロファイルのいずれとの間にも合致が見られない場合、それ以上のアクションをとることはできない(つまり、どのアプリケーションもアクティブ化することはできない。ただし、方法201全体は、より最近の加速度データを計上するために、後で記載するようにリアルタイム加速度データの一部分を用いて周期的に繰り返すことができる)。
【００３４】
リアルタイム加速度データと、格納された加速度プロファイルの1つとの間に合致が存在すると判定された(212)場合、モバイル装置は、合致する加速度プロファイルに関連づけられたアプリケーションをアクティブ化する(215)ことができる。このコンテキストにおいて、アプリケーションをアクティブ化する(215)ことは、アプリケーションがモバイル装置のメモリ内で(たとえば、フォアグラウンド、すなわちアクティブなアプリケーションとして、または現時点では入出力装置の焦点がないバックグラウンドアプリケーションとして)まだ稼働していない場合はそのアプリケーションを起動することを含み得る。アプリケーションをアクティブ化する(215)ことは、既に稼働しているアプリケーションの状況を、バックグラウンドアプリケーションからフォアグラウンドアプリケーションに変えることも含み得る。一部の実装形態では、バックグラウンドアプリケーションからフォアグラウンドアプリケーションへの状況変化は、たとえば、モバイル装置に含まれる表示画面の最上位層にあるアプリケーションに関連づけられたどのユーザインタフェースも表示すること、または適切な入力装置から入力を受信し、適切な出力装置に出力を与えるように、アプリケーションにアクティブな焦点を与えることを含み得る。
【００３５】
一部の実装形態では、アプリケーションをアクティブ化する(215)ことは、アプリケーションの状態を構成することをさらに含み得る。たとえば、アクティブ化されるアプリケーションがメディアプレーヤアプリケーションの場合、メディアプレーヤアプリケーションをアクティブ化する(215)ことは、そのアプリケーションを起動し(たとえば、メモリ中で開始し)、デフォルトのメディアを再生し始めることを含み得る。別の例として、アクティブ化されるアプリケーションがブラウザアプリケーションプログラムの場合、ブラウザアプリケーションをアクティブ化する(215)ことは、一定のネットワークアクセス可能情報に自動的にアクセスし、その情報をブラウザアプリケーションで表示することを含み得る。より具体的には、たとえば、ブラウザをアクティブ化することは、3つのブラウザウィンドウをアクティブ化し、1つのネットワークアクセス可能サイトから(たとえば、www.cnn.comから)国際ニュース情報にアクセスし(たとえば、取り出し)、1つのブラウザウィンドウに表示し、別のブラウザには、(たとえば、www.kare11.comからの)ローカルニュース情報を表示し、第3のブラウザウィンドウには、(たとえば、online.barrons.comからの)金融情報を表示することを含み得る。
【００３６】
一部の実装形態では、方法201は、周期的に実行することができる。つまり、リアルタイム加速度データ(たとえば、最も直近のリアルタイム加速度データを格納する部分など、循環バッファのある部分に格納されたデータ)と、加速度プロファイルとの間の比較は、5秒、10秒、30秒、2分ごとに、または他のある程度の間隔で行う(212)ことができる。方法201を頻繁に実行することによって、モバイル装置は、ユーザによる活動の変化に素早く応答することができる。たとえば、上記のジョギング例を参照すると、方法201が5秒ごとに実行される場合、ユーザは、ジョギングを始める非常に短い時間の間に、メディアプレーヤアプリケーションによって再生されるメディアを楽しむことができるようになる可能性が高まる。このように、短い期間により、現在のリアルタイム加速度データに応答してアプリケーションをアクティブ化する応答時間が早くなり得る。
【００３７】
一部の実装形態では、モバイル装置は、リアルタイム加速度データと加速度プロファイルを比較する(212)のに、より長い期間を費やす。より長い期間が、アプリケーションをアクティブ化し、非アクティブ化する際にある程度の量の「履歴現象」を提供し得るので、一部の状況では有利な場合がある。つまり、ジョギング例のコンテキストでは、より長い期間により、ユーザがジョギングを少しの間やめた場合は、モバイル装置がメディアプレーヤアプリケーションを非アクティブ化するのを防止することができる。さらに、より長い期間により、格納された加速度プロファイルとの比較(212)において、よりリアルタイムの加速度データが使われるようになり、こうすることにより合致の正確さが増し得る。具体的には、たとえば、モバイル装置は、よりリアルタイムの加速度データ(および、一部の実装形態では、対応するより長い期間)が使われる場合、格納された同様の加速度プロファイル(たとえば、ジョギングおよび歩行プロファイル、電車および車両プロファイルなど)をより明らかに区別することができる。さらに、一部のプロファイルは、他の加速度プロファイルよりも、より長期間に亘るデータにより最も分かりやすく特徴づけることができる。たとえば、ジョギングを特徴づける場合よりも多くのデータ(たとえば、より長い期間に対応するデータ)が、発進/停止を繰り返す交通状態における移動を正確に特徴づけるのに必要とされる可能性がある。
【００３８】
一部の実装形態では、未加工加速度データ(たとえば、格納された加速度プロファイルとの比較のためにモバイル装置によって取り込まれるリアルタイムデータ)は、未加工データ自体よりも特定の種類の活動に対応してより簡単に分類され、または特徴づけられるように変換することができる。たとえば、一部の実装形態では、時間順の未加工加速度データシーケンスを最初に分析し、またはフィルタリングして、比較的整合性のある、周期的性質を有するシーケンス部分を識別することができる(たとえば、対象となっている活動に関連づけられた多くの加速度プロファイルが何らかの周期的成分をもつと仮定すると)。識別された部分、またはウィンドウは、さらに分析する(たとえば、後で説明するようにシグネチャに変換する)ことができ、時間順シーケンスの他の部分は無視することができる。具体的には、図1Jを参照すると、ウィンドウ190を識別することができる。一部の実装形態では、モバイル装置は、(たとえば、離散高速フーリエ変換(DFFT)などの変換アルゴリズムを用いて)未加工加速度データの異なる部分の周波数内容を分析することによって、ウィンドウ190を識別することができる。こうした部分は、未加工加速度データの他の部分と比べて、比較的少数の整合性のある周波数成分をもつ、ウィンドウに含まれるものとして識別することができる。他の実装形態では、統計的分析を未加工加速度データに適用することができる。概して、加速度データの適切な部分を識別するのに、様々な技法を適用することができる。
【００３９】
未加工加速度データの適切な部分が識別されると、未加工加速度データは、格納された他のプロファイルとより簡単に比較することができるシグネチャまたはプロファイルに変換することができる。一部の実装形態では、シグネチャまたはプロファイルは、何らかの方式での未加工データの操作を通して生成される。たとえば、シグネチャは、x軸、y軸およびz軸加速力値シーケンスに数学的アルゴリズムまたは変換を適用することによって生成することができる。数学的アルゴリズムは、実際には、データを圧縮し、データにある差別的特徴を強調することができる。より具体的な例として、変換アルゴリズムをデータ(たとえば、図1Aまたは1Bに示すようなデータ)に適用して、y軸107に沿ったデータの優位周波数および平均振幅を識別することができる。非常に周期的なデータの場合、シグネチャは、各軸に沿った平均振幅および優位周波数を含み得る。
【００４０】
後続のシグネチャ分析をさらに容易にするために、格納されたプロファイルまたはリアルタイムの加速度プロファイルどちらかのいくつかの側面を正規化し、あるいは処理することもできる。たとえば、異なるユーザは、走り、または歩くときにステップ頻度が異なると仮定すると、ユーザのステップ頻度に対応する加速度データの周波数内容は、たとえば、1.3〜2.7Hz(多くのユーザの歩行ペースである75〜160歩/分)の範囲から、2.1Hz(125歩/分)に正規化することができる。同様に、ユーザのステップ頻度に対応する周波数内容は、たとえば、2.7〜3.3Hz(多くのユーザの走るペースである160〜200歩/分)の範囲から3.0Hz(180歩/分)に正規化することができる。
【００４１】
振幅データも、周波数成分が歩行を示唆する場合は、たとえば、第1の値に、および周波数成分が走行を示唆する場合は別のより高い振幅値に正規化することができる。別の処理例として、加速度データは、特定のプロファイルに対する不適切なデータを除外するように、「ウィンドウ化」することができる(たとえば、図1Jを参照して上述したように)。たとえば、ジョギング開始に先立つユーザの動きは、ストレッチおよびモバイルコンピューティング装置をポケットに入れること、またはストラップで腕にかけることを含み得る。こうした動きは、識別し除外しても、ユーザの走行を表す加速度プロファイルからフィルタリングにより取り除いてもよい。別の例では、ハイウェイ速度で移動する自動車に対するプロファイルを、自動車に乗り込み、発車させるユーザに関連づけられた動きを除外するようにウィンドウ化することができる。
【００４２】
正規化加速度プロファイルまたはリアルタイム加速度データから生成されたシグネチャは、格納された加速度プロファイルと様々なやり方で比較することができる。たとえば、画像を互いと(たとえば、分類もしくはオブジェクト認識の目的のために)比較し、またはオーディオ内容を参照内容と(たとえば、ソースを検証し、もしくはコピーを検出する目的のために)比較する多くのアルゴリズムおよびシステムが存在する。同様のアルゴリズムおよびシステム(または他の適切なアルゴリズムもしくはシステム)が、加速度プロファイルまたはシグネチャの分類および比較に適用され得ることが、読者には理解されよう。一部の実装形態では、加速度データは、デジタル化された形式でプロファイルに格納することができる。リアルタイム加速度データから生成される正規化加速度プロファイルまたはシグネチャも、デジタル化することができる。デジタル化されたファイルは、厳密な合致を判定するために比較することができる。
【００４３】
一部の実装形態では、モバイル装置上に格納された加速度プロファイルおよびリアルタイム加速度データは、リアルタイムデータと格納されたプロファイルとの比較を容易にするために、同じように正規化することも処理することもできる。
【００４４】
図2Bは、アプリケーションのアクティブ化を、モバイル装置自体が構築し得る加速度プロファイルと関連づけるように、モバイル装置を適応的にトレーニングする方法例251を示す。図2Bについては、適応的トレーニングに関する追加説明を行ってから、後でより詳細に説明する。
【００４５】
図3A、3Bに移り、ここで、一連の活動、アプリケーションおよび対応する加速度プロファイル例(図3A)について、ならびに特定のアプリケーションを特定の活動と関連づけるユーザインタフェース例(図3B)について図示し、説明する。
【００４６】
図3Aは、モバイルコンピューティング装置(たとえば、スマートフォン、PDA、セル電話など)のユーザが1日中携わる可能性のある一連の活動例、およびユーザがそうした活動に携わっている間に稼働し得る対応するアプリケーションを示す図表300である。ある例では、図3Aに示すように、ユーザは、朝に定期的にジョギングする場合がある。ジョギングしている間、ユーザは、自分のモバイル装置306上のメディアプレーヤアプリケーション304を利用して、音楽を聴くことができる。ユーザがジョギングしている間、ユーザのモバイル装置は、加速度プロファイル110(図1Aを参照して上述した)を取り込むことができる。
【００４７】
午前中のそれ以降、ユーザは、自分の職場まで電車に乗る場合がある。電車に乗っている間、ユーザは、ブラウザアプリケーション310を定期的に利用して、株価を確認し、その日の天気予報を取得し、1つまたは複数のネットワークアクセス可能サイト(たとえば、www.msbnc.com、www.nytimes.com、news.google.com、online.barrons.comなど)から時事ニュースを読むことができる。ユーザが電車に乗っている間、ユーザのモバイル装置は、加速度プロファイル130(図1Cを参照して上述した)を取り込むことができる。
【００４８】
電車を降りた後、ユーザは、電車の駅から自分の職場まで歩く場合がある。ユーザが歩いている間、ユーザは、カレンダアプリケーション314を利用して、その日に予定されている面会および他の活動を閲覧するためにカレンダを確認することができる。ユーザが歩いている間、ユーザのモバイル装置は、加速度プロファイル120(図1Bを参照して上述した)を取り込むことができる。
【００４９】
職場につくと、ユーザは、机316に着席し、モバイル装置を机の上にセットし、電子メッセージ(たとえば、eメールメッセージ、テキストメッセージなど)を確認するためにメッセージ通信アプリケーション318を利用して1日の仕事を始める可能性がある。ユーザがモバイル装置を机316の上にセットすると、モバイル装置は、加速度プロファイル180(図1Hを参照して上述した)を取り込むことができる。
【００５０】
図3Bは、様々なユーザ活動(および対応する加速度プロファイル)をモバイル装置アプリケーションと関連づけるのに使うことができるユーザインタフェース例301を示す。一実装形態に示すように、ユーザインタフェース301は、活動302とアプリケーション304との(またはより具体的には、活動302に対応する加速度プロファイル306とアプリケーション304との)関連づけにおいて使うことができる活動(たとえば、活動ニックネーム302で)、アプリケーション304、加速度プロファイル306、および任意選択で(図示するように)、フィルタ設定(たとえば、時間に基づくフィルタ設定322および場所に基づくフィルタ設定340)を関連させることができる。アプリケーション304および加速度プロファイル306のいくつかの具体的グループ分けについて、次に説明する。
【００５１】
一部の実装形態では、ユーザインタフェース301は、関連づけを作成するために、インタフェースの様々な部分にアイコンをユーザがドラッグアンドドロップするのを可能にする。具体的には、たとえば、グラフィカルアイコンは、異なるアプリケーション(たとえば、マップアプリケーション312、ブラウザアプリケーション318、メディアプレーヤアプリケーションなど)に関連づけることができる。加速度プロファイルも、(たとえば、図1Dに示す加速度プロファイル140を表し得る「プロファイル140」、および図1Eに示す加速度プロファイル150を表し得る「プロファイル150」を含む加速度プロファイルに関連づけられたアイコンのライブラリから)ドラッグし、ユーザインタフェース301中の適切な場所にドロップすることができる。
【００５２】
他の情報を、他のやり方でユーザインタフェースに入れることもできる。たとえば、活動ニックネーム302およびフィルタ情報322、340を、テキストエントリボックス(テキストエントリボックスは、明示的には図示していない)に入れることができる。別の例として、時間フィルタ情報322を、ドロップダウンボックスまたはメニュー(ドロップダウンボックスもメニューも図示していない)を使用して入れることができる。概して、データは、適切などの方式でも入れることができ、ユーザインタフェース301は例示に過ぎないことが読者には理解されよう。
【００５３】
図に示すように、モバイル装置のユーザは、ユーザインタフェース301を利用して、加速度プロファイルをアプリケーションに関連づけることができる。一部のケースでは、複数の加速度プロファイルを、1つのアプリケーションに関連づけることができる。具体的には、たとえば、「プロファイル140」(たとえば、混雑した、発進/停止を繰り返す交通状態にある車両内のモバイル装置に対応する加速度プロファイル)および「プロファイル150」(たとえば、ハイウェイ速度で移動している順調に流れている交通状態にあるモバイル装置に対応する加速度プロファイル)は両方とも、マップアプリケーション312に関連づけることができる。つまり、のろのろ運転状態にある車両移動であっても、ハイウェイ速度での車両移動であっても、車両移動が検出された場合、マップアプリケーション312を起動することができる。
【００５４】
一部の実装形態では、装置設定を、加速度プロファイルに応答して構成することもできる。たとえば、リアルタイム加速度データが、「プロファイル140」または「プロファイル150」(すなわち、発進/停止を繰り返す、または高速道路での移動)のどちらかと合致する場合、モバイル装置は、スピーカモード(たとえば、設定314で示す)に切り換えることができる。つまり、オーディオ出力を生じるアプリケーションは、スピーカを通して(例として、たとえば、ワイヤードまたはBLUETOOTH(登録商標)ヘッドセット接続を通してではなく)オーディオ出力が与えられるモードに切り換えることができる。
【００５５】
一部の実装形態では、複数のアプリケーションを、1つの加速度プロファイルに関連づけることができる。一例に示すように、ブラウザアプリケーション318、メディアプレーヤアプリケーション328およびオーディオブックアプリケーション330はすべて、「プロファイル130」(たとえば、電車内のモバイル装置に対応する加速度プロファイル)に関連づけることができる。一部のケースでは、複数のアプリケーションをアクティブ化することができる(たとえば、ブラウザアプリケーション318およびメディアプレーヤアプリケーション328)。一部のケースでは、複数のアプリケーションのただ1つを自動的にアクティブ化することができ、どのアプリケーションが自動的にアクティブ化されるかは、フィルタ設定322に基づき得る。
【００５６】
2つのフィルタリング例、すなわち時間に基づくフィルタリング、および場所に基づくフィルタリングを挙げる。ただし、たとえば、曜日、月、四半期、年などに基づくフィルタリングなど、他の様々なフィルタリング方法を適用してよいことが、読者には理解されよう。時間に基づくフィルタリングに移ると、電車での移動の検出により、時間フィルタ設定324、332に基づいてアプリケーションを選択的に起動することができる。具体的には、図示してある例では、ブラウザアプリケーション318およびメディアプレーヤアプリケーション328は、電車での移動に対応するリアルタイム加速度データに応答して、朝(たとえば、ユーザが仕事に向かっているとき)に、午後または夜(たとえば、ユーザが仕事から自宅に戻っているとき)にアクティブ化することができ、オーディオブックアプリケーション330は、電車での移動に対応するリアルタイム加速度データの検出に応答してアクティブ化することができる。上記の例では、時間に基づくフィルタリングは、午前と午後との区別に基づいて適用され、一部の実装形態では、時間に基づくフィルタリングは、少なくとも所定の閾値(たとえば、1時間、2時間、4時間、8時間など)で分けられる異なる2つの時間との近接性に基づき得る。
【００５７】
他の種類のフィルタリングを提供することもできる。たとえば、モバイル装置にあるGPS機能性が、場所に基づくフィルタリングを可能にし得る。ジョギングに対応するリアルタイム加速度データ(たとえば、プロファイル110)の検出により、メディアプレーヤアプリケーション328をアクティブ化させることができるが、モバイル装置が「自宅」近くにある場合のみである(たとえば、現在のGPSに基づく位置情報(または他の形の位置情報)および(たとえば、図示していない別のインタフェースを使って)構成することができる「自宅」設定によって判定されるように)。この例のコンテキストでは、モバイル装置は、ユーザが自宅近くに定期的なジョギングをしに行っているときにメディアプレーヤアプリケーションをアクティブ化することができるが、ユーザが異なるコンテキストで(たとえば、ユーザが電車に間に合うために自分の職場近くの通りを全力疾走しているとき)同様の活動(たとえば、ジョギングまたはランニング)に携わっているときはメディアプレーヤをアクティブ化することはできない。
【００５８】
一部の実装形態では、アプリケーションは、一連の活動(およびリアルタイム加速度データと加速度プロファイルとの一連の合致)に基づいて起動させることができる。図3Cは、一連の活動に応答して様々なアプリケーションを起動するようにモバイル装置を構成するのに利用することができるユーザインタフェースの一例351を示す。この例では、ユーザは、適切なアイコンを続けてドラッグアンドドロップし、任意選択で活動の間の時間を指定することによって、ユーザインタフェース351に投入を行うことができる。
【００５９】
加速度データは、グラフによってユーザインタフェース351中に示してあるが、このグラフによる図示は省略することができ、ユーザインタフェース351は、ラベルづけされた加速度プロファイルアイコン、アプリケーションアイコン、時間遅延アイコン、および様々なコネクタ(たとえば、シーケンスを示すための両方向矢印、原因(矢印の反対の先端)に応答した効果(矢印の先端)を示すための単方向矢印)のみに基づいて構成することができる。
【００６０】
一例に示すように、電車に関連づけられた加速度プロファイル130のリアルタイム検出により、ブラウザアプリケーション310を起動させることができる。電車プロファイル130と合致するリアルタイム加速度データが検出されてから約2〜5分後の、歩行に関連づけられた加速度プロファイル120のリアルタイム検出により、カレンダアプリケーション314を起動させることができる。歩行プロファイル120と合致するリアルタイム加速度データが検出されてから約1〜3分後に、エレベータに関連づけられた加速度プロファイル160がリアルタイムに検出され、それに続いて1〜3分後に、下に置かれるモバイル装置に対応するプロファイルと合致するリアルタイム加速度データが検出されると、メッセージ通信アプリケーション318をアクティブ化させることができる。
【００６１】
一部の実装形態では、アプリケーションは、現在のリアルタイム加速度データが適切なプロファイルと合致する場合、および以前のリアルタイム加速度データが別の適切なプロファイルと合致した場合に起動されるだけである。つまり、一部の実装形態では、モバイル装置は、時間順の加速度プロファイルシーケンスと合致するリアルタイム加速度データを識別することによって、認識の正確さを向上することができる。具体的には、たとえば、カレンダアプリケーション314は、歩行プロファイル120と合致するリアルタイム加速度データが単独で検出されたときは自動的に起動することができない(すなわち、電車プロファイル130と合致するリアルタイム加速度データの2〜5分後に起動することはできない)。同様に、メッセージ通信アプリケーション318は、例に挙げたシーケンスと合致するリアルタイム加速度データが検出されない限り、自動的に起動することはできない。
【００６２】
ユーザインタフェース301、351は、例示に過ぎない。概して、活動と、それに対応する加速度プロファイルとの間の関連づけを構成し、アプリケーションをアクティブ化するユーザインタフェースは、どの形もとり得る。一部の実装形態では、ユーザインタフェース301は、いく通りかのインタフェースにより提供される。一部の実装形態では、ユーザインタフェース301は、モバイル装置自体の上で提供され、他の実装形態では、ユーザインタフェース301は、(たとえば、コンピュータに基づく、またはウェブに基づくアプリケーションでは)モバイル装置の外部にある構成ツールを介して提供され、このケースでは、構成設定を、適切などの方式でもモバイル装置に転送することができる。他の多くの変形が企図される。
【００６３】
一部の実装形態では、後でより詳しく説明するように、モバイルコンピューティング装置は、ユーザのスケジュールを自動的に「学習する」ように適応的にトレーニングすることができる。ユーザインタフェース301は、モバイル装置がユーザの習慣および活動を適応的に学習するのに合わせて適切に埋めることができる(または対応する構成設定を、ユーザインタフェース301に投入を行わずに格納することができる)。ユーザインタフェース301は、トレーニングプロセス中にユーザにとって利用可能にすることもできる。たとえば、ユーザは、ある特定の時点で投入が行われていない、ユーザインタフェース301のエリアを埋めることによって、トレーニングプロセスを加速することができる。あるいは、ユーザは、ユーザインタフェース301を利用して、学習済みの設定をオーバーライドすることができる。
【００６４】
適応的にトレーニングするために、モバイル装置は、トレーニングモードおよび動作モードを提供することができる。トレーニングモードにおいて、モバイル装置は、リアルタイム加速度データおよびユーザによる様々なアプリケーションのアクティブ化両方を監視することができる。時間の経過とともに、モバイル装置は、リアルタイム加速度データと、いくつかのアプリケーションのアクティブ化(または非アクティブ化)との間の相関関係を作り、強化することができる。動作モードにおいて、モバイル装置は、リアルタイム加速度データを監視し、予め作られた相関関係を適用して適切なアプリケーションをアクティブ化することができる。こうしたプロセスについては、図4A、4Bを参照して図示し、より詳しく説明する。
【００６５】
図4A、4Bは、それぞれ、モバイル装置がアプリケーションのアクティブ化をリアルタイム加速度データと適応的に相関させることができるトレーニングモード例、および対応する動作モードを示す。説明のために、この例は、朝3日間それぞれにジョギングを行い、ジョギングしている間にメディアプレーヤアプリケーションをアクティブ化するユーザに対応するリアルタイム加速度データを示す。図に示すように、一例では、ユーザは、月曜の午前5:15頃にジョギングを始め、ほとんどすぐにメディアプレーヤアプリケーションをアクティブ化する。ユーザは、午前6:00近くにジョギングをやめ、ほとんどすぐにメディアプレーヤアプリケーションを停止する。
【００６６】
適応的にトレーニングするために、モバイル装置は、アプリケーションがアクティブ化され、または非アクティブ化される前および後(たとえば、5秒、30秒、1分、2分など、前および後の所定の時間)の両方にリアルタイム加速度データを分析することができる。したがって、トレーニングモードでの初日以降、モバイル装置は、メディアプレーヤアプリケーションのアクティブ化を、アクティブ化の前の任意の加速度データ(たとえば、ジョギングする準備ができているユーザに関連づけられた加速度データ)、ならびにアクティブ化に続く、一定の周波数および振幅内容をもつ周期的加速データ(たとえば、ジョギングに関連づけられた加速度データ)と関連づけることができる。同様に、モバイル装置は、メディアプレーヤのアクティブ化の非アクティブ化を、非アクティブ化の前の一定の周波数および振幅内容をもつ周期的加速データ、ならびに非アクティブ化に続く任意の加速度データと関連づけることができる。アクティブ化および非アクティブ化は、時間(たとえば、午前5:15および午前6:00などの具体的時刻、または午前5:00〜5:30および午前5:45〜6:15などの時間範囲)にも、(たとえば、図4A、4Bには示していないGPS情報に基づく)一般的な場所にもさらに関連づけることができる。
【００６７】
同様のリアルタイム加速度データ、ならびに検出されたリアルタイム加速度データと、メディアプレーヤアプリケーションのアクティブ化および非アクティブ化との間の同様の関係(および概して、リアルタイム加速度データ、アプリケーションおよび時刻との同様の関係)を検出した2日目および3日目(たとえば、火曜および水曜)以降、モバイル装置は、それ自体を適応的に構成している可能性がある。具体的には、たとえば、モバイル装置は、トレーニングモード中に検出された周波数および振幅内容と同様の周波数および振幅内容をもつ(かつ、ジョギングに関連づけられた)リアルタイム加速度データを検出するとすぐにメディアプレーヤアプリケーションをアクティブ化するように、それ自体を構成している場合がある。さらに、モバイル装置は、学習済みの周波数および振幅内容をもつリアルタイム加速度データがそれ以上検出されなくなった後でメディアプレーヤアプリケーションを非アクティブ化するように、それ自体を構成している場合がある。
【００６８】
図4Bは、動作モードにおけるモバイル装置の動作、たとえば、適応的トレーニングに基づく動作を示す。破線矢印で図に示すように、メディアプレーヤアプリケーションは、リアルタイムの周期的加速度データ(たとえば、ジョギングプロファイルと合致するリアルタイム加速度データ)が検出されると自動的にアクティブ化し、リアルタイムの周期的加速度データがそれ以上検出されなくなると、自動的に非アクティブ化することができる。
【００６９】
一部の実装形態では、モバイル装置は、加速度データのシーケンス(たとえば、図3Cに示すようなシーケンスなど)と、様々なモバイル装置アプリケーションの複数のアクティブ化または非アクティブ化との間の関係を適応的に学習することができる。たとえば、モバイル装置は、トレーニング期間に亘って、大体の時刻に第1の加速度プロファイル(たとえば、電車移動に対応する加速度プロファイル)を検出し、その間に第1のアプリケーション(たとえば、ブラウザアプリケーション)がアクティブ化され、ある程度の期間(たとえば、数分)後に、第2の加速度プロファイル(たとえば、歩行に対応する加速度プロファイル)を検出し、その間に第2のアプリケーション(たとえば、カレンダアプリケーション)がアクティブ化され、さらに時間(たとえば、数分)が経過してから、第3および第4の加速度プロファイル(たとえば、エレベータへの乗車および堅い表面の上に置かれるモバイル装置に対応する加速度プロファイル)を検出し、その後で第3のアプリケーション(たとえば、eメールアプリケーション)がアクティブ化されるように、それ自体を構成することができよう。
【００７０】
上記の例では、第1および第2の加速度プロファイルの間の期間中のリアルタイム加速度データは無視してよい。このデータは、本来任意でよく、データが、前後のリアルタイム加速度データとは異なる規則的な特徴を有してもよい。一部の実装形態では、データは、ある活動から別の活動への、ユーザの移行に対応する。たとえば、モバイル装置は、電車への乗車と一致するリアルタイム加速度データ、その後に続く任意のリアルタイム加速度データ、その後に続く、歩行と一致するリアルタイムの加速度を検出することができる。任意のリアルタイム加速度データは、ユーザがその間に電車を降り、可能性としては混雑した人混みの中で、階段を歩いて上り、または下りてから、ユーザが普通に歩くことができる歩道(ここで、モバイル装置は、歩行と一致する、持続的、周期的なリアルタイムの加速度を検出することができる)に行き着く移行期間に対応し得る。
【００７１】
加速度プロファイルの間の期間に関連づけられた時間は、適応的に構成されたモデルに要素として含めることができる。たとえば、モバイル装置は、電車に関連づけられたリアルタイム加速度データと、その後に続く3分間の任意のリアルタイム加速度データと、さらにその後に続く歩行に関連づけられたリアルタイム加速度データとにより、カレンダアプリケーションがアクティブ化されるべきであると適応的に判定することができる。
【００７２】
適応的にトレーニングを行う適切などの方法も利用することができる。つまり、適切などのアルゴリズムも、加速度データとアプリケーションのアクティブ化または非アクティブ化との間の相関関係(たとえば、トレーニング用シグネチャ)を判定するのに適用することができる。適切などのトレーニング期間も用いることができる。たとえば、ユーザのスケジュールおよび習慣の複雑さに応じて、モバイル装置が加速度データアプリケーションモデルを適応的に構築するために、2週間分のトレーニングデータが収集される必要があり得る。他のケースでは、より多くの時間が必要とされる場合も、より少ない時間が必要とされる場合もある(たとえば、3日、3週間など)。
【００７３】
一部の実装形態では、トレーニングプロセスは、図3Bに示すユーザインタフェース301などのユーザインタフェースに徐々に投入を行い、改善することができる。このような実装形態では、ユーザは、トレーニングプロセスによって投入されるどの情報も記入し、または変えることによって、トレーニングプロセスを迅速にすることができる。
【００７４】
十分なトレーニングが完了されると、ユーザは、自分のモバイル装置を動作モードに切り換えればよく、このモードにおいて、モバイル装置は、リアルタイム加速度データを監視し、リアルタイム加速度データをモバイル装置にある様々な加速度プロファイルと比較し、適応的に構成されたモデルに基づいて適切なアプリケーションをアクティブ化する。
【００７５】
一部の実装形態では、トレーニングモードは、加速度/アプリケーションモデルを改善し、または更新するのに用いることができる。つまり、ユーザインタフェース301に(ユーザによって手動で、トレーニングアルゴリズムによって自動的に、またはこの2つの組合せにより)投入が行われた後、モバイル装置のユーザは、(たとえば、数日間または一週間もしくは二週間)トレーニングモードに切り換えて、新規活動パターンを検出する(たとえば、アプリケーション/加速度モデルを改善する)ようにモバイル装置を自動的に更新することができる。
【００７６】
上記の説明では、加速度データを、それが表し得る活動によって説明したが、相関関係は、ある特定の加速度プロファイルに対応する活動をモバイル装置が判定する際にアプリケーションと加速度データとの間に自動的に確立することができることが、読者には理解されよう。つまり、モバイル装置は、リアルタイム加速度データが「ジョギング」に関連づけられていると判定することなく、本来周期的であり、ある特定の周波数および振幅を有し、ある特定のアプリケーション(たとえば、メディアプレーヤアプリケーション)のアクティブ化に関連づけられたリアルタイム加速度データを検出することができる。ただし、アプリケーション/加速度モデルに対する手動変更を容易にするために、ユーザは、異なる加速度プロファイルにラベルまたは活動ニックネーム(もしくはグラフィカルアイコン)を入れることができる。同様に、予め格納された加速度プロファイルまたはサードパーティによって提供され得る加速度プロファイルは、予めラベルづけされ、または記述グラフィカルアイコンに関連づけられることになり得る。
【００７７】
図2Bに戻り、適応的トレーニングについてさらに説明する。具体的には、図2Bは、トレーニングモードにおいてアプリケーション/加速度モデルを適応的に構築し、次いで動作モードにおいてそのモデルを、リアルタイム加速度データに応答してアプリケーションを自動的にアクティブ化するのに使うように、モバイル装置を適応的にトレーニングする方法例251を示す。
【００７８】
方法251は、モバイル装置がトレーニングモードにあるか、それとも動作モードにあるか判定する(252)ことを含み得る。一部の実装形態では、モードは、ユーザ入力によって判定される。具体的には、たとえば、ユーザは、モバイル装置をトレーニングモードにするように構成することができ、このケースでは、モバイル装置は、リアルタイム加速度データを検出し(254)、手動アプリケーションのアクティブ化(ならびに一部のケースでは非アクティブ化)を監視し(257)、具体的な加速度データを具体的なアプリケーションのアクティブ化と相関させるようにモデルを適応的に構築する(260)。つまり、数日間または数週間の期間に亘って、モバイル装置は、加速度データの具体的なパターンまたはシーケンスと、具体的なアプリケーションのアクティブ化との間の相関関係を学習するために、学習アルゴリズムを適用することができる。
【００７９】
一部の実装形態では、加速度プロファイル自体が適応的に構築される(260)。つまり、モバイル装置は、たとえば、図1Jに示す加速度データのウィンドウ190など、同じような加速度データ(たとえば、整合性のある、周期的特性をもつデータ)のウィンドウを識別することができる。同じような加速度データは、トレーニングモード中に平均化し、加速度プロファイルとして格納することができる。上述したように、各加速度プロファイルは、後に続く、リアルタイム加速度データとプロファイルとの比較を容易にするような他の何らかの方式で、正規化することも処理することもできる。
【００８０】
モバイル装置が、動作モードにあると判定された(252)場合、リアルタイム加速度データを検出することができ(263)、リアルタイム加速度データに比較アルゴリズムを適用して、リアルタイムデータと格納されたプロファイルとの間に合致が存在するかどうか判定する(266)ことができる。合致が存在すると判定された(266)場合、適応的に構築された(260)関連づけモデルに基づいて、適切なアプリケーションをアクティブ化する(269)(または非アクティブ化する)ことができる。
【００８１】
図5は、リアルタイム加速度データを受信し処理し、処理された加速度情報を1つまたは複数の加速度プロファイルと相関させ、相関に基づいて1つまたは複数のアプリケーションをアクティブ化することができるモバイル装置例501のブロック図である。モバイル装置例501のごくわずかの側面について、図5を参照して説明する。他の側面については、図6〜10を参照して説明する。
【００８２】
図示してある一実装形態において、モバイル装置501は、アプリケーションモジュール505(たとえば、アプリケーションを管理する、ソフトウェアに基づくオペレーティングシステムコンポーネントまたは他のコンポーネント)とインタフェースをとることができるI/O装置502(たとえば、キーボードまたはボタンおよび表示画面)を含む。アプリケーションモジュール505は、様々なアプリケーション508A、508B、508C、508Dのアクティブ化および非アクティブ化を制御することができる。アクティブアプリケーションは、たとえば、I/O装置502から入力を受信し、受信した入力を(メモリ(図示せず)に格納された、またはネットワークアクセス可能ソース(図示せず)からアクセス可能な他のデータとともに)処理し、I/O装置502に含まれる出力装置に提示されるべき出力(たとえば、グラフィカル出力)を与えることによって、様々なユーザ機能を提供することができる。
【００８３】
モバイル装置501は、加速度計511(またはリアルタイム加速度情報の別のソース)も含み得る。加速度計511は、リアルタイム加速度データを学習モジュール514に提供することができ、モジュール514は、アプリケーション508A〜Dをアクティブ化し、または非アクティブ化するためのユーザ入力を受信することもできる。一部の実装形態では、学習モジュールは、トレーニングモードにおいて、加速度データと、アプリケーションをアクティブ化するためのユーザ入力を、同時発生加速度データに基づいて適応的に相関させる。動作モードにおいて、学習モジュールは、リアルタイム加速度データおよび適応的に構築された相関関係に基づいてアプリケーションをアクティブ化することができる。一部の実装形態では、学習モジュールは、加速度プロファイルも構築する(たとえば、プロファイルに含まれるべきである加速度データのウィンドウを識別し、加速度プロファイルを適応的に構築する(たとえば、時間をかけて平均化し、または洗練する))。
【００８４】
一部の実装形態では、学習モジュール514は、相関モジュールで置き換えることができ、相関モジュールは、様々な加速度プロファイル(たとえば、図1A〜1Hに示すようなプロファイル)を格納し、加速度計511から受信されたリアルタイム加速度データが、アプリケーションが関連づけられている格納された加速度プロファイルの1つと合致するとき、アプリケーションを起動させることができる。
【００８５】
一部の実装形態では、学習モジュール514(または図示していない相関モジュール)は、GPSモジュール517(またはモバイル装置501の現在の位置情報を獲得する別のコンポーネント)から、および時間基準(たとえば、内部またはネットワークアクセス可能なクロックまたは他の時間信号)から追加入力を受信することができる。上述したように、位置情報(たとえば、GPSモジュール517からの情報)および(たとえば、時間基準520からの)時間情報のいずれかまたは両方を、相関関係を適応的に組み立てる際に使うことができる。たとえば、図3Bを参照して説明したように、相関関係は、時間フィルタリングすることも、場所フィルタリングすることも、他の何らかのパラメータに基づいてフィルタリングすることもできる。
【００８６】
ここで図6を参照すると、装置600によって取り込まれる、装置600に対応するリアルタイム加速度データに応答してアプリケーションの自動アクティブ化を容易にする例示的な装置600の外見を示してある。手短に言うと、とりわけ、装置600は、リアルタイム加速度データ(たとえば、装置に含まれる加速度計によって提供される)を分析し、リアルタイム加速度データを、装置600に格納された加速度プロファイルと比較して合致する加速度プロファイルを識別し、合致する加速度プロファイルにアプリケーションが予め関連づけられている場合はそのアプリケーションをアクティブ化するように構成されたプロセッサを含む。
【００８７】
より具体的には、装置600のハードウェア環境は、テキスト、画像、および映像をユーザに表示するディスプレイ601と、テキストデータおよびユーザコマンドを装置600に入れるキーボード602と、ディスプレイ601に表示されるオブジェクトを指し、選択し、調整するポインティングデバイス604と、アンテナ605と、ネットワーク接続606と、カメラ607と、マイクロホン609と、スピーカ610とを含む。装置600は外部アンテナ605を示しているが、装置600は、ユーザには見えない内部アンテナを含んでもよい。
【００８８】
ディスプレイ601は、装置600によって使われるソフトウェアアプリケーション、および装置600を動作させるのに使われるオペレーティングシステムプログラム向けのユーザインタフェースを作り出す映像、グラフィックス、画像、およびテキストを表示することができる。ディスプレイ601に表示することができる可能な要素は、たとえば、新規メッセージの存在をユーザにアラートする新規メールインジケータ611、通話が受信され、申し込まれ、または起こっていることを示すアクティブコールインジケータ612、データを送受信するのに、装置600によって現時点で使われているデータ標準を示すデータ標準インジケータ614、アンテナ605によって受信される信号の強度の測定値を、たとえば信号強度バーを使うことによって示す信号強度インジケータ615、残っているバッテリ寿命の測定値を示すバッテリ寿命インジケータ616、または現在時刻を出力する時計617を含む。
【００８９】
ディスプレイ601は、ウェブブラウザアプリケーションアイコン619、電話アプリケーションアイコン620、検索アプリケーションアイコン621、電話帳アプリケーションアイコン622、地図アプリケーションアイコン624、eメールアプリケーションアイコン625、または他のアプリケーションアイコンなど、ユーザにとって利用可能な様々なアプリケーションを表すアプリケーションアイコンも示すことができる。一実装例では、ディスプレイ601は、16ビット色以上が可能なクオータービデオグラフィックスアレイ(QVGA)薄膜トランジスタ(TFT)液晶ディスプレイ(LCD)である。
【００９０】
ユーザは、キーボード(または「キーパッド」)602を使って、オペレーティングシステムおよびアプリケーションを動作させ、制御するためのコマンドおよびデータを入れる。キーボード602は、標準キーボードボタンまたは単独で選択されると英数字「Q」、「W」に関連づけられ、またはキー629と組み合わされて押されると文字「*」、「1」に関連づけられるキー626、627など、英数字に関連づけられたキーを含む。単一のキーが、オペレーティングシステムまたはオペレーティングシステムによって呼び出されるアプリケーションの状態に基づいて、複数の特殊文字またはラベルなし機能を含む機能に関連づけられる場合もある。たとえば、アプリケーションが数字の入力を求めると、キー627の選択だけで、「1」を入力させ得る。
【００９１】
従来は英数字キーパッドに関連づけられているキーに加えて、キーボード602は、受信されたコールに応答させ、または新規コールを発信させるコール確立キー630、アクティブコールの終了を引き起こすコール終了キー631、ディスプレイ601内にメニューを出現させるドロップダウンメニューキー632、直前にアクセスしたネットワークアドレスに再度アクセスする戻りナビゲーションキー634、アクティブなウェブページをお気に入りサイトのブックマークフォルダ内に置かせ、またはブックマークフォルダを出現させるお気に入りキー635、装置600上で呼び出されたアプリケーションを所定のネットワークアドレスにナビゲートさせるホームページキー636、または多方向ナビゲーション、アプリケーション選択、ならびに電源および音量制御を提供する他のキーなど、他の特殊ファンクションキーも含む。
【００９２】
ユーザは、ポインティングデバイス604を使って、装置600および装置600上で呼び出されたアプリケーションとの対話および制御の一部として、ディスプレイ601に表示されるグラフィックスおよびテキストオブジェクトを選択し、調整する。ポインティングデバイス604は、適切な任意のタイプのポインティングデバイスであり、ディスプレイ601と組み合わせて実装されるジョイスティック、トラックボール、タッチパッド、カメラ、音声入力デバイス、タッチスクリーンデバイス、または他のどの入力デバイスでもよい。
【００９３】
アンテナ605は、外部アンテナでも内部アンテナでもよいが、二地点間無線通信、ワイヤレスローカルエリアネットワーク(LAN)通信、または場所判定を実装する無線周波数(RF)信号の送受信に使われる指向性または無指向性アンテナである。アンテナ605は、特殊化移動体無線(SMR)、セルラー、またはパーソナル通信サービス(PCS)周波数帯を用いる二地点間無線通信を容易にすることができ、任意の数のデータ標準を用いるデータの送信を実装することができる。たとえば、アンテナ605は、ワイヤレスブロードバンド(WiBro)、Worldwide Interoperability for Microwave ACCess(マイクロ波アクセスのワールドワイド相互運用性、WiMAX)、3GPP Long Term Evolution(ロングタームエボリューション、LTE)、Ultra Mobile Broadband(ウルトラモバイルブロードバンド、UMB)、高性能無線メトロポリタンネットワーク(HIPERMAN)、iBurstまたは大容量空間分割多元接続(HC-SDMA)、高速OFDMパケットアクセス(HSOPA)、高速パケットアクセス(HSPA)、HSPAエボリューション、HSPA+、高速アップロードパケットアクセス(HSUPA)、高速ダウンリンクパケットアクセス(HSDPA)、汎用アクセスネットワーク(GAN)、時分割同期符号分割多重アクセス(TD-SCDMA)、高速データ通信最適化(またはエボリューションデータ特化)(EVDO)、時分割符号分割多重アクセス(TD-CDMA)、Freedom Of Mobile Media Access(移動体メディアアクセスの自由、FOMA)、ユニバーサル移動体遠隔通信システム(UMTS)、広帯域符号分割多重アクセス(W-CDMA(登録商標))、広域展開用高速データレート(EDGE)、拡張GPRS(EGPRS)、符号分割多重アクセス2000(CDMA2000)、広帯域統合ディスパッチ強化ネットワーク(WiDEN)、高速回路交換データ(HSCSD)、汎用パケット無線サービス(GPRS)、パーソナルハンディフォンシステム(PHS)、回路交換データ(CSD)、パーソナルデジタルセルラー(PDC)、CDMAone、デジタル高度携帯電話システム(D-AMPS)、統合デジタル拡張ネットワーク(IDEN)、移動体通信用グローバルシステム(GSM(登録商標))、DataTAC、Mobitex、セルラーデジタルパケットデータ(CDPD)、Hicap、高度携帯電話システム(AMPS)、北欧携帯電話(NMP)、Autoradiopuhelin(ARP)、Autotel(自動電話)またはPublic Automated Land Mobile(PALM、公衆自動陸上移動体)、Mobiltelefonisystem D(MTD)、Offentlig Landmobil Telefoni(OLT)、高度移動電話システム(AMTS)、改良型移動電話サービス(IMTS)、移動電話システム(MTS)、プッシュトゥトーク(PTT)技術、または他の技術を用いて、装置600と基地局との間でデータを送信させることができる。W-CDMA(登録商標)、HSUPA、GSM(登録商標)、GPRS、およびEDGEネットワークを介した通信は、たとえば、QUALCOMM RTR6285(登録商標)トランシーバおよびPM7540(登録商標)電源管理回路を有するQUALCOMM MSM7200Aチップセットを使って起こり得る。
【００９４】
ワイヤレスまたはワイヤードコンピュータネットワーク接続606は、モデム接続、イーサネット(登録商標)を含むローカルエリアネットワーク(LAN)接続、またはデジタル加入者線(DSL)、ケーブル高速インターネット接続、ダイアルアップ接続、T-1ライン、T-3ライン、光ファイバ接続、もしくは衛星接続などのブロードバンドワイドエリアネットワーク(WAN)接続でよい。ネットワーク接続606は、LANネットワーク、企業もしくは政府WANネットワーク、インターネット、電話網、または他のネットワークに接続し得る。ネットワーク接続606は、ワイヤードまたはワイヤレスコネクタを使う。ワイヤレスコネクタの例は、たとえば、赤外線データ協会(IrDA)ワイヤレスコネクタ、Wi-Fiワイヤレスコネクタ、光ワイヤレスコネクタ、国電気電子技術者協会(IEEE)標準802.11ワイヤレスコネクタ、BLUETOOTH(登録商標)ワイヤレスコネクタ(BLUETOOTH(登録商標)バージョン1.2または3.0コネクタなど)、近距離無線通信(NFC)コネクタ、直交周波数分割多重(OFDM)超広帯域(UWB)ワイヤレスコネクタ、時間変調超広帯域(TM-UWB)ワイヤレスコネクタ、または他のワイヤレスコネクタを含む。ワイヤードコネクタの例は、たとえば、IEEE-1394 FIREWIREコネクタ、ユニバーサルシリアルバス(USB)コネクタ(mini-B USBインタフェースコネクタを含む)、直列ポートコネクタ、並列ポートコネクタ、または他のワイヤードコネクタを含む。別の実装形態では、ネットワーク接続606およびアンテナ605の機能は、単一のコンポーネントに統合される。
【００９５】
カメラ607は、装置600にデジタル画像を取り込ませ、スキャナ、デジタルスチルカメラ、デジタルビデオカメラ、他のデジタル入力装置でよい。一実装例では、カメラ607は、相補型金属酸化膜半導体(CMOS)を使用する3メガピクセル(MP)のカメラである。
【００９６】
マイクロホン609は、装置600に音を取り込ませ、無指向性マイクロホン、単指向性マイクロホン、両指向性マイクロホン、ショットガンマイク、または音を電気信号にコンバートする他のタイプの機器でよい。マイクロホン609は、たとえば装置600による通話中にユーザが別のユーザに話をしているとき、ユーザによって生成された音を取り込むのに使うことができる。
【００９７】
スピーカ610は、装置に、電気信号を、電話アプリケーションプログラムによって生成される、別のユーザからの声や、着信音アプリケーションプログラムから生成される着信音などの音にコンバートさせる。さらに、装置600がハンドヘルド装置として図6に示されているが、それ以外の実装形態では、装置600は、ラップトップ、ワークステーション、中型コンピュータ、メインフレーム、組込みシステム、電話、デスクトップPC、タブレットコンピュータ、PDA、または他のタイプのコンピューティング装置でよい。
【００９８】
図7は、装置600の内部アーキテクチャ700を示すブロック図である。アーキテクチャは、オペレーティングシステムまたはアプリケーションを備えるコンピュータ命令が処理される中央処理装置(CPU)701と、通信インタフェースおよびディスプレイ601に映像、グラフィックス、画像、テキストをレンダリングする処理機能を提供し、1組の内蔵制御(ボタン、テキストおよびリストなど)を提供し、多様なスクリーンサイズをサポートするディスプレイインタフェース702と、キーボード602に通信インタフェースを提供するキーボードインタフェース704と、ポインティングデバイス604に通信インタフェースを提供するポインティングデバイスインタフェース705と、アンテナ605に通信インタフェースを提供するアンテナインタフェース706と、コンピュータネットワーク接続606を介してネットワークに通信インタフェースを提供するネットワーク接続インタフェース707と、通信インタフェースおよびカメラ607からデジタル画像を取り込む処理機能を提供するカメラインタフェース708と、マイクロホン609を使って音を電気信号にコンバートし、スピーカ610を使って電気信号を音にコンバートする通信インタフェースを提供するサウンドインタフェース709と、コンピュータ命令およびデータがCPU701による処理のために揮発性メモリデバイスに格納されるランダムアクセスメモリ(RAM)710と、基本入出力(I/O)、スタートアップ、またはキーボード602からのキーストロークの受信など、基本システム機能用の不変低レベルシステムコードまたはデータが不揮発性メモリデバイスに格納される読出し専用メモリ(ROM)711と、オペレーティングシステム713、アプリケーションプログラム715(たとえば、ウェブブラウザアプリケーション、ウィジェットもしくはガジェットエンジン、および/または他のアプリケーションを必要に応じて含み、リアルタイム加速度データを分析し、リアルタイム加速度データを格納された加速度プロファイルと比較して合致する加速度プロファイルを識別し、合致する加速度プロファイルに関連づけられたアプリケーションを起動し、加速度プロファイルを適応的に組み立て、加速度データと様々なアプリケーションのアクティブ化の間の相関関係を学習するアプリケーションをさらに含む)を含むファイルおよびデータファイル716が格納される記憶媒体712または他の適切なタイプのメモリ(たとえば、RAM、ROM、プログラム可能読出し専用メモリ(PROM)、消去可能プログラム可能読出し専用メモリ(EPROM)、電気的消去可能プログラム可能読出し専用メモリ(EEPROM)、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク、ハードディスク、取外し可能カートリッジ、フラッシュドライブなど)と、装置600の、現実世界の、または相対的な位置または地理的場所を提供するナビゲーションモジュール717と、適切な交流電流(AC)または直流電流(DC)を電源コンポーネントに与える電源719と、装置600に電話網を介して音を送受信させるテレフォニーサブシステム720とを含む。こうした構成装置およびCPU701は、バス721を介して互いと通信する。
【００９９】
CPU701は、いくつかのコンピュータプロセッサの1つでよい。1つの仕組みでは、コンピュータCPU701は、複数の処理ユニットである。RAM710は、オペレーティングシステムアプリケーションプログラム、および装置ドライバなどのソフトウェアプログラムの実行中にCPU701に迅速なRAM記憶を提供するように、コンピュータバス721とインタフェースをとる。より具体的には、CPU701は、ソフトウェアプログラムを実行するために、記憶媒体712または他の媒体からRAM710のフィールドに、コンピュータ実行可能プロセスステップをロードする。データは、RAM710に格納され、RAM710で、データは実行中にコンピュータCPU701によってアクセスされる。一構成例では、装置600は、少なくとも128MBのRAM、および256MBのフラッシュメモリを含む。
【０１００】
記憶媒体712自体は、独立ディスク冗長アレイ(RAID)、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、USBフラッシュドライブ、外部ハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、高密度デジタル多用途ディスク(HD-DVD)光ディスクドライブ、内部ハードディスクドライブ、ブルーレイ光ディスクドライブ、もしくはホログラフィックデジタルデータストレージ(HDDS)光ディスクドライブ、外部ミニデュアルインラインメモリモジュール(DIMM)同期動的ランダムアクセスメモリ(SDRAM)、または外部マイクロDIMM SDRAMなど、いくつかの物理ドライブユニットを含み得る。このようなコンピュータ可読記憶媒体は、装置600からデータをオフロードし、または装置600にデータをアップロードするために、コンピュータ実行可能プロセスステップ、取外し可能および固定式メモリ媒体に格納されたアプリケーションプログラムなどに装置600をアクセスさせる。
【０１０１】
コンピュータプログラム製品は、記憶媒体712、すなわちマシン可読記憶媒体で有形に実施される。コンピュータプログラム製品は、マシンによって読み込まれると、データ処理機器に、画像データをモバイル装置に格納させるように動作する命令を含む。一部の実装形態では、コンピュータプログラム製品は、加速度データを処理し、加速度データとアプリケーションとの相関関係を適応的に構築し、リアルタイム加速度データと予め格納された加速度プロファイルとの間の合致に応答してアプリケーションをアクティブ化し、本明細書に記載する他の方法を実施する命令を含む。
【０１０２】
オペレーティングシステム713は、GOOGLEモバイル装置プラットフォームなどのLINUX(登録商標)に基づくオペレーティングシステム、APPLE MAC OS X、マイクロソフトのWINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP/WINDOWS(登録商標) MOBILE、様々なUNIX(登録商標)風のオペレーティングシステム、またはコンピュータ用の固有オペレーティングシステムもしくは組込みシステムでよい。オペレーティングシステム713向けのアプリケーション開発プラットフォームまたはフレームワークは、ワイヤレス用バイナリランタイム環境(BREW)、サンマイクロシステムズのJAVA(登録商標)SCRIPTプログラミング言語を使うJAVA(登録商標)プラットフォーム、マイクロエディション(JAVA(登録商標) ME)もしくはJAVA(登録商標)2プラットフォーム、マイクロエディション(J2ME)、PYTHON(登録商標)、FLASH(登録商標) LITE、もしくはマイクロソフトの.NET Compact、または別の適切な環境でよい。
【０１０３】
装置は、eメール、インスタントメッセージ、ビデオサービスアプリケーション、地図アプリケーション、文書処理、表計算、プレゼンテーション、ゲーム、地図、ウェブブラウジング、JAVA（登録商標）SCRIPTエンジン、または他のアプリケーションなど、オペレーティングシステム713およびアプリケーションプログラム715用のコンピュータ実行可能コードを格納する。たとえば、一実装形態では、ユーザをGOOGLE GMAILのeメールアプリケーション、GOOGLE TALKインスタントメッセージアプリケーション、YOUTUBE映像サービスアプリケーション、GOOGLE MAPSまたはGOOGLE EARTH地図アプリケーション、またはGOOGLE PICASA画像編集およびプレゼンテーションアプリケーションにアクセスさせることができる。アプリケーションプログラム715は、TAFRI(登録商標)ウィジェットエンジンなどのウィジェットまたはガジェットエンジン、WINDOWS（登録商標） SIDEBARガジェットエンジンやKAPSULES(登録商標)ガジェットエンジンなどのマイクロソフトのガジェットエンジン、KONFABULTORT(登録商標)ウィジェットエンジンなどのYAHOO!ウィジェットエンジン、APPLE DASHBOARDウィジェットエンジン、GOOGLEガジェットエンジン、KLIPFOLIOウィジェットエンジン、OPERA(登録商標)ウィジェットエンジン、WIDSETS(登録商標)ウィジェットエンジン、固有ウィジェットもしくはガジェットエンジン、またはデスクトップ上の、物理的に呼び起されたアプレット向けのホストシステムソフトウェアを提供する他のウィジェットもしくはガジェットエンジンも含み得る。
【０１０４】
リアルタイム加速度の分析に基づく、アプリケーションの自動的なアクティブ化が可能であるが、本明細書に記載する機能を、動的リンクライブラリ(DLL)として、またはFOXFIREウェブブラウザ、APPLE SAFARIウェブブラウザまたはマイクロソフトのインターネットエクスプローラウェブブラウザなどのインターネットウェブブラウザなど、他のアプリケーションプログラムへのプラグインとして実装することも可能であり得る。
【０１０５】
ナビゲーションモジュール717は、全地球測位システム(GPS)信号、全地球的航法衛星システム(GLONASS)、Galileo測位システム、Beidou衛星航法および測位システム、慣性航法システム、推測航法システムを使い、または住所、インターネットプロトコル(IP)アドレス、もしくはデータベース中の位置情報にアクセスすることなどによって、装置の絶対または相対位置を判定することができる。ナビゲーションモジュール717は、1つまたは複数の加速度計を使うことなどによって、装置600の角変位、配向、または速さを測定するのに使うこともできる。
【０１０６】
図8は、オペレーティングシステム713がGOGGLEモバイル装置プラットフォームであるケースにおいて、装置600によって使われるオペレーティングシステム713の例示的なコンポーネントを示すブロック図である。オペレーティングシステム713は、複数のプロセスを呼び出し、その間、関連づけられた電話アプリケーションが応答可能であり、不安定なアプリケーションがオペレーティングシステムの障害(またはクラッシュ)を引き起こさないことを保証する。タスク交換を用いて、オペレーティングシステム713は、関連づけられた各アプリケーションの状態を失うことなく、通話している間、アプリケーションの切換えを可能にする。オペレーティングシステム713は、アプリケーションフレームワークを使って、コンポーネントの再利用を奨励し、ポインティングデバイスとキーボード入力を組み合わせ、ピボット演算を可能にすることによって大規模なユーザ経験を提供することができる。したがって、オペレーティングシステムは、高度な、標準に基づくウェブブラウザを使いながら、豊かなグラフィックスシステムおよびメディア経験を提供することができる。
【０１０７】
一部の実装形態では、オペレーティングシステム713は、6つのコンポーネント、すなわちカーネル800、ライブラリ801、オペレーティングシステムランタイム802、アプリケーションライブラリ804、システムサービス805、およびアプリケーション806に編成される。カーネル800は、オペレーティングシステム713およびアプリケーションプログラム715などのソフトウェアを、ディスプレイインタフェース702を介してディスプレイ601と対話させるディスプレイドライバ807と、ソフトウェアをカメラ607と対話させるカメラドライバ809と、BLUETOOTH(登録商標)ドライバ810と、M-Systemsドライバ811と、バインダ(IPC)ドライバ812と、USBドライバ814と、キーボードインタフェース704を介してソフトウェアをキーボード602と対話させるキーパッドドライバ815と、WiFiドライバ816と、サウンドインタフェース709を介してソフトウェアをマイクロホン609およびスピーカ610と対話させるオーディオドライバ817と、ソフトウェアを電源719と対話させ、電源719を管理する電源管理コンポーネント819とを含む。モバイル装置600に含まれる加速度計とアプリケーションプログラムを対話させるための加速度計ドライバ818を含んでもよい。
【０１０８】
BLUETOOTH(登録商標)ドライバは、一実装形態ではLINUX(登録商標)に基づくオペレーティングシステム向けのBlueZ BLUETOOTH(登録商標)スタックに基づき、ヘッドセットおよびハンズフリー装置向けのプロファイルサポート、ダイアルアップネットワーキング、パーソナルエリアネットワーキング(PAN)、またはオーディオストリーミング(Advance Audio Distribution Profile(A2DP)またはAudio/Video Remote Control Profile(AVRCP)によるもの)を提供する。BLUETOOTH(登録商標)ドライバは、スキャン、ペアリングおよび非ペアリング用のJAVA(登録商標)結合、ならびにサービス照会を提供する。
【０１０９】
ライブラリ801は、効率的JAVA（登録商標）アプリケーションプログラミングインタフェース(API)層を使って標準映像、オーディオおよび静止フレーム形式(動画像データ圧縮標準規格(MPEG)-4、H.264、MPEG-1オーディオレイヤー3(MP3)、音楽データ信号圧縮方式(AAC)、適応多重レート方式(AMR)、静止画像圧縮伸長国際標準規格(JPEG)、およびそれ以外など)をサポートするメディアフレームワーク820と、サーフェスマネージャ821と、2次元アプリケーション描画向けの簡易グラフィックスライブラリ(SGL)822と、ゲームおよび3次元レンダリング用の組込みシステム向けオープングラフィックスライブラリ(OpenGL ES)824と、C標準ライブラリ(LIBC)825と、LIBWEBCOREライブラリ826と、FreeTypeライブラリ827と、SSL829と、SQLiteライブラリ830とを含む。
【０１１０】
オペレーティングシステムランタイム802は、コアJAVA（登録商標）ライブラリ831、およびDalvik仮想マシン832を含む。Dalvik仮想マシン832は、カスタマイズされたファイル形式(.DEX)を稼働するカスタム仮想マシンである。
【０１１１】
オペレーティングシステム713は、図8に示すように、MIDP JAVA（登録商標）仕様要求(JSR)コンポーネント、MIDPランタイム、およびMIDPアプリケーションなどのMobile Information Device Profile(MIDP、携帯情報機器プロファイル)コンポーネントも含み得る。MIDPコンポーネントは、装置600上で稼働するMIDPアプリケーションをサポートすることができる。
【０１１２】
グラフィックスレンダリングに関して、システム規模のコンポーザは、その制作用のOpenGL ES 824および2次元ハードウェアアクセラレータを使って、サーフェスおよびフレームバッファを管理し、ウィンドウ遷移を扱う。
【０１１３】
Dalvik仮想マシン832は、ランタイムメモリを非常に効率的に使い、CPU最適化型バイトコードインタープリタを実装し、各装置ごとに複数の仮想マシンプロセスをサポートするので、組込み型環境とともに使うことができる。カスタムファイル形式(.DEX)は、メモリを削減するための共有の一定プール、プロセス間共有を向上するための読取り専用構造、解析時間を削減するための簡潔な固定幅命令を用いて、ランタイム効率のために設計され、そうすることによって、インストールされたアプリケーションを構築時にカスタムファイル形式に翻訳させる。関連づけられたバイトコードは、迅速な翻訳のために設計される。というのは、スタックに基づくのではなくレジスタに基づく命令が、メモリを削減し、オーバーヘッドをディスパッチするからであり、固定幅命令の使用により解析が簡略化されるからであり、16ビットコードユニットにより読込みが最小限になるからである。
【０１１４】
アプリケーションライブラリ804は、ビューシステム834、リソースマネージャ835、およびコンテンツプロバイダ837を含む。システムサービス805は、ステータスバー839と、アプリケーションランチャー840と、インストールされたすべてのアプリケーションに関する情報を保持するパッケージマネージャ841と、テレフォニーサブシステム720にアプリケーションレベルJAVA（登録商標）インタフェースを提供するテレフォニーマネージャ842と、ステータスバーおよび画面上の通知への、すべてのアプリケーションのアクセスを可能にする通知マネージャ844と、複数のウィンドウをもつ複数のアプリケーションにディスプレイ601を共有させるウィンドウマネージャ845と、別個のプロセス中で各アプリケーションを稼働し、アプリケーション寿命周期を管理し、アプリケーション間履歴を維持するアクティビティマネージャ846とを含む。
【０１１５】
アプリケーション806は、ホームアプリケーション847、ダイヤラーアプリケーション849、電話帳アプリケーション850、ブラウザアプリケーション851、および加速度データ処理コンポーネント852(またはコンポーネント一式852)を含む。
【０１１６】
テレフォニーマネージャ842は、イベント通知(電話状態、ネットワーク状態、加入者識別モジュール(SIM)状況、または音声メール状況など)を提供し、状態情報(ネットワーク情報、SIM情報、または音声メールの存在など)へのアクセスを可能にし、コールを開始し、コール状態を照会し制御する。ブラウザアプリケーション851は、ナビゲーション機能を含む、全画面表示の、デスクトップのようなマネージャの中にウェブページをレンダリングする。さらに、ブラウザアプリケーション851は、単一列の小さいスクリーンレンダリングを可能にし、他のアプリケーションへのHTMLビューの組込みを可能にする。
【０１１７】
図9は、オペレーティングシステムカーネル900によって実装される例示的なプロセスを示すブロック図である。概して、アプリケーションおよびシステムサービスは別個のプロセス中で稼働し、ここで、アクティビティマネージャ910は各アプリケーションを別個のプロセス中で稼働し、アプリケーションの寿命周期を管理する。アプリケーションは、それ自体のプロセス中で稼働するが、多くのアクティビティまたはサービスが、同じプロセス中で稼働することもできる。プロセスは、アプリケーションのコンポーネントを稼働するのに必要とされると、開始され停止され、プロセスは、資源を取り戻すために終了することができる。各アプリケーションには、独自のプロセスが割り当てられ、プロセス名はアプリケーションのパッケージ名であり、アプリケーションの個々の部分には、別のプロセス名を割り当てることができる。
【０１１８】
一部のプロセスは、永続的でよい。たとえば、サーフェスマネージャ916、ウィンドウマネージャ914、またはアクティビティマネージャ910などのコアシステムコンポーネントに関連づけられたプロセスは、装置600の電源が入っている間は絶えず実行することができる。さらに、一部のアプリケーション固有プロセスも永続的でよい。たとえば、ダイヤラーアプリケーション849または加速度データ処理コンポーネント852に関連したプロセスは永続的でよい。
【０１１９】
オペレーティングシステムカーネル900によって実装されるプロセスは概して、システムサービスプロセス901、ダイヤラープロセス902、ブラウザプロセス904、およびマッププロセス905にカテゴリ化することができる。システムサービスプロセス901は、ステータスバー839に関連づけられたステータスバープロセス906と、アプリケーションランチャー840に関連づけられたアプリケーションランチャープロセス907と、パッケージマネージャ841に関連づけられたパッケージマネージャプロセス909と、アクティビティマネージャ846に関連づけられたアクティビティマネージャプロセス910と、グラフィックス、ローカライズ文字列、およびXMLレイアウト記述へのアクセスを提供するリソースマネージャ835に関連づけられたリソースマネージャプロセス911と、通知マネージャ844に関連づけられた通知マネージャプロセス912と、ウィンドウマネージャ845に関連づけられたウィンドウマネージャプロセス914と、コアJAVA（登録商標）ライブラリ831に関連づけられたコアJAVA（登録商標）ライブラリプロセス915と、サーフェスマネージャ821に関連づけられたサーフェスマネージャプロセス916と、Dalvik仮想マシン832に関連づけられたDalvik仮想マシンプロセス917と、LIBCライブラリ825に関連づけられたLIBCプロセス919と、加速度データ処理コンポーネント852に関連づけられた加速度データ処理プロセスとを含む。
【０１２０】
ダイヤラープロセス902は、ダイヤラーアプリケーション849に関連づけられたダイヤラーアプリケーションプロセス921と、テレフォニーマネージャ842に関連づけられたテレフォニーマネージャプロセス922と、コアJAVA（登録商標）ライブラリ831に関連づけられたコアJAVA（登録商標）ライブラリプロセス924と、Dalvik仮想マシン832に関連づけられたDalvik仮想マシンプロセス925と、LIBCライブラリ825に関連づけられたLIBCプロセス926とを含む。
【０１２１】
ブラウザプロセス904は、ブラウザアプリケーション851に関連づけられたブラウザアプリケーションプロセス927と、コアJAVA（登録商標）ライブラリ831に関連づけられたコアJAVA（登録商標）ライブラリプロセス929と、Dalvik仮想マシン832に関連づけられたDalvik仮想マシンプロセス930と、LIBWEBCOREライブラリ826に関連づけられたLIBWEBCOREプロセス931と、LIBCライブラリ825に関連づけられたLIBCプロセス932とを含む。
【０１２２】
マッププロセス905は、マップアプリケーションプロセス934、コアJAVA（登録商標）ライブラリプロセス935、Dalvik仮想マシンプロセス936、およびLIBCプロセス937を含む。特に、Dalvik仮想マシンプロセスなど、一部のプロセスは、システムサービスプロセス901、ダイヤラープロセス902、ブラウザプロセス904、およびマッププロセス905の1つまたは複数に存在し得る。
【０１２３】
図10は、本明細書に記載する技法とともに使うことができる、一般的コンピュータ装置1000および一般的モバイルコンピュータ装置1050の例を示す。コンピューティング装置1000は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形のデジタルコンピュータを表すことを意図している。コンピューティング装置1050は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティング装置など、様々な形のモバイル装置を表すことを意図している。ここに示してあるコンポーネント、その接続および関係、ならびにその機能は、例示に過ぎないことを意味しており、本書において説明し、かつ/または特許請求する本発明の実装形態を限定することは意味していない。
【０１２４】
コンピューティング装置1000は、プロセッサ1002と、メモリ1004と、記憶装置1006と、メモリ1004および高速拡張ポート1010に接続する高速インタフェース1008と、低速バス1014および記憶装置1006に接続する低速インタフェース1012とを含む。コンポーネント1002、1004、1006、1008、1010、1012はそれぞれ、様々なバスを使って相互接続され、共通マザーボード上に、または必要に応じて他の方式で搭載することができる。プロセッサ1002は、メモリ1004内または記憶装置1006上に格納された命令を含む、コンピューティング装置1000内での実行用の命令を処理して、GUI向けのグラフィカル情報を、高速インタフェース1008に結合されたディスプレイ1016などの外部入出力装置に表示することができる。他の実装形態では、必要に応じて、複数のプロセッサおよび/または複数のバスを、複数のメモリおよび複数のタイプのメモリとともに使うことができる。また、複数のコンピューティング装置1000を接続することができ、各装置は、必要な動作部分を(たとえば、サーババンク、ブレードサーバ群、またはマルチプロセッサシステムとして)提供する。
【０１２５】
メモリ1004は、コンピューティング装置1000内部の情報を格納する。一実装形態では、メモリ1004は、揮発性メモリユニット(1つまたは複数)である。別の実装形態では、メモリ1004は、不揮発性メモリユニット(1つまたは複数)である。メモリ1004は、磁気または光ディスクなど、別の形のコンピュータ可読媒体でもよい。
【０１２６】
記憶装置1006は、コンピューティング装置1000に大容量記憶を提供することが可能である。一実装形態では、記憶装置1006は、フロッピー（登録商標）ディスク装置、ハードディスク装置、光ディスク装置、もしくはテープ装置、フラッシュメモリまたは他の同様の固体状態メモリデバイスなどのコンピュータ可読媒体、あるいは記憶エリアネットワーク内の装置を含む装置アレイまたは他の構成でもよく、それらを含んでもよい。コンピュータプログラム製品は、情報担体で有形に実施することができる。コンピュータプログラム製品は、実行されると、上述したような1つまたは複数の方法を実施する命令も含み得る。情報担体は、メモリ1004、記憶装置1006、プロセッサ1002上のメモリ、もしくは伝播信号などのコンピュータまたはマシン可読媒体である。
【０１２７】
高速コントローラ1008は、コンピューティング装置1000のための帯域消費型動作を管理し、低速コントローラ1012は、より低い帯域消費型動作を管理する。このような機能割振りは、例示に過ぎない。一実装形態では、高速コントローラ1008は、メモリ1004、ディスプレイ1016(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)、および高速拡張ポート1010に結合され、ポート1010は、様々な拡張カード(図示せず)を受け入れることができる。この実装において、低速コントローラ1012は、記憶装置1006および低速拡張ポート1014に結合される。低速拡張ポートは、様々な通信ポート(たとえば、USB、ブルートゥース、イーサネット（登録商標）、ワイヤレスイーサネット（登録商標）)を含み得るが、キーボード、ポインティングデバイス、スキャナなど、1つもしくは複数の入出力装置、またはスイッチやルータなどのネットワーク装置に、たとえば、ネットワークアダプタを介して結合することができる。
【０１２８】
コンピューティング装置1000は、図に示すように、いく通りかの形で実装することができる。たとえば、標準サーバ1020として、またはこのようなサーバ群の中で何度も実装することができる。ラックサーバシステム1024の一部として実装することもできる。さらに、ラップトップコンピュータ1022などのパーソナルコンピュータで実装することができる。あるいは、コンピューティング装置1000にあるコンポーネントは、装置1050などのモバイル装置(図示せず)内の他のコンポーネントと組み合わせることができる。このような装置はそれぞれ、コンピューティング装置1000、1050の1つまたは複数を含んでよく、システム全体を、互いと通信する複数のコンピューティング装置1000、1050から作り上げることができる。
【０１２９】
コンピューティング装置1050は、他のコンポーネントの中でも、プロセッサ1052、メモリ1064、ディスプレイ1054などの入出力装置、通信インタフェース1066、およびトランシーバ1068を含む。装置1050には、追加記憶を提供するために、マイクロドライブなどの記憶装置または他の装置を設けることもできる。コンポーネント1050、1052、1064、1054、1066、1068はそれぞれ、様々なバスを使って相互接続され、コンポーネントのいくつかは、共通マザーボード上に、または必要に応じて他の方式で搭載することができる。
【０１３０】
プロセッサ1052は、メモリ1064に格納された命令を含む、コンピューティング装置1050内部の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップからなるチップセットとして実装することができる。プロセッサは、たとえば、ユーザインタフェースの制御、装置1050によって稼働されるアプリケーション、および装置1050によるワイヤレス通信など、装置1050の他のコンポーネントの調整を可能にし得る。
【０１３１】
プロセッサ1052は、ディスプレイ1054に結合された制御インタフェース1058およびディスプレイインタフェース1056を介してユーザと通信することができる。ディスプレイ1054は、たとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)やOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術でよい。ディスプレイインタフェース1056は、グラフィカルな、および他の情報をユーザに提示するようにディスプレイ1054を駆動する適切な回路構成を備え得る。制御インタフェース1058は、ユーザからコマンドを受信し、プロセッサ1052への提出用にコマンドをコンバートすることができる。さらに、装置1050と他の装置との近郊通信を可能にするように、プロセッサ1052と通信する外部インタフェース1062を設けることができる。外部インタフェース1062は、たとえば、一部の実装形態ではワイヤード通信を、または他の実装形態ではワイヤレス通信を提供することができ、複数のインタフェースを使うこともできる。
【０１３２】
メモリ1064は、コンピューティング装置1050内部の情報を格納する。メモリ1064は、コンピュータ可読媒体(1つまたは複数)、揮発性メモリユニット(1つもしくは複数)、または不揮発性メモリユニット(1つもしくは複数)の1つまたは複数として実装することができる。拡張メモリ1074を設け、たとえば、SIMM(シングルインラインメモリモジュール)カードインタフェースを含み得る拡張インタフェース1072を介して装置1050に接続することもできる。このような拡張メモリ1074は、装置1050に予備記憶空間を提供することもでき、装置1050用のアプリケーションまたは他の情報を格納することもできる。具体的には、拡張メモリ1074は、上述したプロセスを実施し、または補うための命令を含んでよく、安全な情報を含んでもよい。したがって、たとえば、拡張メモリ1074は、セキュリティモジュールとして装置1050に設けることができ、装置1050の安全な使用を許可する命令でプログラミングすることができる。さらに、安全なアプリケーションを、ハッキングできないようにSIMMカードの上に識別情報を置くなど、SIMMカードにより、付加情報とともに提供することができる。
【０１３３】
メモリは、後で論じるように、たとえば、フラッシュメモリおよび/またはNVRAMメモリを含み得る。一実装形態では、コンピュータプログラム製品は、情報担体で有形に実施される。コンピュータプログラム製品は、実行されると、上述したような1つまたは複数の方法を実施する命令を含む。情報担体は、メモリ1064、拡張メモリ1074、プロセッサ1052上のメモリ、またはたとえばトランシーバ1068もしくは外部インタフェース1062を介して受信することができる、伝播信号などのコンピュータまたはマシン可読媒体である。
【０１３４】
装置1050は、必要な場合はデジタル信号処理回路構成を含み得る通信インタフェース1066を介してワイヤレスで通信を行うことができる。通信インタフェース1066は、中でも特に、GSM(登録商標)音声コール、SMS、EMS、もしくはMMSメッセージ通信、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなど、様々なモードまたはプロトコルの下で通信を可能にし得る。このような通信は、たとえば、無線周波数トランシーバ1068を介して起こり得る。さらに、短距離通信は、ブルートゥース、WiFi、または他のこのようなトランシーバ(図示せず)を用いるなどして起こり得る。さらに、GPS(全地球測位システム)受信機モジュール1070は、装置1050上で稼働するアプリケーションによって必要に応じて使うことができる追加ナビゲーションおよび場所関連ワイヤレスデータを装置1050に提供することができる。
【０１３５】
装置1050は、オーディオコーデック1060を使って可聴的に通信を行うこともでき、コーデック1060は、ユーザから発話情報を受信し、使用可能なデジタル情報にコンバートすることができる。オーディオコーデック1060は同様に、たとえば装置1050のハンドセットにあるスピーカを介するなどして、ユーザに対して可聴音を生成することができる。このような音は、音声通話からの音を含んでよく、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでよく、装置1050上で動作するアプリケーションによって生成された音も含んでよい。
【０１３６】
コンピューティング装置1050は、図に示すように、いく通りかの形で実装することができる。たとえば、セルラー電話1080として実装することができる。スマートフォン1082、携帯情報端末、または他の同様のモバイル装置の一部として実装することもできる。
【０１３７】
本明細書に記載するシステムおよび技法の様々な実装形態は、デジタル電子回路機構、集積回路機構、特殊設計ASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せにおいて実現することができる。こうした様々な実装形態は、記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置との間でデータおよび命令を受信し、データおよび命令を送信するように結合され、特殊でも汎用でもよい、少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または翻訳可能な1つまたは複数のコンピュータプログラムでの実装を含み得る。
【０１３８】
こうしたコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能プロセッサ向けのマシン命令を含み、高度手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/マシン言語で実装することができる。本明細書で使用する「マシン可読媒体」「コンピュータ可読媒体」という用語は、マシン命令をマシン可読信号として受信するマシン可読媒体を含むプログラム可能プロセッサにマシン命令および/またはデータを提供するのに使われる、どのコンピュータプログラム製品、機器および/または装置(たとえば、磁気ディスク、光ディスク、メモリ、プログラム可能論理素子(PLD))も指す。「マシン可読信号」という用語は、プログラム可能プロセッサにマシン命令および/またはデータを提供するのに使われるどの信号も指す。
【０１３９】
ユーザとの対話を可能にするために、本明細書に記載するシステムおよび技法は、ユーザに情報を表示する表示装置(たとえば、CRT(陰極線チューブ)やLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を与えるためのキーボードおよびポインティングデバイス(たとえば、マウスやトラックボール)とを有するコンピュータ上で実装することができる。ユーザとの対話を可能にするための、他の種類の装置を使うこともできる。たとえば、ユーザに与えられるフィードバックは、どの形の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)でもよく、ユーザからの入力は、音響、発話、または触覚入力を含む、どの形でも受信することができる。
【０１４０】
本明細書に記載するシステムおよび技法は、バックエンドコンポーネント(たとえば、データサーバとして)を含む、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、本明細書に記載するシステムおよび技法の実装形態とユーザが対話し得るためのグラフィカルユーザインタフェースもしくはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステム、あるいはこのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのどの組合せにおいても実装することができる。システムのコンポーネントは、どの形または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によっても相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含む。
【０１４１】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは概して、互いから離れており、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼働し、互いとのクライアント/サーバ関係を有するコンピュータプログラムのおかげで起こる。
【０１４２】
いくつかの実装形態について説明した。それにも関わらず、開示した実装形態の精神および範囲から逸脱することなく、様々な修正を行い得ることが理解されよう。たとえば、多くの例は、モバイル装置というコンテキストで挙げてあるが、本明細書に記載するシステムおよび方法は、たとえば、(のろのろ運転の高速道路交通状態、順調に流れている高速道路交通状態、都市部の交通状態などの検出に基づいて、異なるアプリケーションをアクティブ化することができる)ダッシュボード内車両ナビゲーションシステムまたは車両コンピュータを含む、従来はモバイルとして特徴づけられない装置に適用することもできる。他の例として、本明細書に記載するシステムおよび方法は、(たとえば、水面の揺れまたは他のパラメータを検出し、それに従ってアプリケーションをアクティブ化する)海洋装置にも、地震活動、強風などの検出に応答してアプリケーションをアクティブ化することができる消費財にも適用することができる。アプリケーションのアクティブ化というコンテキストにおいて様々な例を挙げてきたが、アプリケーションは、リアルタイム加速度データと加速度プロファイルとの間の合致に応答して非アクティブ化することもできる。さらに、図に示す論理フローは、望ましい結果を達成するために、図示してある特定の順序も、連続順も要求するものではない。さらに、記載したフローに他のステップを与えても、ステップを排除してもよく、かつ記載したシステムに他のコンポーネントを追加しても、取り除いてもよい。したがって、他の実装形態も、添付の請求項の範囲内である。
【符号の説明】
【０１４３】
301  ユーザインタフェース
304  メディアプレーヤアプリケーション
306  モバイル装置、加速度プロファイル
310  ブラウザアプリケーション
312  マップアプリケーション
314  カレンダアプリケーション
318  メッセージ通信アプリケーション、ブラウザアプリケーション
322  フィルタ情報
328  メディアプレーヤアプリケーション
330  オーディオブックアプリケーション
340  フィルタ情報
351  ユーザインタフェース
501  モバイル装置
502  I/O装置
505  アプリケーションモジュール
508  アプリケーション
511  加速度計
514  学習モジュール
517  GPSモジュール
520  時間基準
【図１Ａ】
0005658037.tif 000002
【図１Ｂ】
0005658037.tif 000003
【図１Ｃ】
0005658037.tif 000004
【図１Ｄ】
0005658037.tif 000005
【図１Ｅ】
0005658037.tif 000006
【図１Ｆ】
0005658037.tif 000007
【図１Ｇ】
0005658037.tif 000008
【図１Ｈ】
0005658037.tif 000009
【図１Ｊ】
0005658037.tif 000010
【図２Ａ】
0005658037.tif 000011
【図２Ｂ】
0005658037.tif 000012
【図３Ａ】
0005658037.tif 000013
【図３Ｂ】
0005658037.tif 000014
【図３Ｃ】
0005658037.tif 000015
【図４Ａ】
0005658037.tif 000016
【図４Ｂ】
0005658037.tif 000017
【図５】
0005658037.tif 000018
【図６】
0005658037.tif 000019
【図７】
0005658037.tif 000020
【図８】
0005658037.tif 000021
【図９】
0005658037.tif 000022
【図１０】
0005658037.tif 000023