情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

ポケモンGO「いつでも冒険モード」で電池の減り/バッテリーの消費が早くなる?位置情報が常にオンで大丈夫?について

ポケモンGO (420) ポケモンGO-いつでも冒険モード (18)

2018年11月2日よりポケモンGOにて「いつでも冒険モード」が利用できるようになりました。バックグラウンドでも動作して距離をとても便利な機能である一方で、GPSが常にオンだと、バッテリー消費が余計に早くなるのではないかとの懸念を持つユーザーは少なくないようです。

確かにいつでも冒険モードを利用するには「常に位置情報をオンにする必要がある」ものの、それはすぐさま「ポケモンGOアプリが裏側で動いて、常に位置情報を追いかけているわけではない」点に注意が必要です。

というのも、「常に位置情報をオン」が、必ずしも「位置情報を常に取得するため」ではないからです。

このあたりの話を含め、「いつでも冒険モード」と「バッテリーの消費」にまつわるいろいろをまとめておきます。

いつでも冒険モードとは

ポケモンGOに新しく導入された「いつでも冒険モード」は、ポケモンGOアプリを起動していなくても歩数が記録されて、タマゴをかえしたり、あめをもらうことができる新機能です。

iPhoneの「ヘルスケア」機能が測定した「歩数」や「距離」と連動する(Health Kitを使う)ことが大きな特徴で、ヘルスケアが利用できないiPadでは有効にできません。

「位置情報」を「常にオン」にする必要あり

しかし、いつでも冒険モードを有効にするには、「位置情報サービス」を「常に許可」にする必要があります。

今までポケモンGOでは、「このAppの使用中のみ許可」で良かったことから、結局ヘルスケアの情報だけじゃなくて、ポケモンGOが位置情報を測定し続けるのかと思ってしまうかも知れません。GPSなんて使わなくて良いのに、と。

そうすると「ものすごくバッテリーを使いそう」「電池の減りが早くなりそう」と思ってしまします。この考え方はとても自然だと思います。

「常にオン」のもう一つの意味

しかし実際のところ、「位置情報サービス」を「常に許可」にしたからといって、ポケモンGOアプリがずっと位置情報を監視し続けて、バッテリーをものすごく使ってしまうようなイメージで動作するのかというと、そうとは限りません。

iPhoneアプリには、「位置が大きく移動したときだけ、寝ているアプリを一旦(部分的に)起こしてね」のような機能があります。

つまり、ポケモンGOアプリ自体は眠ったまま、位置が大きくずれたときだけ、どれくらい移動したかを確認してタマゴの残り距離を計算し、もし0kmになったら「おや、タマゴの様子が」と通知を送る、という仕組みを作ることができます(※今回ロック中にHealthKitのデータを取得できるか怪しいため、たまごをかえすための距離チェックはHealthKitは使わずポケモンGO側で前回位置からの差分などを使って計算せざるを得ない?)

こうすると、ポケモンGOがずっと動作し続ける必要がなくなります(※いやでもiPhone全体としてはどこかでずっとGPS使って位置を確認しているんでしょ、と言えばそうなのですが、既に他のアプリのために位置を常時確認しているのであれば増加するとは限りませんし、何よりこの仕組みでは「荒い位置情報をWi-Fiなどを中心に測定」「正確な位置を使わない」など、省エネ用の仕組みが取り入れられており、GPSをしっかり使い続けるという訳ではない分、イメージとは異なるかと思います。正確な位置情報を使い続けるアプリはバッテリーを大量に消費する可能性があり、その方法を採用している別アプリの印象で、位置情報常に許可の印象が特別悪くなっている、なんてこともあるかもしれません)

つまり、家や学校、会社にいる分にはポケモンGOアプリは眠ったまま(終了したような状態)が続き、実際に移動したときだけ「どれどれ歩いたかな?」と起きて小さい処理をしてからすぐ眠る、という動作を行います。

こうすることで、先ほどのイメージほどバッテリーを大量に消費し続けることなく、そしてポケモンGOアプリが現在位置をずっと監視し続けることもなく、「いつでも冒険モード」の機能を提供することができます。

起こすにしても「位置情報サービス」は「常に許可」が必要

ではなぜ「位置情報サービス」で「常に許可」に設定する必要があるのかというとそれは、「位置が大きく移動したよ」とiOSに教えてもらって起こしてもらうこと自体に「常に許可」が必要だからです。

以上をまとめると、位置情報サービスについて「常に許可」を選択しているからものすごくバッテリーを使うとは限らない、ということがポイントになります(※アプリにとって、位置情報をいつでも教えてもらえる許可は常にあるが、実際に教えてもらうタイミングは大きく移動したときだけに限定されている、というイメージ。あくまで常に「許可」で、常に「使用」ではない)

もちろん、「バッテリーをものすごく使い続ける作り方」であったり、不具合でものすごくバッテリを使ってしまうケースも考えられるため、そのような動作がないか、実際の所どうなのか、はユーザーが試してみるほかありません。とはいえなかなか同じ条件でバッテリー消費をちゃんと測定する、しかも位置情報がらみに関して、というのはなかなか簡単ではありません。

バッテリー消費が減る可能性と増える可能性について

ここまでの話を踏まえて、バッテリー消費が「減る」「増える」について考えてみます。

まず、さすがに同じ「ポケモンGOを起動していない状態」のときのバッテリー消費を比較すれば、いつでも冒険モードを有効にした際に「全く増えない」であったり「現在より減る」ことは考えにくいです。

しかし、今まで距離を稼ぐためだけにポケモンGOを起動したまま歩いていた時間を、「いつでも冒険モード」のおかげで削減できるのであれば、それをやめる(使い方を変える)ことで、バッテリーを削減できると考えられます

一方で、普段から全くポケモンGOアプリを開いていない人にとっては、これ以上ポケモンGOの起動時間を減らせないため、「現在より少し増える」のほうが積み重なってきて、より「今までより減るようになった」という傾向が強まるはずです(程度の想定はしにくい)。

また、iPhoneでそもそも位置情報を常に許可、を設定しているアプリが他にあったかどうか(システムで利用する場合も)も増えるかどうかに影響してきます。

もとからポケモンGO以外のアプリやiPhoneの基本的な機能の中で位置情報を「常に許可」していたのであれば、「大きく移動したときにアプリを少し起こす」のに必要な分の位置情報取得を既にiOS側が行っているはずで、位置の変化を追いかけること自体のバッテリー消費は既に行っているものと考えられるからです。

ポケモンGO公式の見解

このような「そんなに増えるとは限らない」というのは「うまくいけば」に近いので、もう少し別のところに目を向けてみると、ポケモンGO公式ヘルプの「いつでも冒険モード」の紹介に、次のような記載があります:

いつでも冒険モードは Pokémon GO のアプリを開いていない時でも移動した距離を記録できるオプションです。 このオプションを使用することで、端末のバッテリーに大きな影響を与えることなく、相棒ポケモンのアメを獲得 したり、タマゴを孵化させる ことができます。 プッシュ通知をオンにすることで、相棒のポケモンがアメを見つけたときや、タマゴが孵化しそうなときにお知らせで確認することができます。 この機能のボーナスとして、ウィークリーでの移動距離を記録することができるのとともに、1 週間での目標値を達成するとリワードを獲得することができます。 引用元

この通り、「端末のバッテリーに大きな影響を与えることなく」というのは先ほどまでのニュアンスに近いものです。

「全く増えない」ではない

ユーザーの間では「全く増えない」という表現も用いられている場合があるようですが、ポケモンGO運営としても、そこまで強いことは言っていません。大きな影響は与えなくとも、多少は影響がある、ということを運営は言っています。

ユーザーの声を見る前に

さらに詳しく実態について知ろうと思うと、実際に昨日今日と使ってみたユーザーの声が参考になります。

ただしiOSのアップデート時など、ユーザーがあえてバッテリーの消費のことを気にするときは、普段より操作回数が多かったり、特別なことをしがち、という傾向があり、それ自体がバッテリー消費を加速させる場合があるため、そのあたりには注意しておく必要があります。

また、「増えた」という発言も増えがちになります(変わらなければ特に言及する必要がない等)。

ユーザーの声

バッテリー消費に関しては、以下のような声があります。ものすごく減った、との声もあれば、特に増えていない、という声もあります。ただし先ほどのバイアスもあってか、見つかるのは「ものすごく減りが激しい」や「減りが早い気がする」などの声です。

バッテリー消費が気になったら

実際バッテリー消費が気になった場合は、バッテリーの減少速度やその日の予定、充電できるかどうか、モバイルバッテリーを持っているかなどに応じて「いつでも冒険モード」を臨機応変にオン・オフする、という方法があります。

また、バックグラウンド動作を抑制する「低電力モード」を利用する方法もあります(※逆に言うと、ちゃんといつでも冒険モードを使いたいのであれば、低電力モードは解除しなければならない)。

他に位置情報が「常に許可」になっているアプリの探し方

今回のポケモンGO同様に位置情報の使用が「常に許可」になっているアプリは、「設定」アプリを開いて「プライバシー」から一覧することができます。

参考

The significant-change location service offers a more power-friendly alternative for apps that need location data but do not need frequent updates or the precision of GPS. The service relies on lower-power alternatives (such as Wi-Fi and cellular information) to determine the user’s location. It then delivers location updates to your app only when the user’s position changes by a significant amount, such as 500 meters or more. 引用元

Note

The significant-change location service requires always authorization. For information about how to request authorization, see Requesting Always Authorization. 引用元

The HealthKit data is only kept locally on the user’s device. For security, the HealthKit store is encrypted when the device is locked, and the HealthKit store can only be accessed by an authorized app. As a result, you may not be able to read data from the store when your app is launched in the background; however, apps can still write data to the store, even when the phone is locked. HealthKit temporarily caches the data and saves it to the encrypted store as soon as the phone is unlocked. 引用元

コメント(0)

新しいコメントを投稿