当GPS被任何应用程序使用时,我想让我的服务自动启动,并在GPS不再使用时停止。如果可能的话,我想避免让我的服务在后台运行。使用GPS时启动Android应用程序
显然,没有广播意图“GPS已激活”,就像例如“启动完成”一样。这将是完美的开始我的服务。我的另一个想法是在LocationManager上注册一个GpsStatus.Listener,但我认为我的应用必须始终在后台运行(并且需要自动启动权限)。
我想这样做的原因是我想在使用GPS时收集GPS状态信息。
谢谢您的建议!
当GPS被任何应用程序使用时,我想让我的服务自动启动,并在GPS不再使用时停止。如果可能的话,我想避免让我的服务在后台运行。使用GPS时启动Android应用程序
显然,没有广播意图“GPS已激活”,就像例如“启动完成”一样。这将是完美的开始我的服务。我的另一个想法是在LocationManager上注册一个GpsStatus.Listener,但我认为我的应用必须始终在后台运行(并且需要自动启动权限)。
我想这样做的原因是我想在使用GPS时收集GPS状态信息。
谢谢您的建议!
你可以这样做
@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) {
}
}
谢谢,但这需要服务自动启动,以注册监听器,对吧?我想避免这种情况。例如,[此应用](https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2)不需要该权限。 – user2183057
任何代码向我们展示? – LotusUNSW
有没有办法这样的,你必须运行至少1后台服务的那个... – Hardik