GPS状态监听器

时间:2016-11-10 03:49:52

标签: java android gps listener

我只是想听听GPS状态的变化。我有以下内容:

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return;
    }

    lm.addGpsStatusListener(new android.location.GpsStatus.Listener() {

        public void onGpsStatusChanged(int event) {
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            switch (event) {
                case GPS_EVENT_STARTED:
                    if((alertDialog != null) && (alertDialog.isShowing())){
                        alertDialog.dismiss();
                    }
                    contador=0;
                    darHandle();
                    break;
                case GPS_EVENT_STOPPED:
                    if(mProgressDialog!=null && mProgressDialog.isShowing()) {
                        mProgressDialog.dismiss();
                    }
                    contador=0;
                    break;
            }
        }
    });

它在我的Moto G 1st中运行良好,但它已被弃用,并且在某些设备中不起作用。

我试图弄清楚在这种情况下如何使用onProviderEnabled() / onProviderDisabled()。我尝试了很多代码示例,但没有让它工作。

我现在正在尝试这个:

LocationListener locationListenerGps = new LocationListener() {
        public void onLocationChanged(Location location) {

        }
        public void onProviderDisabled(String provider) {}
        public void onProviderEnabled(String provider) {}
        public void onStatusChanged(String provider, int status, Bundle extras) {}
    };

    LocationManager locationManager = (LocationManager) this
            .getSystemService(Context.LOCATION_SERVICE);

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 12000, 0, locationListenerGps);

但在最后一行它说:

无法解决方法requestLocationUpdates(java.lang.String, int, int, com.google.android.gms.location.LocationListener)

1 个答案:

答案 0 :(得分:0)

这恰好发生在我身上。

我认为您的问题必须与导入的侦听器的类有关。

有两种:

您使用的那个:com.google.android.gms.location.LocationListener

和:android.location.LocationListener

您使用的那些方法属于第二种方法。 使用那个,你应该没事。

在Android中通常会发生这种情况,所以要警惕,不同的API有很多类,其中一些重复名称,你必须尝试组合。