(57)【要約】様々な異なる関心領域が特定される。これらの領域は、ジオフェンスとも呼ばれる地理的領域である。コンピューティングデバイスがジオフェンス内に存在するかどうかは、ジオフェンスの位置及びコンピューティングデバイスの位置に基づいて判定することができる。コンピューティングデバイスの位置は、無線ネットワーキング三角測位、セルラ測位、全地球航法衛星システム測位、ネットワークアドレス測位等といった様々な異なる位置判定技術を用いて判定することができる。どの技術が使用されるかと、そのような技術がいつ使用されるかと、を決定して、コンピューティングデバイスにおける電力消費を低減させるために、様々な電力節約技術が実施される。
2016531277.tif 000002
【特許請求の範囲】
【請求項１】
１以上のジオフェンスのセットを選択するステップであって、前記選択は、１以上のジオフェンスの前記セットに関するジオフェンスイベントを検出する際に使用される所望される精度と、コンピューティングデバイスから、１以上のジオフェンスの前記セットのうちの少なくとも１つのジオフェンスまでの距離と、の両方に少なくとも部分的に基づく、ステップと、
１以上の電力節約技術に基づいて、複数の位置判定モジュールのうち、前記コンピューティングデバイスの位置を判定するためにどの位置判定モジュールを使用するかと、前記複数の位置判定モジュールのうちの１以上の位置判定モジュールに前記コンピューティングデバイスの前記位置をどれくらいの頻度で判定させるかと、の両方を決定するステップと、
を含む方法。
【請求項２】
前記コンピューティングデバイスの前記位置及び前記の選択されたジオフェンスに基づく１以上のジオフェンスイベントの発生を検出するステップ
をさらに含む、請求項１記載の方法。
【請求項３】
決定する前記ステップは、
前記複数の位置判定モジュールのうちの第１の位置判定モジュールを呼び出すステップであって、前記第１の位置判定モジュールは、ジオフェンスイベントを判定するための所望される精度を有する、ステップと、
前記第１の位置判定モジュールにより閾時間量内に位置が判定されなかったことに応じて、前記複数の位置判定モジュールのうちの第２の位置判定モジュールを呼び出すステップと、
を含む、請求項１記載の方法。
【請求項４】
複数の位置判定モジュールのうち、前記コンピューティングデバイスの位置を判定するためにどの位置判定モジュールを使用するかを前記決定することは、複数のジオフェンスのセットのうちの１つのジオフェンスから出たことを検出するために、複数のジオフェンスのセットのうちの１つのジオフェンスに入ったことを検出することよりも、より低電力の位置判定モジュールを使用する、請求項１記載の方法。
【請求項５】
決定する前記ステップは、
接続信号又は接続解除信号が送信機から受信されるまで、前記複数の位置判定モジュールのうちの１つの位置判定モジュールに前記コンピューティングデバイスの前記位置を判定させるのを遅らせるステップ
を含む、請求項１記載の方法。
【請求項６】
ジオフェンスイベントが通知されるプログラムのプログラム状態に基づいて、前記コンピューティングデバイスの前記位置が判定される頻度を減らすステップ
をさらに含む、請求項１記載の方法。
【請求項７】
決定する前記ステップは、
前記コンピューティングデバイスの状態に基づいて、前記複数の位置判定モジュールのうちの１つの位置判定モジュールに前記コンピューティングデバイスの前記位置を判定させるのを遅らせるステップ
を含む、請求項１記載の方法。
【請求項８】
前記コンピューティングデバイスに対する通知が中断されたことに応じて、前記コンピューティングデバイスの前記位置が判定される頻度を減らすステップ
をさらに含む、請求項１記載の方法。
【請求項９】
コンピューティングデバイスであって、
複数のジオフェンスに関するジオフェンスデータを記憶するデータ記憶部と、
ハードウェアにより少なくとも部分的に実装されている１以上の位置判定モジュールであって、各位置判定モジュールは、当該コンピューティングデバイスの位置を提供するよう構成されている、１以上の位置判定モジュールと、
前記複数のジオフェンスのうちの１以上のジオフェンスのサイズと、前記複数のジオフェンスのうち最も近いジオフェンスと、に少なくとも部分的に基づいて、複数の位置判定モジュールのうちの１以上の位置判定モジュールを呼び出す電力節約位置チェックモジュールと、
を備えたコンピューティングデバイス。
【請求項１０】
前記電力節約位置チェックモジュールは、ジオフェンスから出たことを検出するために、ジオフェンスに入ったことを検出することよりも、前記複数の位置判定モジュールのうち、より低電力で使用される位置判定モジュールを使用するよう構成されている、請求項９記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング技術が進化するにつれ、ますます強力なモバイルデバイスが利用可能になってきている。例えば、スマートフォンが一般的になっている。そのようなデバイスの移動性は、所定のアクションがデバイスの位置に基づいてデバイスにより行われる位置に基づく機能等、様々なタイプの機能の開発をもたらしている。この機能は、多くの利点を有するが、問題がないわけではない。そのような１つの問題は、デバイスの位置の判定が通常多くの電力を消費することである。これは、デバイスにおける相当な電力使用及びバッテリ寿命の低下をもたらすおそれがあり、これは、デバイスを使用する際のユーザのフラストレーション及びユーザエクスペリエンスの低下をもたらす。
【発明の概要】
【０００２】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００３】
１以上の態様に従うと、１以上のジオフェンス（例えば、関心場所）のセットが選択される。この選択は、１以上のジオフェンスのセットに関するジオフェンスイベント（例えば、ジオフェンスに入ったこと、ジオフェンスから出たこと、特定の時間量の間ジオフェンス内に留まっていること等）を検出する際に使用される所望される精度と、コンピューティングデバイスから、１以上のジオフェンスのセットのうちの少なくとも１つのジオフェンスまでの距離と、に少なくとも部分的に基づく。１以上の電力節約技術に基づいて、複数の位置判定モジュールのうち、コンピューティングデバイスの位置を判定するためにどの位置判定モジュールを使用するかと、複数の位置判定モジュールのうちの１以上の位置判定モジュールにコンピューティングデバイスの位置をどれくらいの頻度で判定させるかと、の両方の決定がなされる。
【０００４】
１以上の態様に従うと、コンピューティングデバイスは、データ記憶部、１以上の位置判定モジュール、及び電力節約位置チェックモジュール（power  saving  location  checking  module）を含む。データ記憶部は、複数のジオフェンスに関するジオフェンスデータを記憶する。１以上の位置判定モジュールは、それぞれ、コンピューティングデバイスの位置を提供するよう構成される。電力節約位置チェックモジュールは、複数のジオフェンスのうちの１以上のジオフェンスのサイズと、複数のジオフェンスのうち最も近いジオフェンスと、に少なくとも部分的に基づいて、複数の位置判定モジュールのうちの１以上の位置判定モジュールを呼び出す。
【図面の簡単な説明】
【０００５】
同じ符号が、同様の特徴を参照するために、図面全体を通じて使用される。
【図１】本明細書で説明するジオフェンスを検出するための低減電力位置判定を用いることができる例示的なシステムを示す図。
【図２】１以上の実施形態に従った、ジオフェンスを検出するための低減電力位置判定を実施する例示的なシステムを示すブロック図。
【図３】１以上の実施形態に従った、位置が判定されるべきであるかどうかをユーザが選択することを可能にするためにユーザに対して表示され得る例示的なユーザインタフェースを示す図。
【図４】１以上の実施形態に従った、ジオフェンスを検出するための低減電力位置判定のための例示的なプロセスを示すフローチャート。
【図５】１以上の実施形態に従った、様々な電力節約技術のうちの１以上の技術を利用しながらデバイスの位置を判定することの例示的な実装を示す図。
【図６】１以上の実施形態に従った、ジオフェンス追跡パラメータを特定するための例示的なプロセスを示す図。
【図７】１以上の実施形態に従った複数の重なり合っているジオフェンスを示す図。
【図８】本明細書で説明する様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティングデバイスを含む例示的なシステムを示す図。
【発明を実施するための形態】
【０００６】
ジオフェンスを検出するための低減電力位置判定（reduced  power  location  determination）について本明細書で説明する。コンピューティングデバイスがジオフェンス内に存在するかどうかは、ジオフェンスの位置及びコンピューティングデバイスの位置に基づいて判定することができる。コンピューティングデバイスにとっての様々な異なる関心領域が特定される。これらの領域は、ジオフェンスとも呼ばれる地理的領域である。コンピューティングデバイスの位置は、無線ネットワーキング三角測位、セルラ測位、全地球航法衛星システム測位、ネットワークアドレス測位等といった様々な異なる位置判定技術を用いて判定することができる。どの技術が使用されるかと、そのような技術がいつ使用されるかと、を決定して、コンピューティングデバイスにおける電力消費を低減させるために、様々な電力節約技術が実施される。
【０００７】
図１は、本明細書で説明するジオフェンスを検出するための低減電力位置判定を用いることができる例示的なシステム１００を示している。システム１００は、コンピューティングデバイス１０２を含む。コンピューティングデバイス１０２は、様々なタイプのデバイスのうちの任意のデバイスとすることができるが、典型的にはモバイルデバイスである。例えば、コンピューティングデバイス１０２は、スマートフォン又は他の無線電話機、ラップトップコンピュータ又はネットブックコンピュータ、タブレットコンピュータ又はノートパッドコンピュータ、ウェアラブルコンピュータ、移動局、エンターテイメント機器、オーディオ再生デバイス及び／又はビデオ再生デバイス、ゲームコンソール、自動車用コンピュータ等とすることができる。コンピューティングデバイス１０２は、一般に、モバイルデバイスと呼ばれる。なぜならば、デバイス１０２は、複数の異なる位置に移動される（例えば、ユーザが異なる位置に移動するときにユーザと一緒にユーザにより運ばれる）よう設計又は意図されているからである。
【０００８】
コンピューティングデバイス１０２の位置は、以下でより詳細に説明するように、無線ネットワーキング（例えば、Ｗｉ−Ｆｉ（登録商標））三角測位、セルラ測位、全地球航法衛星システム（ＧＮＳＳ）測位、ネットワークアドレス（例えば、インターネットプロトコル（ＩＰ）アドレス）測位等といった多種多様な技術のうちの任意の技術を用いて判定することができる。異なる位置判定技術は、異なる精度誤差又は関連付けられた不確定性を有し得る。例えば、位置判定技術は、１０メートル（ｍ）又は１０キロメートル（ｋｍ）の精度であり得る。したがって、コンピューティングデバイス１０２の位置は、正確には示されず、コンピューティングデバイス１０２を取り囲む領域１０４として示される。領域１０４は、コンピューティングデバイス１０２の判定された位置の不確定性を表し、したがって、コンピューティングデバイスが、特定の位置（例えば、領域１０４の略中心）に存在すると判定されたとしても、コンピューティングデバイス１０２は、実際には、領域１０４内のどこかに存在するであろう。
【０００９】
システム１００はまた、複数のジオフェンス１１２、１１４、１１６、及び１１８も示している。各ジオフェンス１１２〜１１８は、コンピューティングデバイス１０２、コンピューティングデバイス１０２のユーザ、コンピューティングデバイス１０２上で実行されているプログラム等にとって関心のある多種多様な場所のうちの任意の場所であり得る。例えば、ジオフェンス１１２〜１１８は、ユーザの自宅、ユーザの職場、ユーザにより訪問され得るレストラン又は事業所、教育施設、公共サービス（例えば、病院や図書館）、地理的場所（例えば、街や国）等であり得る。
【００１０】
ジオフェンス１１２〜１１８の位置は、コンピューティングデバイス１０２内に保持される、あるいは、コンピューティングデバイス１０２によりアクセス可能である。コンピューティングデバイス１０２の異なるユーザは、任意的に、異なるジオフェンスを保持させてもよいし、異なるジオフェンスにアクセスさせてもよいことに留意すべきである。コンピューティングデバイス１０２は、モバイル式であり、ジオフェンス１１２〜１１８に入ることもあるし、ジオフェンス１１２〜１１８から出ることもある。任意の所与の時間において、コンピューティングデバイス１０２は、ジオフェンス１１２〜１１８のうちの１つのジオフェンス内に存在することもあるし、どのジオフェンス内にも存在しないこともある。コンピューティングデバイス１０２が、特定のジオフェンスを含む領域内に存在すると判定された場合、コンピューティングデバイス１０２は、その特定のジオフェンス内に存在すると呼ばれる。一方、コンピューティングデバイス１０２が、特定のジオフェンスを含む領域内に存在しないと判定された場合、コンピューティングデバイス１０２は、その特定のジオフェンス外に存在する、あるいは、その特定のジオフェンス内に存在しないと呼ばれる。２以上のジオフェンスが重なり合う状況も生じることがあり、その場合、コンピューティングデバイス１０２は、２以上のジオフェンス１１２〜１１８内に同時に存在することもある。図１の例示は、縮尺通りではなく、ジオフェンス１１２〜１１８は、コンピューティングデバイス１０２よりもサイズが著しく大きいことがある（通常は、コンピューティングデバイス１０２よりもサイズが著しく大きい）。
【００１１】
図示される例において、領域１０４は、ジオフェンス１１２〜１１８のいずれとも交わっておらず、したがって、コンピューティングデバイス１０２は、ジオフェンス１１２〜１１８の各々の外に存在する。しかしながら、領域１０４が、ジオフェンス１１２〜１１８のうちの１つと少なくとも部分的に重なり合った場合、コンピューティングデバイス１０２は、重なり合っているジオフェンス内に存在する可能性がある。そのような状況においてコンピューティングデバイス１０２がジオフェンス内に存在すると判定されるかジオフェンス外に存在すると判定されるかは、重なり合いの存在、ジオフェンスがどれくらい重なり合っているか等に基づいて、様々な方法により判定することができる。
【００１２】
図２は、１以上の実施形態に従った、ジオフェンスを検出するための低減電力位置判定を実施する例示的なシステム２００を示すブロック図である。システム２００は、図１のコンピューティングデバイス１０２等の単一のデバイスにより実装されてもよいし、コンピューティングデバイス１０２、及びネットワーク（例えば、セルラ電話網又は他の無線電話網、インターネット等）を介してアクセスされる１以上のサーバコンピュータ等の複数のデバイスにより実装されてもよい。システム２００は、１以上の位置判定モジュール２０２、ジオフェンス判別モジュール２０４、ジオフェンスイベント検出モジュール２０６、ジオフェンストリガモジュール２０８、及びデータ記憶部２１０を含む。
【００１３】
データ記憶部２１０は、本明細書で説明する技術により用いられる様々なデータを保持する。データ記憶部２１０は、システムメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））、フラッシュメモリ又は他のソリッドステートメモリ、磁気ディスク、光ディスク等といった多種多様な記憶デバイスのうちの任意の記憶デバイスを用いて実装することができる。データ記憶部２１０に保持されるデータは、複数のジオフェンスの各々に関するジオフェンスデータを含み、複数のジオフェンスを特定する。ジオフェンスデータは、データ記憶部２１０にデータを記憶させている、データ記憶部２１０のディストリビュータ又はリセラ、システム２００を実装しているコンピューティングデバイス上で実行されるプログラム、別のデバイス又はサービス等といった様々なソースから取得することができる。ジオフェンスに関するジオフェンスデータは、ジオフェンスの境界に加えて、ジオフェンスがトリガされるために満たされるべき基準（criteria）を表す。
【００１４】
満たされるべき基準は、デバイスがジオフェンスに入ったこと、デバイスがジオフェンスから出たこと、デバイスが特定の時間量（例えば、少なくとも閾時間量、単に閾時間量等）の間ジオフェンス内に留まっていること、ジオフェンスに関する時間期間（例えば、開始時間と終了時間、開始時間と継続期間）、これらの組合せ等を指し得る。ジオフェンスがトリガされたこと（基準が満たされたこと）に応じて行われる１以上のアクションも、ジオフェンスデータの一部として含まれ得る。ジオフェンスがトリガされたときに、特定のプログラムに通知すること、特定のコンテンツがコンピューティングデバイスにより表示又は別の形で再生されること、ジオフェンスデータがデータ記憶部２１０から削除されること、これらの組合せ等といった様々なアクションのうちのいずれかが行われ得る。複数の異なるアクションが、ジオフェンスがトリガされた態様に基づいて行われ得る。例えば、１つのアクションは、デバイスがジオフェンスに入ったことに応じて行われ、別のアクションは、デバイスがジオフェンスから出たことに応じて行われる。
【００１５】
ジオフェンスの境界は、多種多様な方法のうちのいずれかの方法により指定することができる。例えば、ジオフェンスは、位置（例えば、緯度座標及び経度座標）及び半径、位置のセット（例えば、ジオフェンスの複数のコーナーの緯度座標及び経度座標）、一連のベクトル等として指定することができる。本明細書における説明において、略円形形状であるジオフェンスについて言及する。しかしながら、ジオフェンスは、様々な標準的幾何学形状（例えば、三角形、四角形、八角形等）、他の幾何学形状（例えば、自由形状又はブロブ）等のうちの任意の形状とすることができることに留意すべきである。
【００１６】
データ記憶部２１０が、システム２００の一部として、図２に示されている。データ記憶部２１０に保持されるデータは、プログラム２３０（例えば、システム２００を実装しているコンピューティングデバイスにロードされるときのプログラム２３０）から取得できることに留意すべきである。代替的に、プログラム２３０のうちの１以上のプログラムが、データ記憶部２１０に加えて使用される、あるいは、データ記憶部２１０の代わりに使用されるデータ記憶部を含んでもよい。
【００１７】
ジオフェンスは、多種多様な態様で使用することができる。例えば、行われるジオフェンスアクションは、システム２００の少なくとも一部を実装しているコンピューティングデバイスのユーザがバス停に近づいているときにユーザに通知すること、ユーザがショッピングモール又はショッピング店に入ったときにユーザにクーポンを与えること、子供が学校を離れたとき又は子供が自宅に戻ったときに子供の親に通知すること、ユーザが別の街に旅行したときに現在位置に関する天気情報を表示すること等であり得る。
【００１８】
位置判定モジュール２０２は、コンピューティングデバイス１０２の位置を判定する１以上のモジュールを含む。図示される例において、位置判定モジュール２０２は、Ｗｉ−Ｆｉ（登録商標）モジュール２１２、ＧＮＳＳモジュール２１４、ネットワークアドレスモジュール２１６、及びセルラモジュール２１８を含む。しかしながら、これらのモジュール２１２〜２１８は例であり、位置判定モジュール２０２は、モジュール２１２〜２１８の各々を必ずしも含む必要はないし、且つ／あるいは、位置判定モジュール２０２は、異なる方法によりコンピューティングデバイス１０２の位置を判定する１以上のさらなるモジュールを含んでもよいことに留意すべきである。例えば、位置判定モジュールは、ＭＥＭＳ（マイクロエレクトロメカニカルシステム）、カメラ、マイクロフォン等を含んでもよい。これらの位置判定モジュール２０２のうちのどの位置判定モジュールが呼び出されるかと、これらの位置判定モジュール２０２のうちの１以上の位置判定モジュールがいつ呼び出されるかと、が、以下でより詳細に説明するように、様々な電力節約技術に基づいて決定される。
【００１９】
位置判定モジュール２０２は電力を消費し、異なる電力量が、位置判定モジュール２０２の異なる位置判定モジュールにより消費され得ることに留意すべきである。位置判定モジュールＡが、位置判定モジュールＢよりも多くの電力を消費する場合、位置判定モジュールＡは、より高電力の位置判定モジュールと呼ばれ、位置判定モジュールＢは、より低電力の位置判定モジュールと呼ばれる。
【００２０】
Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、Ｗｉ−Ｆｉ（登録商標）信号を使用して、例えば、Ｗｉ−Ｆｉ（登録商標）信号の三角測位を使用して、コンピューティングデバイス１０２の位置を判定する。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、様々な無線アクセスポイントから、信号が受信される元である特定の無線アクセスポイント及び／又は特定の無線ネットワークの識別子を含む信号を受信することができる。例えば、無線アクセスポイントは、その無線アクセスポイントの媒体アクセス制御（ＭＡＣ）アドレス、その無線アクセスポイントによりサポートされている無線ネットワークの基本サービスセット識別子（ＢＳＳＩＤ）等を送信することができる。Ｗｉ−Ｆｉ（登録商標）モジュール２１２はまた、そのような受信信号の強度（例えば、受信信号強度インジケータ（ＲＳＳＩ）値）を測定することができる。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、コンピューティングデバイスの任意の所与の位置に関して任意の所与の時間に、複数の無線アクセスポイントから信号を受信できることに留意すべきである。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、信号が受信される元である無線アクセスポイントと、任意の特定の時間におけるその信号の強度と、を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、無線アクセスポイント、信号強度、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、信号が受信される元である無線アクセスポイントと、特定の所与の時間におけるその信号の強度と、のインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをＷｉ−Ｆｉ（登録商標）モジュール２１２に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。
【００２１】
ＧＮＳＳモジュール２１４は、ＧＮＳＳ測位を使用して、コンピューティングデバイス１０２の位置を判定する。コンピューティングデバイスの位置のこの判定は、ＧＮＳＳモジュール２１４が信号を受信できる元である、あるいはＧＮＳＳモジュール２１４が通信できる特定数の衛星（例えば、４以上の衛星）に基づく。ＧＮＳＳモジュール２１４は、多種多様な技術を用いてＧＮＳＳ機能を実装することができる。そのような技術は、全地球測位システム（ＧＰＳ）、全地球航法衛星システム（ＧＬＯＮＡＳＳ）、北斗航法システム（又はコンパス航法システム）、ガリレオ測位システム、これらの組合せ等を含むが、これらに限定されるものではない。ＧＮＳＳモジュール２１４は、ＧＮＳＳモジュール２１４が任意の特定の所与の時間において信号を受信できる元である、あるいはＧＮＳＳモジュール２１４が任意の特定の所与の時間において通信できる１以上の衛星を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、様々な公開方式（public  manner）及び／又は専用方式（proprietary  manner）のうちのいずれかの方式で動作する。
【００２２】
ネットワークアドレスモジュール２１６は、ネットワークアドレス測位を使用して、コンピューティングデバイス１０２の位置を判定する。使用されるネットワークアドレスは、コンピューティングデバイス１０２のＩＰアドレス等、様々なネットワークアドレスのうちの任意のネットワークアドレスとすることができる。ネットワークアドレスモジュール２１６は、任意の特定の時間におけるコンピューティングデバイスに割り当てられたＩＰアドレスを所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、ＩＰアドレス又はアドレス範囲、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、ネットワークアドレスモジュール２１６は、特定の所与の時間におけるコンピューティングデバイスのＩＰアドレスのインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをネットワークアドレスモジュール２１６に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。
【００２３】
セルラモジュール２１８は、セルラ測位を使用して、コンピューティングデバイス１０２の位置を判定する。セルラモジュール２１８は、様々なセルトランシーバから、信号が受信される元である特定のセルトランシーバの識別子（例えば、セルタワー識別子又はトランシーバ識別子）を含む信号を受信することができる。セルラモジュール２１８はまた、そのような受信信号の強度を測定することができる。セルラモジュール２１８は、コンピューティングデバイスの任意の所与の位置に関して任意の所与の時間に、複数のセルトランシーバから信号を受信できることに留意すべきである。セルラモジュール２１８は、信号が受信される元であるセルトランシーバと、任意の特定の時間におけるその信号の強度と、を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、セルトランシーバ、信号強度、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、セルラモジュール２１８は、信号が受信される元であるトランシーバと、特定の所与の時間におけるその信号の強度と、のインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをセルラモジュール２１８に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。追加的又は代替的に、セルラモジュール２１８は、低電力で状態変化をモニタリングして、通知を（例えば、ジオフェンスイベント検出モジュール２０６に）提供してもよく、これは、継続的なポーリングを要することなく、低電力での動き検出を可能にする。
【００２４】
位置判定モジュール２０２により判定される位置は、通常、緯度座標及び経度座標であるが、位置は、他の方法により、代替的に指定されてもよい。位置判定モジュール２０２の各々は、判定する位置の関連付けられた不確定性（位置の精度誤差又は推定精度誤差とも呼ばれる）を有する。この不確定性の程度は、例えば、位置判定モジュール自体によりレポートされる、システム２００の他のモジュール（例えば、ジオフェンスイベント検出モジュール２０６）において予め設定される、あるいはシステム２００の他のモジュール（例えば、ジオフェンスイベント検出モジュール２０６）によりアクセス可能である等、様々な方法により判定することができる。この不確定性は、位置判定モジュールにより判定された位置に関する位置不確定領域（position  uncertainty  area）をもたらす。位置不確定領域は、コンピューティングデバイス１０２が、判定された位置に関して実際に存在するであろう領域である。１以上の実施形態において、位置不確定領域は、略円形領域であり、位置判定モジュールにより判定された位置が、その略円形領域の略中心であり、その略円形領域の半径が、位置判定モジュールに関する不確定性として判定された誤差半径である。代替的に、位置不確定領域は、様々な他の標準的幾何学形状又は他の幾何学形状を用いて表されてもよい。したがって、位置判定モジュールに関する位置不確定領域は、空間的誤差分布関数（spatial  error  distribution  function）であり得る。空間的誤差分布関数の近似は、領域にわたる一様分布（flat  distribution）とすることができるが、空間的誤差分布関数の様々な他の近似又は表現が、代替的に使用されてもよい。
【００２５】
ジオフェンス判別モジュール２０４は、データ記憶部２１０において特定されるジオフェンスのうち、ジオフェンスがトリガされるかどうかに関する判定がなされるべき１以上のジオフェンスを判別する。多数の異なるジオフェンスに関するデータが、データ記憶部２１０に保持され得、それらジオフェンスのうちの１以上のジオフェンスが、ジオフェンス判別モジュール２０４により選択される。ジオフェンス判別モジュール２０４は、以下でより詳細に説明するように、ジオフェンスとコンピューティングデバイスとの間の現在距離（例えば、コンピューティングデバイスの現在判定されている位置とジオフェンスのエッジ（又は他の部分）上の位置との間の距離）に基づいて、ジオフェンスのサイズ（ジオフェンスにより包含される領域のサイズ）に基づいて、ジオフェンス追跡パラメータ（geo-fence  tracking  parameter）に基づいて等、多種多様な方法によりこの判別を行うことができる。ジオフェンス判別モジュール２０４により判別される１以上のジオフェンスは、コンピューティングデバイスの現在位置等の様々な基準に基づいてコンピューティングデバイスが入った又は出た可能性がより高いとみなされるジオフェンスであり、それら１以上のジオフェンスは、基準が変わるまで、ジオフェンス判別モジュール２０４の焦点（focus）であり得る。しかしながら、ジオフェンス判別モジュール２０４は、データ記憶部２１０内のジオフェンスのうちの任意のジオフェンスに関してジオフェンスがトリガされるかどうかを判定できることに留意すべきである。
【００２６】
ジオフェンスイベント検出モジュール２０６は、定期間隔又は不定期間隔でコンピューティングデバイスの現在位置を取得し、ジオフェンスイベントが発生したかどうかを検出する。この間隔は、現在の状態（例えば、最も近いジオフェンスまでのおおよその距離、コンピューティングデバイスの電力バジェット（power  budget）、コンピューティングデバイスの移動の推定速度等）に基づいて、動的に選択され得る。ジオフェンスイベント検出モジュール２０６は、コンピューティングデバイスの位置を取得するために位置判定モジュール２０２のうちの１以上の位置判定モジュールをいつ呼び出すか（例えば、アクティブ化するか）を決定する電力節約位置チェックモジュール２２０を含む。電力節約位置チェックモジュール２２０は、以下でより詳細に説明するように、どの位置判定モジュール２２０を呼び出すか、及び／又は、位置判定モジュール２０２をいつ呼び出すかを決定する際に、様々な電力節約技術を考慮する。
【００２７】
ジオフェンスイベントは、デバイスがジオフェンスに入ったこと、デバイスがジオフェンスから出たこと、又は、デバイスが特定の時間量の間ジオフェンス内に留まっていること（例えば、ジオフェンス内に存在していてジオフェンスから出ていないこと）を指す。ジオフェンスイベント検出モジュール２０６は、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかを判定するために、ジオフェンスのサイズに対する、判定された位置に関連付けられた不確定性を評価する。ジオフェンスイベント検出モジュール２０６はまた、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかを経時的に追跡するので、コンピューティングデバイスがジオフェンス内からジオフェンス外に移動したかどうか、コンピューティングデバイスがジオフェンス外からジオフェンス内に移動したかどうか、コンピューティングデバイスがジオフェンス内に存在していた時間量等を認識している。
【００２８】
ジオフェンストリガモジュール２０８は、ジオフェンスがトリガされるために満たされるべき基準を分析し、基準が満たされたかどうかを判定する。この判定は、ジオフェンスイベント検出モジュール２０６により判定された１以上のジオフェンスイベントの発生に少なくとも部分的に基づいてなされる。基準が満たされたことに応じて、ジオフェンストリガモジュール２０８は、ジオフェンスがトリガされることを決定し、適切なアクションを行う。行われるアクションは、データ記憶部２１０に記憶される、トリガされるジオフェンスに関するジオフェンスデータに関連付けられてもよいし、ジオフェンストリガモジュール２０８において予め設定される、別のモジュール又はデバイスから取得される等、他の方法により決定されてもよい。
【００２９】
１以上の実施形態において、ジオフェンスがトリガされたことに応じてジオフェンストリガモジュール２０８により行われるアクションは、１以上のプログラム２３０に通知することである。１以上のプログラム２３０は、アプリケーション、オペレーティングシステムモジュール又はコンポーネント等といった多種多様なタイプのプログラムを含み得る。通知すべき１以上のプログラム２３０は、ジオフェンストリガモジュール２０８において設定される、データ記憶部２１０内のジオフェンスに関するジオフェンスデータの一部として特定される、別のモジュール又はサービスから取得される等、様々な方法により特定することができる。プログラム２３０には、発生したジオフェンスイベントに加えて、任意的にさらなる情報（例えば、コンピューティングデバイスが、少なくとも閾時間量の間ジオフェンス内に存在していたこと）が通知され得る。次いで、プログラム２３０は、ジオフェンスがトリガされたことに基づいて、プログラム２３０が所望するアクションを行うことができる。
【００３０】
モジュール２０４〜２０８は、位置判定モジュール２０２から分離されたモジュールとして図示されているが、モジュール２０４〜２０８のうちの１以上のモジュールは、代替的に、位置判定モジュール２０２のうちの１つの位置判定モジュール内に少なくとも部分的に実装されてもよいことに留意すべきである。例えば、モジュール２０４〜２０８のうちの１以上のモジュールの少なくとも一部は、ＧＮＳＳモジュール２１４又はＷｉ−Ｆｉ（登録商標）モジュール２１２のハードウェアコンポーネント内に実装されてもよい。
【００３１】
複数の実施形態において、位置を判定するためのユーザ承諾を受信した後にのみ、位置が位置判定モジュール２０２により判定される。このユーザ承諾は、オプトイン承諾（opt-in  consent）であり得、この場合、ユーザは、位置が判定される前に、位置が位置判定モジュール２０２により判定されることを要求する肯定的アクション（affirmative  action）を行う。あるいは、このユーザ承諾は、オプトアウト承諾（opt-out  consent）であってもよく、この場合、ユーザは、位置が位置判定モジュール２０２により判定されるべきではないことを要求する肯定的アクションを行う。ユーザが、位置の判定を拒否することを選択しなかった場合、それは、ユーザの位置を判定することに対するユーザによる暗黙的承諾である。さらに、位置判定モジュール２０２により判定された位置は、判定された位置を受信するコンピューティングデバイス（例えば、図１のコンピューティングデバイス１０２）内に保持され得、他のデバイス又はサービスに通信される必要はない。
【００３２】
代替的に、ユーザ承諾は、特定のプログラムに対しては許可されて、他のプログラムに対しては無効にされてもよい。この場合、ユーザが、ジオフェンス追跡が使用される少なくとも１つのプログラムに対して承諾したときのみ、位置情報が判定されることになる。位置情報は、承諾されたプログラムに属するジオフェンスのみに関するエントリ及び／又はイグジットを判定するために使用される。許可されていないプログラムからの残りのジオフェンスは追跡されない。
【００３３】
図３は、１以上の実施形態に従った、位置が判定されるべきであるかどうかをユーザが選択することを可能にするためにユーザに対して表示され得る例示的なユーザインタフェースを示している。なぜ位置情報が判定されるかをユーザに説明する記載３０２を含む位置コントロールウインドウ３００が表示される。プライバシに関する声明へのリンク３０４も表示される。ユーザがリンク３０４を選択した場合、システム２００のプライバシに関する声明が表示され、ユーザの情報がどのように機密のまま保たれるかがユーザに説明される。
【００３４】
さらに、ユーザは、位置情報の判定を許可するためのラジオボタン３０６又は位置情報の判定を拒否するためのラジオボタン３０８を選択することができる。ラジオボタン３０６又は３０８が選択されると、ユーザは、その選択を保存するための「ＯＫ」ボタン３１０を選択することができる。これらラジオボタン及び「ＯＫ」ボタンは、位置情報の判定を許可又は拒否するためにユーザに対して提示され得るユーザインタフェースの例に過ぎず、様々な他の従来のユーザインタフェース技術が代替的に使用されてもよいことを理解すべきである。その後、図２のシステム２００は、ユーザの選択に従って、コンピューティングデバイスの位置を判定することに進むか、あるいは、コンピューティングデバイスの位置を判定しない。
【００３５】
図４は、１以上の実施形態に従った、ジオフェンスを検出するための低減電力位置判定を実施するための例示的なプロセス４００を示すフローチャートである。プロセス４００は、図２のシステム２００等のシステムにより実行される。プロセス４００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス４００が、一連の動作として示されているが、プロセス４００は、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス４００は、ジオフェンスを検出するための低減電力位置判定を実施するための例示的なプロセスである。ジオフェンスを検出するための低減電力位置判定を実施することについての異なる図を参照するさらなる説明が、本明細書に含まれる。
【００３６】
プロセス４００において、１以上のジオフェンスに関するジオフェンスデータが取得される（動作４０２）。ジオフェンスデータは、上述したように、プロセス４００を実施するデバイスにインストール又はロードされたプログラム等の様々なソースから取得することができる。
【００３７】
１以上のジオフェンスが選択される（動作４０４）。選択される１以上のジオフェンスは、図２のジオフェンス判別モジュールにより選択された１以上のジオフェンスであり、上述したように、多種多様な方法により選択することができる。
【００３８】
１以上の位置判定モジュールを用いて、デバイスの位置が判定される（動作４０６）。デバイスの位置がいつ判定されるかのタイミング、及び／又は、複数の位置判定モジュールのうちどの位置判定モジュールがデバイスの位置を判定するかは、様々な電力節約技術に基づいて変わる。これら電力節約技術については以下でさらに詳細に説明する。
【００３９】
コンピューティングデバイスの位置及び選択された１以上のジオフェンスに基づく１以上のジオフェンスイベントの発生が検出される（動作４０８）。コンピューティングデバイスの位置は、動作４０６において判定された位置であり、選択された１以上のジオフェンスは、動作４０４において選択されたジオフェンスである。
【００４０】
図５は、１以上の実施形態に従った、様々な電力節約技術のうちの１以上の技術を利用しながらデバイスの位置を判定すること５００の例示的な実装を示している。判定すること５００は、図２の電力節約位置チェックモジュール２２０により実施され得るものであり、例えば、図４の動作４０６とすることができる。図５に示される判定すること５００は、複数の異なる動作５０２〜５２２を含む。動作５０２〜５２２のうちの複数の個々の動作は、任意の組合せで同時に実施されてもよいし、動作５０２〜５２２は、個々に実施されてもよいことに留意すべきである。動作５０２〜５２２の全てが判定すること５００に含まれる必要はないことにも留意すべきである。例えば、判定すること５００は、動作５０２〜５２２のうちの１つの動作を含んでもよいし、動作５０２〜５２２のサブセットの任意の組合せを含んでもよい。
【００４１】
判定すること５００に含まれ得る１つの電力節約技術は、１以上のセンサがコンピューティングデバイスの動きを示すまで、位置判定モジュールの呼び出しを遅らせることである（動作５０２）。加速度計、ジャイロスコープ、コンパス、カメラ、ビーコン受信機（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）送信機、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギ（ＢＬＥ）送信機、無線周波数送信機、近距離無線通信（ＮＦＣ）送信機等から通知を受信するもの）、様々なビーコン又は他の信号ソースから接続イベント及び／接続解除イベント（disconnect  event）を受信する他の受信機、デバイスのスクリーン（例えば、動きが検知されていないことを示すオンにされているスクリーン及び動きが検知されたことを示すオフにされているスクリーン）等といった様々な異なるセンサが、コンピューティングデバイスの動きを示すことが可能である。コンピューティングデバイスは、コンピューティングデバイスとおおよそ同じ動きをするセンサを含む、あるいは、コンピューティングデバイスとおおよそ同じ動きをするセンサからデータを受信する。例えば、センサは、図２のシステム２００を実装しているコンピューティングデバイス内に含まれていることもあるし、システム２００を実装しているコンピューティングデバイスを運んでいるユーザにより装着されているデバイス内に含まれていることもある。電力節約位置チェックモジュール２２０は、１以上のセンサからのデータ（例えば、加速度計の１以上の軸（例えば、３つの軸）からのデータ）を集約し、特定の時間期間にわたってデータサンプルを収集する。センサデータが、特定の時間期間にわたる、少なくとも閾動き量（例えば、少なくとも特定距離）及び／又はあるタイプの動き（例えば、立っている又は座っているのではなく、歩行している又は運転している（driving））を示した場合、コンピューティングデバイスは、動いていると判定され、電力節約位置チェックモジュール２２０は、コンピューティングデバイスの位置を判定する位置判定モジュールを呼び出す。一方、センサデータが、特定の時間期間にわたる、少なくとも閾動き量及び／又はあるタイプの動きを示していない場合、コンピューティングデバイスは、動いていない（例えば、静止している）と判定され、電力節約位置チェックモジュール２２０は、（例えば、センサデータが、少なくとも閾動き量及び／又はあるタイプの動きを示すまで）位置判定モジュールを呼び出さない。
【００４２】
したがって、コンピューティングデバイスが動いていないとセンサデータが示した場合には位置判定モジュールを呼び出さないことにより、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力は、動いていないコンピューティングデバイスのために消費される必要がなくなる。
【００４３】
判定すること５００に含まれ得る別の電力節約技術は、電力節約位置チェックモジュール２２０が位置判定モジュールからの位置を待つ時間の長さを制限することである（動作５０４）。位置判定モジュールは、受信される信号に対する干渉、受信中の信号の量等といった様々な状況に応じて、コンピューティングデバイスの位置を判定するのに様々な時間量を要し得る。電力節約位置チェックモジュール２２０は、特定秒といった、位置判定モジュールに関するタイムアウト値（閾値）を実装している。位置判定モジュールが、タイムアウト値により指定される時間量内に位置を提供しない場合、電力節約位置チェックモジュール２２０は、コンピューティングデバイスの位置の判定を試みることを止めさせる指示を、位置判定モジュールに提供するとともに、別の位置判定モジュールを呼び出す。タイムアウト値は、固定されていてもよいし、変わってもよい。例えば、タイムアウト値は、コンピューティングデバイスがプラグインモード（plugged-in  mode）で動作している（例えば、バッテリ電力ではなくＡＣ電力を使用している）状況においては、１値とすることができ、コンピューティングデバイスがバッテリモードで動作している（例えば、バッテリ電力で動作している）状況においては、より小さな値とすることができ、コンピューティングデバイスがバッテリモードで動作しており、残りのバッテリ寿命が閾量以下である状況においては、さらに小さな値とすることができる。
【００４４】
位置判定モジュールが呼び出される順番は、様々な方法により決定することができる。１以上の実施形態において、位置判定モジュールが呼び出される順番は、ジオフェンスイベントが検出されている１以上のジオフェンスの所望される精度に基づく。ジオフェンスに関する所望される精度は、ジオフェンスに関するジオフェンスイベントを判定するために、位置判定ソースが有することを所望される精度（例えば、不確定性の程度）を指し、ジオフェンスのサイズに少なくとも部分的に基づく。位置判定モジュールは、ジオフェンスに関するジオフェンスイベントを判定するために所望される精度を有する最低価格の位置判定モジュールから始まる、低価格（例えば、最小電力消費）から高価格（例えば、最大電力消費）の順番等、様々なプリファレンス（preference）の順番で呼び出されてもよい。
【００４５】
したがって、電力節約位置チェックモジュール２２０が位置判定モジュールからの位置を待つ時間の長さを制限することにより、なかなか位置を判定できない位置判定モジュールは、位置の判定を試みることを止め、したがって、困難なタスクのために電力を消費することを止める。次いで、別の位置判定モジュールは、コンピューティングデバイスの位置の判定を試みることができる。
【００４６】
判定すること５００に含まれ得る別の電力節約技術は、位置判定モジュールの呼び出しにおいて、近いジオフェンスまでの距離及び／又は近いジオフェンスのサイズを考慮することである（動作５０６）。近いジオフェンスとは、複数のジオフェンスのうち、コンピューティングデバイスに物理的に近い１以上のジオフェンス（例えば、物理的に最も近いジオフェンスの全て又は物理的に最も近いジオフェンスのサブセット）を指す。近いジオフェンスは、以下で説明するように、物理的に最も近いジオフェンスまでの距離及び物理的に最も近いジオフェンスに関する所望される精度等といった様々なジオフェンス追跡特性に従って判別される。どのジオフェンスが近いジオフェンスであるかは、コンピューティングデバイスが移動するにつれ、新たなジオフェンスが追加されるたびに、ジオフェンスが削除されるたびに等、時間の経過とともに変わり得ることに留意すべきである。
【００４７】
ジオフェンス追跡パラメータについてここで説明する。ジオフェンス追跡パラメータは、ジオフェンスイベントが発生したかどうかに関するチェックがいつなされるかのタイミングインジケーション、コンピューティングデバイスの位置を判定するために呼び出す位置判定モジュールのインジケーション等を含む、ジオフェンスがシステム２００によりどのように追跡されるかに関する挙動（behavior）を定める条件のセットを指す。この条件のセットは、コンピューティングデバイスの位置を提供する位置判定モジュール２０２により予想される精度、ジオフェンスイベントが発生したかどうかに関するチェックがなされる前にコンピューティングデバイスが移動し得る距離又は範囲、ジオフェンスイベントが発生したかどうかに関するシステムチェックの頻度等を示すことができる。ジオフェンス追跡パラメータは、物理的に最も近いジオフェンスに基づいて定められ得るが、必ずしも物理的に最も近いジオフェンスに基づく必要はない。物理的に最も近いジオフェンスとは、コンピューティングデバイスの現在の判定された位置（任意的にコンピューティングデバイスの判定された位置の不確定性を考慮しない）に地理的に最も近いエッジ上の位置（又は、ジオフェンスの略中心といった、ジオフェンスの他の部分の位置）を有するジオフェンスを指す。
【００４８】
ジオフェンス追跡パラメータは、１以上のジオフェンスに関する所望される精度に基づいて定められる。ジオフェンスに関する所望される精度は、ジオフェンスに関するジオフェンスイベントを判定するために、位置判定ソースが有することを所望される精度（例えば、不確定性の程度）を指し、ジオフェンスのサイズに少なくとも部分的に基づく。より小さなジオフェンスは、より良い所望される精度（例えば、より小程度の不確定性）を有する必要があり得、より大きなジオフェンスは、より悪い所望される精度（例えば、より大程度の不確定性）を許容し得る。ジオフェンスに関する所望される精度は、式、テーブル、ルール又は基準等、多種多様な方法により特定することができる。１以上の実施形態において、システム２００は、異なるジオフェンスサイズに関する所望される精度を示す所望精度テーブルを有するよう、あるいは、そのような所望精度テーブルにアクセスするよう構成される。所望精度テーブルには、システム２００の設計者により経験的に行われる等、様々な方法により、異なるジオフェンスサイズに関する所望される位置精度を投入することができる。
【００４９】
図６は、１以上の実施形態に従った、ジオフェンス追跡パラメータを特定するための例示的なプロセス６００を示している。プロセス６００は、図２の電力節約位置チェックモジュール２２０等の１以上のモジュールにより実行される。プロセス６００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス６００が、一連の動作として示されているが、プロセス６００は、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス６００は、ジオフェンス追跡パラメータを特定するための例示的なプロセスである。ジオフェンス追跡パラメータを特定することについての異なる図を参照するさらなる説明が、本明細書に含まれる。
【００５０】
プロセス６００において、物理的に最も近いジオフェンスに関する所望される精度が判定される（動作４０２）。所望される精度は、上述したように、様々な方法により特定することができる。代替的に、動作６０２における所望される精度は、最も近いジオフェンスではなく、おおよそ物理的に最も近いジオフェンス（例えば、２番目に最も近いジオフェンス又は３番目に最も近いジオフェンス）に関するものであってもよい。
【００５１】
コンピューティングデバイスの現在位置及び物理的に最も近いジオフェンスの数に基づいて、モニタリング領域が決定される（動作６０４）。モニタリング領域は、コンピューティングデバイスからの範囲（例えば、コンピューティングデバイスの判定された位置から伸びる半径）である。この範囲は、物理的に最も近いジオフェンスまでの距離、物理的に最も近いジオフェンスの所望される精度、物理的に最も近いジオフェンスの少なくとも一部分の閾距離内に存在する他のジオフェンスの数等に基づいて等、変わり得る。モニタリング領域とは、現在のジオフェンス追跡パラメータを定めるために、ジオフェンスが探される、システム２００を実装しているコンピューティングデバイスの周囲の領域を指す。現在のジオフェンス追跡パラメータは、１以上の物理的に最も近いジオフェンスまでの距離と、それら１以上の物理的に最も近いジオフェンスの所望される精度と、を考慮した式を用いて定めることができる（例えば、物理的に最も近いジオフェンスの所望される精度及び物理的に最も近いジオフェンスまでの現在距離を足し合わせることにより）。所望される精度は、特定値（例えば、物理的に最も近いジオフェンスの略中心からの距離である特定メートル）として表すことができる。物理的に最も近いジオフェンスまでの現在距離とは、コンピューティングデバイスの現在判定されている位置（任意的にコンピューティングデバイスの判定された位置の不確定性を考慮しない）と、物理的に最も近いジオフェンスのエッジ上の位置（又は、物理的に最も近いジオフェンスの略中心といった、物理的に最も近いジオフェンスの他の部分の位置）と、の間の距離を指す。
【００５２】
モニタリング領域内のジオフェンスが特定される（動作６０６）。ジオフェンスの少なくとも一部分がモニタリング領域内に存在する場合、そのジオフェンスは、モニタリング領域内に存在する。物理的に最も近いジオフェンスに加えて、０以上のさらなるジオフェンスが、モニタリング領域内に存在するものとして特定され得る。図７は、１以上の実施形態に従った複数の重なり合っているジオフェンスを示している。コンピューティングデバイスの現在位置７０２が示されており、モニタリング領域７０４が決定されている。ジオフェンス７０６、７０８、７１０、及び７１２のセットが、モニタリング領域７０４内に存在するものとして特定される。
【００５３】
図６に戻ると、ジオフェンス追跡パラメータが、特定されたジオフェンスに基づいて設定される（動作６０８）。特定されたジオフェンスは、動作６０６において特定されたジオフェンスを指す。ジオフェンス追跡パラメータは、多種多様な方法により設定することができる。例えば、特定されたジオフェンスの所望される精度のうち、最も厳格な（stringent）（あるいは、ほぼ最も厳格な）所望される精度が、コンピューティングデバイスの位置を判定するためにどの位置判定モジュールを呼び出すかを決定する際に使用される所望される精度として選択され得る。代替的に、特定されたジオフェンスの所望される精度は、平均される、あるいは足し合わされる（任意的に各ジオフェンスがコンピューティングデバイスの現在位置にどれくらい近いかに基づいて各ジオフェンスが重み付けされる）等、組み合わされてもよい。
【００５４】
図５に戻ると、電力節約位置チェックモジュール２２０は、コンピューティングデバイスが近いジオフェンスからより遠くにある場合には、コンピューティングデバイスが近いジオフェンスのより近くにある場合よりも、コンピューティングデバイスの位置を判定する位置判定モジュールを、より低頻度で呼び出すことができる。例えば、電力節約位置チェックモジュール２２０は、コンピューティングデバイスが近いジオフェンスからある距離（例えば、約１キロメートル（ｋｍ））だけ離れている場合には、コンピューティングデバイスの位置を判定する位置判定モジュールを、５分おきに呼び出すことができ、コンピューティングデバイスが近いジオフェンスから別の距離（例えば、約５０ｋｍ）だけ離れている場合には、コンピューティングデバイスの位置を判定する位置判定モジュールを、２０分おきに呼び出すことができる。コンピューティングデバイスの位置が近いジオフェンスに近づくにつれ、位置判定モジュールを呼び出す頻度は、直線的又は非直線的に増加し得る。近いジオフェンスは、例えば、図６の動作６０６においてモニタリング領域内に存在するものとして特定されたジオフェンスとすることができる。
【００５５】
さらに、近いジオフェンスまでの距離を所与として、電力節約位置チェックモジュール２２０は、より高電力の位置判定モジュールより精度の低いより低電力の位置判定モジュールを呼び出すことができる。なぜならば、この距離は、より高い精度が必要とされないことを示し得るからである。電力節約位置チェックモジュール２２０は、コンピューティングデバイスが近いジオフェンスからより遠くにある場合には（例えば、コンピューティングデバイスが近いジオフェンスから少なくとも閾距離だけ離れている場合には）、コンピューティングデバイスが近いジオフェンスのより近くにある場合よりも、より低電力ではあるがより低精度の位置判定モジュールを呼び出すことができる。例えば、Ｗｉ−Ｆｉ（登録商標）位置判定モジュールは、ＧＮＳＳ位置判定モジュールよりも低電力ではあるがＧＮＳＳ位置判定モジュールよりも精度が低い位置判定モジュールであり得る。電力節約位置チェックモジュール２２０は、コンピューティングデバイスが近いジオフェンスから遠く離れている（例えば、約５０ｋｍだけ離れている）場合には、コンピューティングデバイスの位置を判定するために、より低精度ではあるがより低電力のＷｉ−Ｆｉ（登録商標）位置判定モジュールを呼び出すことができ、コンピューティングデバイスが近いジオフェンスからより近くにある（例えば、約５００ｍだけ離れている）場合には、より高精度ではあるがより高電力のＧＮＳＳ位置判定モジュールを呼び出すことができる。
【００５６】
したがって、コンピューティングデバイスが近いジオフェンスからより遠くにある場合には位置判定モジュールが呼び出される頻度を減らすことにより、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力が消費される頻度が少なくなる。さらに、コンピューティングデバイスが近いジオフェンスからより遠くにある場合にはより低電力の位置判定モジュールを呼び出すことにより、コンピューティングデバイスの位置を判定するより高電力の位置判定モジュールのための電力が消費される必要がなくなる。
【００５７】
判定すること５００に含まれ得る別の電力節約技術は、位置判定モジュールをいつ呼び出すかを決定するために、コンピューティングデバイスが移動している速度を考慮することである（動作５０８）。動作５０６に関して上述したように、コンピューティングデバイスが近いジオフェンスからより遠くにある場合、位置判定モジュールが呼び出される頻度を減らすことができる。電力節約位置チェックモジュール２２０が位置判定モジュールを呼び出す頻度は、コンピューティングデバイスが移動している速度に基づいて変えることができる。例えば、コンピューティングデバイスが速く移動している場合には、コンピューティングデバイスが遅く移動している場合よりも、位置判定モジュールをより高頻度で呼び出すことができる。
【００５８】
コンピューティングデバイスが移動している速度は、多種多様な方法により判定することができる。例えば、速度は、ＧＰＳコンポーネント等の、コンピューティングデバイスの別のコンポーネント又はモジュールから取得することができる。別の例として、速度は、直近に判定された位置の履歴に基づいて判定することができる。さらに別の例として、速度のインジケーションは、別のデバイス（例えば、自動車用コンピュータ）から受け取ることができる。
【００５９】
コンピューティングデバイスの速度及び近いジオフェンスまでの距離を所与として、コンピューティングデバイスが現在の速度で近くのジオフェンスに到達するのに要する時間量を、容易に求めることができる。この時間量を使用して、電力節約位置チェックモジュール２２０が位置判定モジュールを呼び出す頻度を決定することができる。例えば、この時間量が９０分である場合、電力節約位置チェックモジュール２２０は、位置判定モジュールを呼び出す前に、８０分だけ待てばよい。
【００６０】
電力節約位置チェックモジュール２２０はまた、コンピューティングデバイスの速度の変化を考慮するために、判定された速度と、どれくらい直近に速度が判定されたかと、に基づいて、位置判定モジュールが呼び出される頻度を決定することができる。コンピューティングデバイスの速度が遅くなるにつれ（したがって、コンピューティングデバイスの速度が速くなる可能性が高くなるにつれ）、位置判定モジュールが呼び出される頻度は増加し得る。例えば、コンピューティングデバイスが現在の速度で近いジオフェンスに到達するのに要する判定された時間量が９０分である場合、電力節約位置チェックモジュール２２０は、可能な速度変化を考慮するために、位置判定モジュールを呼び出す前に、４０分だけ待てばよい。別の例として、コンピューティングデバイスが現在の速度で近いジオフェンスに到達するのに要する判定された時間量が９０分であり、速度が時速５００マイルである場合、電力節約位置チェックモジュール２２０は、コンピューティングデバイスが速度を速めないと仮定して、可能な速度変化を考慮するために、位置判定モジュールを呼び出す前に、８０分だけ待てばよい。しかしながら、コンピューティングデバイスが現在の速度で近いジオフェンスに到達するのに要する判定された時間量が９０分であり、速度が時速３０マイルである場合、電力節約位置チェックモジュール２２０は、コンピューティングデバイスが速度を速める可能性があると仮定して、したがって、可能な速度変化を考慮するために、位置判定モジュールを呼び出す前に、３０分だけ待てばよい。
【００６１】
したがって、位置判定モジュールの呼び出しにおいて、コンピューティングデバイスが移動している速度を考慮することにより、位置判定モジュールが呼び出される頻度（したがって、コンピューティングデバイスの位置を判定する際に位置判定モジュールにより消費される電力）を減らすことができる。
【００６２】
判定すること５００に含まれ得る別の電力節約技術は、ジオフェンスから出たことを検出するために、ジオフェンスに入ったことを検出することよりも、より低電力の位置判定モジュールを使用することである（動作５１０）。１以上の実施形態において、ジオフェンスから出たことを検出することは、ジオフェンスに入ったことを検出するほどの精度を必要としないので、コンピューティングデバイスがジオフェンス内に存在していて、ジオフェンスから出たことが検出される場合には、コンピューティングデバイスがジオフェンス外に存在していて、ジオフェンスに入ったことが検出される場合よりも、コンピューティングデバイスの位置を検出するために、より低電力ではあるがより低精度の位置判定モジュールを使用することができる。
【００６３】
例えば、Ｗｉ−Ｆｉ（登録商標）位置判定モジュールは、ＧＮＳＳ位置判定モジュールよりも低電力ではあるがＧＮＳＳ位置判定モジュールよりも精度が低い位置判定モジュールであり得る。電力節約位置チェックモジュール２２０は、コンピューティングデバイスがジオフェンス外に存在していて、ジオフェンスに入ったことが検出される場合には、より高電力のＧＮＳＳ位置判定モジュールを使用することができ、コンピューティングデバイスがジオフェンス内に存在していて、ジオフェンスから出たことが検出される場合には、より低電力のＷｉ−Ｆｉ（登録商標）位置判定モジュールを使用することができる。
【００６４】
したがって、ジオフェンスから出る場合にはより低電力の位置判定モジュールを使用することにより、コンピューティングデバイスの位置を検出するより高電力の位置判定モジュールのための電力が消費される必要がなくなる。あるいは、ジオフェンスに入ったことを検出することは、ジオフェンスから出たことを検出するほどの精度を必要としない状況も生じることがあるので、コンピューティングデバイスがジオフェンス外に存在していて、ジオフェンスに入ったことが検出される場合には、コンピューティングデバイスがジオフェンス内に存在していて、ジオフェンスから出たことが検出される場合よりも、コンピューティングデバイスの位置を検出するために、より低電力ではあるがより低精度の位置判定モジュールを使用することができる。
【００６５】
判定すること５００に含まれ得る別の電力節約技術は、位置判定モジュールの他に、利用可能なシステム信号を使用することである（動作５１２）。システム信号とは、位置判定のためではなくコンピューティングデバイスの様々なモジュール又はプログラムにより使用される信号を指す。コンピューティングデバイスが送信機（例えば、無線アクセスポイント、ＢＬＥ送信機、ＮＦＣ送信機等）から特定の距離だけ離れるよう移動した場合にその送信機から受信される、無線ネットワーク又は無線接続（例えば、Ｗｉ−Ｆｉ（登録商標）、ＢＬＥ、ＮＦＣ等）の接続信号又は接続解除信号、コンピューティングデバイスが移動して異なるセルトランシーバからサービスされている場合にセルトランシーバから受信されるサービングセルトランシーバ変更信号、送信機又はセルトランシーバから受信される信号の強度等といった様々な異なる信号が、コンピューティングデバイスにおいて使用され得る。
【００６６】
これらのシステム信号は、コンピューティングデバイスが移動したというインジケーションを提供することができ、電力節約位置チェックモジュール２２０は、位置判定モジュールをいつ呼び出すかを決定する際に、これらのシステム信号を使用することができる。電力節約位置チェックモジュール２２０は、これらのシステム信号のうちの１以上のシステム信号に基づいて、位置判定モジュールの呼び出しを遅らせることができる。例えば、Ｗｉ−Ｆｉ（登録商標）アクセスポイントの範囲が２００ｍであり、近いジオフェンスまでの距離が１０００ｍ以上である場合、電力節約位置チェックモジュール２２０は、コンピューティングデバイスがＷｉ−Ｆｉ（登録商標）アクセスポイントに接続されたままである限り、コンピューティングデバイスは別のジオフェンスに入っていないとみなすことができる。したがって、電力節約位置チェックモジュール２２０は、Ｗｉ−Ｆｉ（登録商標）接続解除信号が無線アクセスポイントから受信されるまで、あるいは、無線アクセスポイントから受信される信号の強度が少なくとも閾量だけ変化する（増加又は減少する）まで、位置判定モジュールの呼び出しを遅らせることができる。
【００６７】
１以上の実施形態において、電力節約位置チェックモジュール２２０は、固定型（stationary）信号送信機（例えば、無線アクセスポイント、セルトランシーバ等）に関するそのようなシステム信号を使用する。固定型信号送信機（及び／又は非固定型（non-stationary）信号送信機）のインジケーションは、データ記憶部２１０に記憶される、別のデバイス又はサービスから取得される等、多種多様な方法により取得することができる。電力節約位置チェックモジュール２２０は、非固定型信号送信機からのシステム信号には依拠しない。なぜならば、コンピューティングデバイス及び非固定型信号送信機の双方とも移動し得るので、コンピューティングデバイスがジオフェンスに入った又はコンピューティングデバイスがジオフェンスから出たとしても、接続解除信号又は変更信号が受信されないからである。
【００６８】
したがって、利用可能なシステム信号を使用することにより、位置判定モジュールの呼び出しを遅らせることができ、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力が消費される必要がなくなる。
【００６９】
判定すること５００に含まれ得る別の電力節約技術は、位置判定モジュールの呼び出しにおいて、コンピューティングデバイスの電力状態を考慮することである（動作５１４）。電力節約位置チェックモジュール２２０は、複数の位置判定モジュールのうち、コンピューティングデバイスの位置を判定するためにどの位置判定モジュールが呼び出されるかと、コンピューティングデバイスの位置を判定するために位置判定モジュールが呼び出される頻度と、を変更することができる。電力節約位置チェックモジュール２２０は、１以上のどの位置判定モジュールを呼び出すかと、１以上の位置判定モジュールを呼び出す頻度と、を決定する際に、様々な異なるルール又は基準を使用することができる。そのようなルール又は基準は、一般に、より多くの電力が利用可能である場合にはより高電力の位置判定モジュールを使用することができることを示すとともに、より多くの電力が利用可能である場合には位置判定モジュールをより高頻度で呼び出すことができることを示す。
【００７０】
例えば、コンピューティングデバイスがバッテリモードで動作している（例えば、バッテリ電力で動作している）場合には、コンピューティングデバイスがプラグインモードで動作している（例えば、バッテリ電力ではなくＡＣ電力を使用している、あるいは、バッテリが充電中である）場合よりも、より低電力の位置判定モジュールが使用され得る、且つ／あるいは、位置判定モジュールがより低頻度で呼び出され得る。別の例として、本明細書で説明する他の電力節約技術が、位置判定モジュールが呼び出される可変範囲の頻度（例えば、位置判定モジュールからの位置を待つタイムアウト値、近いジオフェンスまでの距離に基づいて位置判定モジュールを呼び出す頻度等）を有して実施され得、コンピューティングデバイスが閾量以下のバッテリ電力が残されているバッテリモードで動作している場合には、コンピューティングデバイスがプラグインモード又はバッテリが完全に充電されているバッテリモードで動作している場合よりも、その範囲内のより低い頻度が使用され得る。さらに別の例として、コンピューティングデバイスがバッテリモードで動作している（例えば、バッテリ電力で動作している）場合には、コンピューティングデバイスがプラグインモードで動作している（例えば、バッテリ電力ではなくＡＣ電力を使用している、あるいは、バッテリが充電中である）場合よりも、より高電力の位置判定モジュール（例えば、示され得るよりも高いものが、本明細書で説明する他の電力節約技術により使用される）が使用され得る、且つ／あるいは、位置判定モジュールがより高頻度でチェックされ得る（例えば、示され得るものよりも高い頻度で、本明細書で説明する他の電力節約技術により使用される）。
【００７１】
したがって、より少ない電力しか利用可能でない場合には、より低電力の位置判定モジュールを使用することにより、且つ／あるいは、位置判定モジュールをより低頻度で呼び出すことにより、コンピューティングデバイスの位置を判定するより高電力の位置判定モジュールのための電力及び／又はより高頻度の位置判定のための電力が、消費される必要がなくなる。
【００７２】
判定すること５００に含まれ得る別の電力節約技術は、プログラム状態に基づいて位置判定モジュールの呼び出しを遅らせることである（動作５１６）。プログラム状態は、図２のシステム２００に登録されているプログラム、データ記憶部２１０内のジオフェンスデータにおいて特定されるプログラム等、ジオフェンスイベントを使用することができる１以上のプログラムの状態を指す。プログラム状態は、プログラムがフォアグラウンドで実行されているかアクティブには実行されていないか等といった、プログラムに関する様々な異なる情報を指す。所定のプログラム状態の場合には、電力節約位置チェックモジュール２２０は、位置判定がより低頻度でなされ得るとみなして、したがって、位置判定モジュールの呼び出しを遅らせることができる。例えば、プログラムへのジオフェンスイベントの通知が中断された場合、電力節約位置チェックモジュール２２０は、プログラムがコンピューティングデバイスのユーザによりアクティブには使用されていない、したがって、位置判定がより低頻度でなされ得るとみなすことができ、位置判定モジュールの呼び出しを遅らせることができる。位置判定モジュールの呼び出しは、特定のイベントが発生するまで（例えば、プログラム状態が変化するまで）等、特定の時間量（例えば、特定分）にわたって遅らせることができる。
【００７３】
したがって、所定のプログラム状態の場合には位置判定モジュールをより低頻度で呼び出すことにより、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力が、頻繁に消費される必要がなくなる（例えば、プログラムがコンピューティングデバイスのユーザによりアクティブには使用されていないとき等）。
【００７４】
判定すること５００に含まれ得る別の電力節約技術は、コンピューティングデバイスの状態に基づいて位置判定モジュールの呼び出しを遅らせることである（動作５１８）。コンピューティングデバイスの状態は、コンピューティングデバイスのディスプレイがオン又はオフにされたかどうか、コンピューティングデバイスのスピーカがオン又はオフにされたかどうか、ユーザがコンピューティングデバイスを見ているかどうか等といった、コンピューティングデバイスがどのように使用されているかに関する様々な情報を指す。所定のプログラムデバイスの状態の場合には、電力節約位置チェックモジュール２２０は、位置判定がより低頻度でなされ得るとみなして、したがって、位置判定モジュールの呼び出しを遅らせることができる。例えば、コンピューティングデバイスのディスプレイがオフにされている場合、電力節約位置チェックモジュール２２０は、コンピューティングデバイスがアクティブには使用されていない、したがって、位置判定がより低頻度でなされ得るとみなすことができ、位置判定モジュールの呼び出しを遅らせることができる。位置判定モジュールの呼び出しは、特定のイベントが発生するまで（例えば、コンピューティングデバイスの状態が変化するまで）等、特定の時間量（例えば、特定分）にわたって遅らせることができる。
【００７５】
したがって、所定のコンピューティングデバイスの状態の場合には位置判定モジュールをより低頻度で呼び出すことにより、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力が、頻繁に消費される必要がなくなる。
【００７６】
判定すること５００に含まれ得る別の電力節約技術は、コンピューティングデバイスに対する通知が中断された場合、位置判定モジュールの呼び出しを遅らせることである（動作５２０）。コンピューティングデバイスに対する通知は、ユーザ、別のモジュール又はデバイス等により中断される等、様々な形で中断され得る。コンピューティングデバイスに対する通知が中断された場合、中断されなければコンピューティングデバイスのプログラムによりユーザに提供されたであろう、システム２００における特定のイベントの通知（例えば、可聴通知、視覚的通知、触覚的通知等）が、ユーザに提供されない。電力節約位置チェックモジュール２２０は、通知が中断された場合にはユーザがコンピューティングデバイスにより割り込まれることを望んでいない、したがって、位置判定がより低頻度でなされ得るとみなすことができ、したがって、位置判定モジュールの呼び出しを遅らせることができる。位置判定モジュールの呼び出しは、特定のイベントが発生するまで（例えば、通知が中断されなくなるまで）等、特定の時間量（例えば、特定分）にわたって遅らせることができる。
【００７７】
したがって、コンピューティングデバイスに対する通知が中断された場合には位置判定モジュールをより低頻度で呼び出すことにより、コンピューティングデバイスの位置を判定する位置判定モジュールのための電力が、頻繁に消費される必要がなくなる。
【００７８】
判定すること５００に含まれ得る別の電力節約技術は、ハードウェア又は専用低電力チップセットにオペレーションをオフロードすることである（動作５２２）。１以上の実施形態において、システム２００の一部は、ハードウェア又は専用低電力チップセットより実装することができる。いくつかの状況において、ソフトウェア又はファームウェアにより実装される場合よりも、ハードウェアにより実装される場合の方が、より少ない電力しか消費しない様々な判定を行うことが可能である。そのような状況において、電力節約位置チェックモジュール２２０は、判定はハードウェアコンポーネント又はチップセットにより行われるべきであるという指示を、１以上のハードウェアコンポーネント又は専用低電力チップセットに提供することができる。例えば、電力節約位置チェックモジュール２２０は、特定の頻度で、あるいは、特定の時間量が経過した後に、コンピューティングデバイスの位置を判定して、電力節約位置チェックモジュール２２０に判定された１以上の位置のインジケーションを返すようにさせる指示を、ＧＮＳＳモジュールに提供することができる。
【００７９】
したがって、いくつかのオペレーションをハードウェア又は専用低電力チップセットにおいて実行させることにより、位置判定モジュールにコンピューティングデバイスの位置を判定させる際に消費される電力が低減される。
【００８０】
特定のモジュールを参照しながら特定の機能について本明細書で説明したが、本明細書で説明した個々のモジュールの機能は、複数のモジュールに分割されてもよいし、且つ／あるいは、複数のモジュールの少なくとも一部の機能は、１つのモジュールに結合されてもよいことに留意すべきである。さらに、あるアクションを実行するものとして本明細書で説明した特定のモジュールは、そのアクションを実行するその特定のモジュール自体を含む、あるいは、そのアクションを実行する（あるいは、その特定のモジュールと協働してそのアクションを実行する）別のコンポーネント又はモジュールを呼び出すその特定のモジュール又はそのアクションを実行する（あるいは、その特定のモジュールと協働してそのアクションを実行する）別のコンポーネント又はモジュールに別の形でアクセスするその特定のモジュールを含む。したがって、あるアクションを実行する特定のモジュールは、そのアクションを実行するその特定のモジュール自体、及び／又は、その特定のモジュールにより呼び出される、あるいはその特定のモジュールにより別の形でアクセスされる、そのアクションを実行する別のモジュールを含む。
【００８１】
図８は、本明細書で説明した様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティングデバイス８０２を含む例示的なシステムを、概括的に８００で示している。コンピューティングデバイス８０２は、例えば、サービスプロバイダのサーバ、クライアントに関連付けられたデバイス（例えば、クライアントデバイス）、オンチップシステム、及び／又は、任意の他の適切なコンピューティングデバイス若しくはコンピューティングシステムとすることができる。
【００８２】
図示される例示的なコンピューティングデバイス８０２は、処理システム８０４、１以上のコンピュータ読み取り可能な媒体８０６、及び互いに通信可能に接続される１以上のＩ／Ｏインタフェース８０８を含む。図示されていないが、コンピューティングデバイス８０２は、様々なコンポーネントを互いと接続するシステムバス又は他のデータ・コマンド転送システムをさらに含み得る。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのうちのいずれかを利用するプロセッサバス若しくはローカルバス等の様々なバス構造の任意の１つ又は組合せを含み得る。制御ライン及びデータライン等の多様な他の例も意図されている。
【００８３】
処理システム８０４は、ハードウェアを用いて１以上のオペレーションを実行する機能を表す。したがって、処理システム８０４は、プロセッサ、機能ブロック等として構成することができるハードウェア要素８１０を含むものとして示されている。これは、特定用途向け集積回路、又は、１以上の半導体を用いて形成される他の論理デバイスとしてのハードウェアによる実装物を含み得る。ハードウェア要素８１０は、ハードウェア要素８１０が形成される材料又はハードウェア要素８１０において利用される処理機構により限定されるものではない。例えば、プロセッサは、１以上の半導体及び／又はトランジスタ（例えば、電子集積回路（ＩＣ））から構成され得る。そのようなコンテキストにおいて、プロセッサ実行可能な命令は、電子的に実行可能な命令であり得る。
【００８４】
コンピュータ読み取り可能な媒体８０６は、メモリ／ストレージ８１２を含むものとして示されている。メモリ／ストレージ８１２は、１以上のコンピュータ読み取り可能な媒体に関連付けられたメモリ／ストレージ能力を表す。メモリ／ストレージ８１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）等）及び／又は不揮発性媒体（読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ８１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブ等）に加えて、着脱可能な媒体（例えば、フラッシュメモリ、着脱可能なハードドライブ、光ディスク等）を含み得る。コンピュータ読み取り可能な媒体８０６は、以下でさらに説明するように、多様な他の態様で構成されてもよい。
【００８５】
１以上の入力／出力インタフェース８０８は、ユーザが様々な入力デバイスを用いてコマンド及び情報をコンピューティングデバイス８０２に入力できるようにするとともに、様々な出力デバイスを用いて情報をユーザ及び／又は他のコンポーネントに提示できるようにする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロフォン（例えば、音声入力用）、スキャナ、タッチ機能（例えば、物理的タッチを検出するよう構成される静電容量式センサ又は他のセンサ）、（例えば、ジェスチャとしてのタッチを含まない動きを検出するために、赤外線周波数等の非可視波長又は可視波長を利用することができる）カメラ等を含む。出力デバイスの例は、ディスプレイデバイス（例えば、モニタやプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等を含む。したがって、コンピューティングデバイス８０２は、ユーザインタラクションをサポートするために、以下でさらに説明するように、多様な態様で構成することができる。
【００８６】
コンピューティングデバイス８０２はまた、ジオフェンスシステム８１４を含む。ジオフェンスシステム８１４は、上述したジオフェンスを検出するための低減電力位置判定を含む様々なジオフェンス機能を提供する。ジオフェンスシステム８１４は、例えば、図２のシステム２００を実装することができる。
【００８７】
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的コンテキストにおいて本明細書で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用される「モジュール」、「機能」、及び「コンポーネント」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。本明細書で説明した技術の特徴は、プラットフォーム非依存であり、これは、そのような技術が、様々なプロセッサを有する様々なコンピューティングプラットフォーム上で実装され得ることを意味する。
【００８８】
説明したモジュール及び技術の実装物は、何らかの形態のコンピュータ読み取り可能な媒体に記憶されてもよいし、そのようなコンピュータ読み取り可能な媒体を介して伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピューティングデバイス８０２がアクセスできる様々な媒体を含み得る。限定ではなく例として、コンピュータ読み取り可能な媒体は、「コンピュータ読み取り可能な記憶媒体」及び「コンピュータ読み取り可能な信号媒体」を含み得る。
【００８９】
「コンピュータ読み取り可能な記憶媒体」とは、単なる信号伝送、搬送波、又は信号自体ではなく、情報の永続的記憶を可能にする媒体及び／若しくはデバイス、並びに／又は有体のストレージを指す。したがって、コンピュータ読み取り可能な記憶媒体は、非信号伝送媒体を指す。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、論理要素／回路、又は他のデータ等といった情報を記憶するのに適した方法又は技術により実装された、揮発性及び不揮発性の着脱可能及び着脱不可能な媒体及び／又は記憶デバイス等のハードウェアを含む。コンピュータ読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するのに適した、コンピュータがアクセスできる他の記憶デバイス、有体の媒体、若しくは製品を含み得るが、これらに限定されるものではない。
【００９０】
「コンピュータ読み取り可能な信号媒体」とは、ネットワークを介して等、コンピューティングデバイス８０２のハードウェアに命令を伝送するよう構成された信号伝送媒体を指す。信号媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを、搬送波、データ信号、又は他の伝送機構等の変調されたデータ信号内に具現化することができる。信号媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体と、を含む。
【００９１】
前述したように、ハードウェア要素８１０及びコンピュータ読み取り可能な媒体８０６は、本明細書で説明した技術の少なくとも一部の態様を実装するためにいくつかの実施形態において使用することができる、ハードウェア形態で実装された命令、モジュール、プログラマブルデバイスロジック、及び／又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）、及び、シリコンによる他の実装物又は他のハードウェアデバイスのコンポーネントを含み得る。このコンテキストにおいて、ハードウェア要素は、そのハードウェア要素により具現化される命令、モジュール、及び／又はロジックにより定められるプログラムタスクを実行する処理デバイスに加えて、前述したコンピュータ読み取り可能な記憶媒体等の、実行される命令を記憶するために利用されるハードウェアデバイスとして動作することができる。
【００９２】
前述したものの組合せを使用して、本明細書で説明した様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア、又は、プログラムモジュール及び他のプログラムモジュールは、何らかの形態のコンピュータ読み取り可能な記憶媒体上に具現化される、且つ／あるいは、１以上のハードウェア要素８１０により具現化される１以上の命令及び／又はロジックとして実装することができる。コンピューティングデバイス８０２は、ソフトウェアモジュール及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実行するよう構成することができる。したがって、ソフトウェアとしてコンピューティングデバイス８０２により実行可能なモジュールとしてのモジュールの実装は、例えば、処理システムのハードウェア要素８１０及び／又はコンピュータ読み取り可能な記憶媒体を使用することにより、ハードウェアにより少なくとも部分的に実現することができる。命令及び／又は機能は、本明細書で説明した技術、モジュール、及び例を実装する１以上の製品（例えば、１以上のコンピューティングデバイス８０２及び／又は処理システム８０４）により、実行可能／動作可能であり得る。
【００９３】
図８にさらに示されるように、例示的なシステム８００は、パーソナルコンピュータ（ＰＣ）、モバイルデバイス、及び／又は他のデバイス上でアプリケーションを実行する際のシームレスなユーザエクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームをプレイしている間、ビデオを見ている間等に１つのデバイスから次のデバイスに移る際の共通のユーザエクスペリエンスのために、これらの環境において実質的に同様に動作する。
【００９４】
例示的なシステム８００において、複数のデバイスが、中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルにあってもよいし、複数のデバイスからリモートに位置してもよい。１以上の実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続される１以上のサーバコンピュータのクラウドであり得る。
【００９５】
１以上の実施形態において、この相互接続アーキテクチャは、複数のデバイスのユーザに共通のシームレスなエクスペリエンスを提供するために、複数のデバイスにわたって機能を配信することを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し得、中央コンピューティングデバイスは、各デバイス向けに合わせられながらも全てのデバイスに共通であるエクスペリエンスを各デバイスに提供することを可能にするプラットフォームを使用する。１以上の実施形態において、ターゲットデバイスのクラスが作成され、エクスペリエンスが、デバイスの一般クラス向けに合わせられる。デバイスのクラスは、デバイスの物理的特徴、使用のタイプ、又は他の共通特性により定められ得る。
【００９６】
様々な実装において、コンピューティングデバイス８０２は、コンピュータ８１６又はモバイル８１８等の使用のために、多種多様な構成をとることができる。これらの構成の各々は、一般に異なる構造及び能力を有し得るデバイスを含み、したがって、コンピューティングデバイス８０２は、異なるデバイスクラスのうちの１以上のデバイスクラスに従って構成され得る。例えば、コンピューティングデバイス８０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ８１６クラスとして実装され得る。コンピューティングデバイス８０２はまた、携帯電話機、ポータブル音楽プレーヤ、ポータブルゲームデバイス、タブレットコンピュータ、ウェアラブルコンピュータ、マルチスクリーンコンピュータ等といったモバイルデバイスを含むデバイスのモバイル８１８クラスとして実装され得る。
【００９７】
本明細書で説明した技術は、コンピューティングデバイス８０２のこれら様々な構成によりサポートされ得るが、本明細書で説明した技術の特定の例に限定されるものではない。本機能は、以下で説明するように、プラットフォーム８２４を経由して「クラウド」８２２を介する等、分散システムの使用により全て又は一部が実装されてもよい。
【００９８】
クラウド８２２は、リソース８２６のためのプラットフォーム８２４を含む、且つ／あるいは、リソース８２６のためのプラットフォーム８２４を表す。プラットフォーム８２４は、クラウド８２２のハードウェアリソース（例えば、サーバ）及びソフトウェアリソースの基礎をなす機能を抽象化する。リソース８２６は、コンピューティングデバイス８０２からリモートにあるサーバ上でコンピュータ処理が実行されている間に利用することができるアプリケーション及び／又はデータを含み得る。リソース８２６はまた、インターネット、及び／又は、セルラネットワーク若しくはＷｉ−Ｆｉ（登録商標）ネットワーク等の加入者ネットワークを介して提供されるサービスを含み得る。
【００９９】
プラットフォーム８２４は、コンピューティングデバイス８０２を他のコンピューティングデバイスに接続するためのリソース及び機能を抽象化することができる。プラットフォーム８２４はまた、リソースのスケーリングを抽象化して、プラットフォーム８２４を介して実装されるリソース８２６を求める受けた要求に対するスケールの対応するレベルを提供するよう機能することができる。したがって、相互接続されるデバイスの実施形態において、本明細書で説明した機能の実装物は、システム８００にわたって分散させることができる。例えば、本明細書で説明した機能は、コンピューティングデバイス８０２上に一部を実装することができるとともに、クラウド８２２の機能を抽象化するプラットフォーム８２４を介して実装することができる。
【０１００】
構造的特徴及び／又は方法論的動作に特有の言葉で主題について説明したが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されるものではない。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。
【図１】
2016531277.tif 000003
【図２】
2016531277.tif 000004
【図３】
2016531277.tif 000005
【図４】
2016531277.tif 000006
【図５】
2016531277.tif 000007
【図６】
2016531277.tif 000008
【図７】
2016531277.tif 000009
【図８】
2016531277.tif 000010
【国際調査報告】
2016531277.tif 000011
2016531277.tif 000012
2016531277.tif 000013
2016531277.tif 000014
2016531277.tif 000015