我想创建两个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
答案 0 :(得分:1)
要使用GPS和其他基于位置的服务,您必须获得访问位置权限。
如果您使用的是6版(Marshmallow)的Android版本,则必须在运行时请求许可。