2013-11-21 27 views
0

当GPS被任何应用程序使用时,我想让我的服务自动启动,并在GPS不再使用时停止。如果可能的话,我想避免让我的服务在后台运行。使用GPS时启动Android应用程序

显然,没有广播意图“GPS已激活”,就像例如“启动完成”一样。这将是完美的开始我的服务。我的另一个想法是在LocationManager上注册一个GpsStatus.Listener,但我认为我的应用必须始终在后台运行(并且需要自动启动权限)。

我想这样做的原因是我想在使用GPS时收集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

相关问题