2013-11-21 3 views
0

Я хочу, чтобы моя служба автоматически запускалась, когда GPS используется в любом приложении, и остановился, когда GPS больше не используется. Если возможно, я хочу, чтобы мой сервис не работал в фоновом режиме.Запуск приложения для Android при использовании GPS

По-видимому, нет никакого намерения трансляции для «GPS активировано», как например, для «загрузки завершено». Это было бы идеально, чтобы начать мое обслуживание. Еще одна идея, которую я имел, - зарегистрировать GpsStatus.Listener в LocationManager, но я думаю, что мое приложение должно работать в фоновом режиме для этого все время (и требуется разрешение автозапуска).

Причина, по которой я хочу сделать это, заключается в том, что я хочу собирать информацию о состоянии GPS, когда она используется.

Благодарим вас за идеи!

+0

Любой код, чтобы показать нам? – LotusUNSW

+0

нет такого типа, что вам нужно запустить хотя бы 1 фоновое обслуживание для этого ... – Hardik

ответ

0

Вы можете сделать как этот

@Override 
    public void onCreate(Bundle savedInstanceSate){ 
       super.onCreate(savedInstaceState); 
       setContentView(R.layout.main); 
       //Location methods 
       locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
       locationListener = new GpsLocationListener(); 
       locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 
    } 
    class GpsLocationListener implements LocationListener { 
      @Override 
      public void onLocationChanged(Location location) { 
      **write here methods for services when your GPS is active or working** 
       Toast.makeText(context, "Location Data Updated", Toast.LENGTH_LONG).show(); 
      } 

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

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

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

     } 
+0

Спасибо, но для этого требуется сервис автозапуска, чтобы зарегистрировать слушателя, не так ли? Я бы хотел этого избежать. Например, [это приложение] (https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2) не требует этого разрешения. – user2183057

Смежные вопросы