私はアンドロイド用のアプリを持っており、定期的に(10秒ごとに言ってみましょう)、サーバーへの位置更新を送信する必要があります。今のところ特別なことはありません。しかし、これはサービスとしてバックグラウンドで完全に行われます。このアプリは、LocationManagerを使用して現在のGPS位置を取得してこれをサーバーに送信します。これはもちろん、このアプリの簡単な話、ちょうど問題に焦点を当ててGPS位置情報をAndroidで追跡します。
アンドロイド6まで完全なアプリはうまくいきます。アンドロイド6では、アプリはしばらくしてからオフになってもアップデートを送信しなくなりますが、移動した後、画面をオンにしたり、充電したりする。これは、Doze関数によって引き起こされた、これです。 Android 7では、画面がオンまたは充電中の場合にのみ、位置の更新がサーバーで受信されます。移動(歩行のような)はDozeの回転を引き起こさない(少なくとも場所の更新はサーバー上で受信されない)。このアプリはバッテリ最適化のためにホワイトリストに登録されていますが、それは役に立ちません。おそらくGPS /ネットワークがオフになっている可能性があります。
Androidのドキュメンテーションを読んで、デバイスがDozeのときにバックグラウンドでアプリが制御する間隔で現在のGPSの場所を送受信するための解決策はありません。
解決策はありますか、誰かに私がアンドロイド7のために持っているこのGPS問題を解決する方向を与えることができますか?
ありがとうございました。