LastKnownLocation 每次都会重置
LastKnownLocation is reset everytime
我原以为请求 "lastKnownLocation" 会 return 一个保存的坐标 (GeoPoint),它指向设备的最后一个已知位置(从它最后一次访问 GPS 功能时起) ).
根据一些测试(在 OSMDroid 的 GpsMyLocationProvider
上进行),似乎请求该位置 returns a NullPointer
.
GpsMyLocationProvider provider = new GpsMyLocationProvider(MainActivity.mainActivity);
provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
locationOverlay = new MyLocationNewOverlay(provider, map);
我一直在尝试设置默认 GeoPoint,以便在首次启动地图时将地图居中,然后在 GPS 现在已确认位置的位置重新居中地图。
问题是 provider.getLastKnownLocation()
return 是 NullPointer 异常,除非它有时间从 GPS 实际获取当前位置。
我在这里弄错了什么? "last known location" 不应该是保存在 phone 内存中的 GeoPoint 并且总是在那里有东西,除非 phone 从未访问过 GPS 定位吗?
请参阅https://developer.android.com/training/location/retrieve-current
您也必须正确设置权限。请注意,在底部他们描述了为什么该位置可能为空,因此请参阅这些以进行故障排除。
如果您使用的是模拟器,请参阅 How to emulate GPS location in the Android Emulator?
我原以为请求 "lastKnownLocation" 会 return 一个保存的坐标 (GeoPoint),它指向设备的最后一个已知位置(从它最后一次访问 GPS 功能时起) ).
根据一些测试(在 OSMDroid 的 GpsMyLocationProvider
上进行),似乎请求该位置 returns a NullPointer
.
GpsMyLocationProvider provider = new GpsMyLocationProvider(MainActivity.mainActivity);
provider.addLocationSource(LocationManager.NETWORK_PROVIDER);
locationOverlay = new MyLocationNewOverlay(provider, map);
我一直在尝试设置默认 GeoPoint,以便在首次启动地图时将地图居中,然后在 GPS 现在已确认位置的位置重新居中地图。
问题是 provider.getLastKnownLocation()
return 是 NullPointer 异常,除非它有时间从 GPS 实际获取当前位置。
我在这里弄错了什么? "last known location" 不应该是保存在 phone 内存中的 GeoPoint 并且总是在那里有东西,除非 phone 从未访问过 GPS 定位吗?
请参阅https://developer.android.com/training/location/retrieve-current
您也必须正确设置权限。请注意,在底部他们描述了为什么该位置可能为空,因此请参阅这些以进行故障排除。
如果您使用的是模拟器,请参阅 How to emulate GPS location in the Android Emulator?