2016-03-31 5 views
-1

こんにちは私はAndroid Appを作成しています。私は1つのナビゲーションモジュールを含んでいます。 ここでは、20秒の間隔でユーザーの場所を自動的に確認したいと考えています。この場所変更イベントを発生させるボタンは何も置いていません。この方法は、リアルタイムのGoogleマップナビゲーションシステムのように自動的に実行する必要があります。 FusedLocationAPILocationListenerを使用してユーザーの場所を取得しています。 このメソッドを作成しました。ここで20秒間隔でユーザーの場所を定期的に確認したい自動的に

private void onLocationUpdate() { 
    lr.setInterval(20000).setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     // ActivityCompat#requestPermissions 
     // here to request the missing permissions, and then overriding 
     // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
     //           int[] grantResults) 
     // to handle the case where the user grants the permission. See the documentation 
     // for ActivityCompat#requestPermissions for more details. 
     return; 
    } 
    LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, lr, (com.google.android.gms.location.LocationListener) this); 

} 

lrLocationRequestの目的です。 このメソッドをどこに呼び出すべきか教えてください。 そしてonLocationChanged(Location location)の下にユーザーの現在の場所にマーカーを追加しています。あなたがサービスを作成する必要があります

答えて

0

は:

public class LocationService extends Service 
     implements LocationListener, 
     GoogleApiClient.OnConnectionFailedListener, 
     GoogleApiClient.ConnectionCallbacks {} 

とは、必要なメソッドを実装します。あなたが取得します:今

@Override 
    public void onLocationChanged(Location location) { 
     //do your stuff 
    } 

はX回パスとして、あなたは場所で何かをする必要がある場合かどうかを確認するのはあなた次第です。また、忘れずに追加することを忘れないでください。

compile 'com.google.android.gms:play-services-location:8.+' 
    compile 'com.google.android.gms:play-services-maps:8.+' 

を入力してください。そして、あなたのマニフェストにはもちろん、許可を加えます。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

とあなたのサービス:

<service 
     android:name="{package}.LocationService" 
     android:exported="false" /> 
関連する問題