位置侦听器错误:java.lang.IllegalArgumentException:listener == null

时间:2017-08-22 11:20:16

标签: android location

我想创建两个locationListener,一个用于GPS Listener,另一个用于网络侦听器。我写下面的代码但是当我在requestUpdate中使用我的监听器时,我得到错误。我的问题是什么,如何解决这个问题?

public static void createLocationListener(Context contextVal) {
    gpsLocListener= new MyLocationListener();
    if(FIND_LOC_ByY_GPS)
        networkLocListener=new MyLocationListener();
}

public static class MyLocationListener implements LocationListener {

    public MyLocationListener(){}

    @Override
    public void onLocationChanged(Location location) {
        if (location != null) {
            try {
                removeLocationUpdate();
                if (DEBUG_BASEACTIVITY)
                    Log.e("GPS Location Changed!", "onLocationChanged/BaseActivity");

            } catch (SecurityException e) {
                Log.e("PERMISSION_EXCEPTION", "PERMISSION_NOT_GRANTED");
            }
            get_location_by_LocationUpdate_method=true;
            doLocationUpdate(location, true);
        }
    }

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

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
}

错误:

java.lang.RuntimeException: Unable to start receiver com.Reciever: java.lang.IllegalArgumentException: listener==null

1 个答案:

答案 0 :(得分:1)

要使用GPS和其他基于位置的服务,您必须获得访问位置权限。

如果您使用的是6版(Marshmallow)的Android版本,则必须在运行时请求许可。