LocationManager Android自动定位使用以及注意事项(个人)
16lz
2021-12-04
先上局部代码
/** * android 定位 */void initGoogleLocation() {if (locationListener == null) {locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);if (locationManager == null) {return;}Location lastlocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);if (lastlocation != null) {BMapApiApplication.userVo.setLatitude((int) (lastlocation.getLatitude() * 1e6));BMapApiApplication.userVo.setLongitude((int) (lastlocation.getLongitude() * 1e6));}locationListener = new android.location.LocationListener() {@Overridepublic void onLocationChanged(Location location) {// TODO Auto-generated method stubLog.i(BMapApiApplication.SOFTNAME, "location");if (location != null) {/** * 定位解析以及处理 */iBinder.sendPacket(new LocationPacket(location, iBinder));}}@Overridepublic void onProviderDisabled(String provider) {// TODO Auto-generated method stublocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, location_time,20, locationListener);Log.i(BMapApiApplication.SOFTNAME, provider);}@Overridepublic void onProviderEnabled(String provider) {// TODO Auto-generated method stublocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, location_time, 20,locationListener);Log.i(BMapApiApplication.SOFTNAME, provider);}@Overridepublic void onStatusChanged(String provider, int status,Bundle extras) {// TODO Auto-generated method stub}};/** * 请求定位 */locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, location_time, 20,locationListener);} else {if (locationManager != null) {locationManager.removeUpdates(locationListener);locationListener = null;}}}
此代码为目前使用正常,不过有时候 怎么都不能触发,后来发现重启手机即可,具体原因不详。 注意事项:我一请求就是GPS,而不是网络,经调试发现,如果开始请求为网络,如果软件中途开启GPS,则不能监听到GPS的开启,所以需要先GPS监听无GPS后启用网络,而如果再开启GPS的话还是能监听到的再转换GPS监听位置。网络定位经常不是受参数影响,说是 最小时间最小距离,就是说 有可能大于这个距离与时间,,网络定位无论怎么请求都不会有,它自动在大于这个参数时间距离 后随机触发,GPS的话就是根据参数来的
更多相关文章
- android GPS 获取位置
- Android入门之SeekBar
- 【Android】_SmsReceicer_短信监听
- Android(安卓)okhttp使用
- Android之GPS定位网上详解总结
- 获取Android设备电池电量状态
- Android(安卓)侧滑菜单的实现
- android webService
- android listen app package change, contact change, sdcard fi