1

Google マップを使用してユーザーの位置を追跡するアプリに取り組んでいます。「You are here!」の視認性を変えたい ユーザーが位置情報サービスを手で閉じるか、サービスにアクセスできない状態になると、マーカーが表示されます。このメソッドは、位置情報サービスが有効かどうかの情報を返すことができます:

private boolean isLocationServicesEnabled() {
    LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
    if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER) || lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
        return true;
    }
    return false;
}

ただし、位置情報サービスのステータスを一度だけ検出したくはありません。ユーザーが位置情報サービスを開いたり閉じたりするたびに、それを検出してマーカーの可視性を変更する必要があります。要するに、このずさんな疑似コードは、私が聞きたいことを説明しています。

while application runs
   if location services turn off
      change marker visibility to false
   else
      change marker visibility to true 

android.location.LocationListener なしでこのタスクを達成する方法が見つかりませんでした。Fused Location Provider を使用するだけで達成したいと考えています。何か考えはありますか?見たい場合に使用したコア構造は次のとおりです。

http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ (「完全なコード」のタイトルを確認してください)

4

2 に答える 2