Android - GPS听众

时间:2011-05-26 12:05:57

标签: android gps

我正在开发一个包含一些活动的Android应用程序。 我想从GPS(onLocationChangedonProviderDisabledonProviderEnabledonStatusChanged)获取更新,无论用户当前正在使用哪种活动。

为了获得这样的行为,我应该在哪里实施LocationListener

这是我创建的课程:

public class MyLocationListener implements LocationListener{

private LocationManager locationManager;
private String provider;

    @Override
public void onLocationChanged(Location locationGPS) {

    //do something
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
    Log.i("===========================", "==============================");
    Log.i("onProviderEnabled", "==============================");
    Log.i("===========================", "==============================");

}

@Override
public void onProviderDisabled(String provider) {

    Log.i("===========================", "==============================");
    Log.i("onProviderDisabled", "==============================");
    Log.i("===========================", "==============================");
}

2 个答案:

答案 0 :(得分:4)

在您要启动gps的活动上启动位置监听器。要启动GPS,您可以使用

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new CTLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1.0f, locationListener);

并停止GPS,你可以使用

locationManager.removeUpdates(locationListener);

最好在onCreate() / onStart()上写下GPS启动,并在服务的onDestroy()上删除GPS并使用该服务。否则,一旦停止GPS,某些设备再次启动GPS的可能性就会低于50%。

答案 1 :(得分:1)

在那里创建Service并监控位置,或者您可以在单独的班级中实施LocationListener并在每个Activity中使用它,将其打开onResume()并关闭onPause()