ANDROID GPS /无效的听众

时间:2014-11-08 12:26:45

标签: android gps

我正试图从头开始编写一个GPS追踪器,但它刚开始时就失败了。

由于某种原因,以下代码给出了IllegalArgumentException:无效的侦听器:null。

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);

mLocationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
            Log.i(TAG,"There is some noticeable movement");
        }

        @Override
        public void onProviderDisabled(String provider) {
            // Auto-generated method stub
        }

        @Override
        public void onProviderEnabled(String provider) {
            // Auto-generated method stub
        }

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

任何线索?

2 个答案:

答案 0 :(得分:0)

因为在这条线上

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);

mLocationListenernull。在requestLocationUpdates`之前初始化它。

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);

mLocationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
            Log.i(TAG,"There is some noticeable movement");
        }

        @Override
        public void onProviderDisabled(String provider) {
            // Auto-generated method stub
        }

        @Override
        public void onProviderEnabled(String provider) {
            // Auto-generated method stub
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // Auto-generated method stub
        }
}
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);

答案 1 :(得分:0)

更改代码,

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);


mLocationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
            Log.i(TAG,"There is some noticeable movement");
        }

        @Override
        public void onProviderDisabled(String provider) {
            // Auto-generated method stub
        }

        @Override
        public void onProviderEnabled(String provider) {
            // Auto-generated method stub
        }

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

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);