监听 GPS 状态变化
Listen for GPS Status change
我需要在用户打开或关闭 GPS 时监听,并据此采取行动。
我知道这可以使用 GPSStatus
class,但已弃用。
我现在该怎么做?
您可以使用 LocationListener !!
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
Toast.makeText(
getBaseContext(),
"Location changed: Lat: " + loc.getLatitude() + " Lng: "
+ loc.getLongitude(), Toast.LENGTH_SHORT).show();
//handlePostion(loc);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
下面是如何使用这个监听器
mLocationListener = new MyLocationListener();
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationListener = new MyLocationListener();
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 10, mLocationListener);
并且在 providerDisabled 回调中你可以知道 GPS 何时关闭
我需要在用户打开或关闭 GPS 时监听,并据此采取行动。
我知道这可以使用 GPSStatus
class,但已弃用。
我现在该怎么做?
您可以使用 LocationListener !!
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
Toast.makeText(
getBaseContext(),
"Location changed: Lat: " + loc.getLatitude() + " Lng: "
+ loc.getLongitude(), Toast.LENGTH_SHORT).show();
//handlePostion(loc);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
下面是如何使用这个监听器
mLocationListener = new MyLocationListener();
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationListener = new MyLocationListener();
mLocationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 10, mLocationListener);
并且在 providerDisabled 回调中你可以知道 GPS 何时关闭