AndroidでMilometryが走行を自分から開始しない場合、その原因がアプリ側にあることはほとんどありません。Androidがアプリを眠らせると判断し、しかもそれを誰にも知らせないのです。設定はオンのまま、権限も許可されたままに見えて、何も起こりません。
このページは確認すべき項目を、原因として多い順に並べたものです。最初の一度だけ、5分ほどで終わります。
iPhoneをお使いの方に必要な作業はありません。 Appleのシステムが自らアプリを起こすため、同じ趣旨のページを作っても白紙になります。
Androidだけが違う理由
Milometryは駐車した場所を中心とする小さな円を見張り、そこから出た時点で記録を始めます。あわせて、端末が「車で移動中」と判断する瞬間にも注意を払っています。どちらもアプリではなく端末側の仕組みが担っています。車が停まっている間、アプリは動いていないからです。それが狙いでもあります。出発を待つために一日中動き続けるアプリは、バッテリーを食いつぶします。
この取引の代償として、Androidに搭載されているバッテリー節約機能はどれも、見方を変えれば、まさにこの仕組みを止めるためのものだということになります。
1. Wi-Fi、一度も接続しないとしても
これを言い当てる人はいません。そして、おそらく最も多い原因です。
Androidは、接続しているかどうかにかかわらず、検出できるWi-Fiネットワークを手がかりの一つとして端末の位置を割り出します。GPSより速く負荷も軽いため、システムはこれに頼っています。Wi-Fiを完全にオフにすると、端末は携帯電話の基地局に頼ることになり、精度はよくても数百メートルです。
Milometryが駐車地点の周囲で見張っている円は120メートルです。端末が300メートルの誤差でしか位置を把握できていなければ、120メートルの円から出たことを判定できません。そのため何も起こらず、しかもどこも異常には見えません。
対処: 外出時もWi-Fiをオンのままにしてください。どうしてもオフにしたい場合は、設定 → 位置情報 → 位置情報サービス → Wi-Fiスキャン を開き、これを有効のままにします。スキャンだけで十分で、どこにも接続はされません。
2. バッテリー:Milometryを「制限なし」にする
Androidは、使われていないと判断したアプリを眠らせます。眠っているアプリは、あなたが走り出す瞬間を逃します。
ここには走行記録アプリならではの落とし穴があります。自動記録がうまく働くほど、アプリを開く理由はなくなります。ところが、決して開かれないアプリは、Androidのバッテリー管理からは「不要なアプリ」とまったく同じに見えるのです。
対処: 設定 → アプリ → Milometry → アプリのバッテリー使用量 → 制限なし。
初期値は「最適化」で、これでは足りません。「制限」はさらに悪く、バックグラウンドでの記録を完全に止めてしまいます。設定が正しくないことを検出できた場合、Milometryは記録画面でお知らせします。
3. 位置情報:「常に許可」と「正確な位置情報」
別々の設定であり、両方が必要です。片方だけになりがちです。
常に許可 は「アプリの使用中のみ許可」とは違います。Milometryは、あなたが画面を見ていない間に出発を検知できなければなりません。それこそがこの機能の本体です。
正確な位置情報 はそのすぐ隣にある別のスイッチです。おおよその位置情報は、位置を町内程度の広さに丸めてしまい、見張っている円よりはるかに大きくなります。これがオフだと、Wi-Fiがオフのときと同じ結果になり、何も起こりません。
対処: 設定 → アプリ → Milometry → 権限 → 位置情報 を開き、常に許可 を選んで 正確な位置情報を使用 をオンにします。
4. アプリをスワイプして終了しない
最近使ったアプリの一覧からMilometryをスワイプで消すのは、ウィンドウを閉じるのとは違います。多くの端末では、それはアプリを停止させたいという指示としてAndroidに伝わります。停止されたアプリは、手動で開き直すまで何一つ受け取りません。出発の通知も、リマインダーも、何もです。
閉じる必要はありません。駐車している間そもそも動いていないからこそ、バッテリーを消費しないのです。
対処: 最近使ったアプリの一覧に残しておいてください。すでにスワイプで消してしまった場合は、一度開けば元どおりになります。
5. タスクキラー、クリーナー、バッテリー節約アプリ
メモリの解放、バッテリーの延命、端末のクリーニングをうたうものは、どれも他のアプリを停止させることで動いています。メーカーが最初から搭載している場合もあります。
対処: そうしたアプリがある場合は、Milometryをホワイトリスト、除外リスト、または保護対象アプリに追加してください。それで走行が記録されるようになれば、それが原因でした。
設定を変えたあとに
Milometryを一度開いてください。これらの設定を変えるだけでは見張りは戻りません。アプリを開くと戻ります。
そのうえで運転してください。変更後の最初の走行が確認になります。
それでも動かない場合
Milometryは、何を試み、何に阻まれたかを記録しています。ほとんどの人には不要なので、あえて目立たない場所に置いてあります。
設定 → このアプリについて を開き、上部の Milometryのアイコンを10回タップ してください。各段階を新しい順に並べた診断画面が開きます。すべてコピー をタップし、milometry.com/contact からお送りください。
端末が出発を通知したのにアプリが見送ったのか、そもそも端末が通知しなかったのかが、一目で分かります。これは別々の不具合であり、対処も別々です。この記録がなければ、こちらは推測するほかありません。
参考資料
- App standby buckets, Android Developers
- App hibernation and permission auto-reset, Android Developers
- Optimise Doze and App Standby, Android Developers
- Detect when users start or end an activity, Android Developers
