首页 > 解决方案 > 关闭gps时粉碎

问题描述

当用户关闭 gps 时,我收到了迷恋。我有这样的代码来检测位置的用户

if(locationManager == null) {
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    }
    if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000L,
                15f, mLocationListener);
    } else if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000L,
                15f, mLocationListener);
    } else {
        Toast.makeText(this, "Please turn on gps on ypur phone", Toast.LENGTH_SHORT).show();
    }

当用户使用 gps 打开应用程序,然后将其关闭时,我收到这样的迷恋

java.lang.AbstractMethodError: abstract method "void android.location.LocationListener.onProviderDisabled(java.lang.String)"

我试图检测用户何时关闭 gps,但我更早迷恋,然后接收器检测

标签: androidgeolocation

解决方案


找到 mLocationListerner 的声明。当然它会覆盖onLocationChanged()。但是您可能忘记了 override onProviderDisabled()。即使它是空的,也要这样做。也覆盖onStatusChanged()onProviderEnabled()

运气。

LocationListener mLocationListener = new LocationListener() {
   @Override
   public void onLocationChanged(Location location) {
      ....
   }

   @Override
   public void onProviderDisabled(String provider) { }

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

   @Override
   public void onProviderEnabled(String provider) { }

};

推荐阅读