[英]NETWORK_PROVIDER and GPS_PROVIDER returns null in fragments
nwLocation
& gpsLocation
are null at onStart()
nwLocation
和gpsLocation
在onStart()
为null
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
FrgAddNewJobsLocation.java (class extends Fragment) FrgAddNewJobsLocation.java (类扩展Fragment)
@Override
public void onStart() {
super.onStart();
initilizeMap();
appLocationService = new AppLocationService(getActivity());
nwLocation = appLocationService.getLocation(LocationManager.NETWORK_PROVIDER);
gpsLocation = appLocationService.getLocation(LocationManager.GPS_PROVIDER);
}
AppLocationService.java AppLocationService.java
public class AppLocationService extends Service implements LocationListener {
protected LocationManager locationManager;
Location location;
private static final long MIN_DISTANCE_FOR_UPDATE = 10;
private static final long MIN_TIME_FOR_UPDATE = 1000 * 60 * 2;
public AppLocationService(Context context) {
locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);
}
public Location getLocation(String provider) {
if (locationManager.isProviderEnabled(provider)) {
locationManager.requestLocationUpdates(provider, MIN_TIME_FOR_UPDATE, MIN_DISTANCE_FOR_UPDATE, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(provider);
return location;
}
}
return null;
}
@Override
public void onLocationChanged(Location location) {}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
Instead of appLocationService = new AppLocationService(getActivity());
代替
appLocationService = new AppLocationService(getActivity());
use: 采用:
Context mcontext;
appLocationService = new AppLocationService(mContext);
Also check if you have provided internet permission in manifest file 还要检查清单文件中是否提供了互联网许可
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.