2011-03-03 18 views
2

私のアプリでは、定期的にモバイルユーザーの現在地(緯度と経度)を取得するためにアンドロイドサービスを作成する必要があります。サービスは5分ごとにユーザーの場所を取得する必要があります..私はバックグラウンドで実行されるアンドロイドサービスでこれを行うことができます。これは正しいアプローチですか?位置情報を取得するためのサービスを実行する

+0

@Reno:多分、それは彼が彼のユーザーにする約束と約束に依存します。情報は良いものでも悪いものでもない。その情報の使用だけが可能です。 –

+0

何が問題なのですか?それは長い質問thats ... – Farhan

+0

私のアプリでは、定期的にモバイルユーザーの現在の位置(緯度と経度)を取得するためにアンドロイドサービスを作成する必要があります。サービスは5分ごとにユーザーの場所を取得する必要があります。 – avdroidDev

答えて

0

あなたは(あなたのサービス内の)内部/プライベートクラスを書くことができlocationListenerを実装すると、あなたのサービスのONSTART meethodにあなたがリスナーによってrequestLocationUpdates聞くことになることができ

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
MyLocationListener listener = new MyLocationListener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance, listener); 
0
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     LocationListener mlocListener = new MyLocationListener(); 
     mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); 
} 
public class MyLocationListener implements LocationListener 
    { 


     @Override 
     public void onLocationChanged(Location loc) 
     { 
      Log.i("**************************************", "Location changed"); 

      loc.getLatitude(); 
      loc.getLongitude(); 
      String Text = "My current location is: " +"Latitude = " + loc.getLatitude() + "Longitude = " + loc.getLongitude();    
      Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onProviderDisabled(String provider) 
     { 
      Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onProviderEnabled(String provider) 
     { 
      Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) 
     { 
     } 

    } 
0

あなたドンこれを達成するためのサービスは必要ありません。 5分ごとに場所を取得するには、アプリで、アクティビティでロケーションリスナを実装できます。ロケーションマネージャを設定するときに、minTime = 5mins (300000 ms)を指定することができます。 onlocationChangedメソッドは5分ごとまたは距離change > minDistanceが最初に発生すると呼び出されます。

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
MyLocationListener listener = new MyLocationListener(); 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 300000, minDistance, listener); 
関連する問題