1 時間ごとに自分の位置を追跡するアプリを使用したいと考えています。アプリはバックグラウンドで実行され、オンにする方法があるかどうかを尋ねたかったGPS
アプリがバックグラウンドから位置情報を要求するたびに、位置情報を取得した後、GPS
バッテリー寿命を節約するためにオフにします. 使用してみましtasker
たが、アプリを開いたり閉じたりしたときにしか機能しません。アプリがバックグラウンドから位置情報を要求するときは機能しません。前もって感謝します!
3 に答える
バッテリーを節約するには、requestSingleUpdate onを使用し、 setInexactRepeating on でLocationManager
1 時間ごとにアラームを設定します。AlarmManager
GPS
この設定を有効にすると、バッテリーが消耗するという一般的な誤解があります。
それは必ずしも真実ではありません。
がWiFi
オンになっていると、時々信号をスキャンするか、データを送信しています (設定で無効にされていない場合は、バックグラウンドでも)
ただしGPS
、で述べたように、場所は要求された場合にのみLaurentY
チェックされるため、状況はまったく異なります。そのため、アプリが必要とするたびに無効にしてから切り替えるのは意味がありません。特に Android 6.0 では、アプリごとのアクセス許可を管理できます (必須ではないすべてのアプリへのアクセスを無効にし、そのアプリのみを許可します)。GPS
前に述べたそのアプリを使用する必要なく、事前定義された時間間隔でTaskerにあなたの場所をチェックさせることもできます
残念ながら、ユーザーの同意なしにプログラムで GPS を無効/有効にすることはできません。プログラムで GPS を有効にする場合は、ユーザーにその旨を通知し、GPS の有効化を受け入れる必要があります。あなたの選択では、 requestLocationUpdates を使用してユーザーの位置を取得するのに必要な最小時間を設定するだけでよいと思います
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 5, locationListener);
この選択では、GPS は 60000 ミリ秒ごとに使用されますが、常に有効になります。このようにして、あなたはより良い人生を救うことができます。