2011-03-03 3 views
2

В моем приложении мне нужно создать службу android, чтобы периодически получать текущее местоположение мобильного пользователя (широта и долгота). Служба должна получить местоположение пользователя каждые 5 минут. Как я могу сделать это в службе Android, которая будет работать в фоновом режиме. И это правильный подход?Запуск службы для получения информации о местоположении

+0

@Reno: Возможно, все зависит от того, что он использует для этого, и обещаний, которые он делает для своих пользователей. Информация не является ни хорошей, ни плохой; просто использование этой информации может быть. –

+0

какая именно проблема. вот длинный вопрос ... – Farhan

+0

В моем приложении мне нужно создать службу android, чтобы периодически получать текущее местоположение мобильного пользователя (широта и долгота). Служба должна получать местоположение пользователя каждые 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); 
Смежные вопросы