单次定位是指发起一次定位请求只返回一次定位结果。单次定位一般只会返回网络定位信息,这是因为手机的GPS模块通常获取定位信息要晚于网络定位。而且单次定位不需要配置TencentLocationRequest,默认requestLevel是REQUEST_LEVEL_NAME,且不需要主动调用停止定位。
注意点:自定位7.2.8开始需要上传设备唯一标识,用于在定位发生问题查询问题原因,通过TencentLocationManager.setDeviceID上传。
mLocationManager = TencentLocationManager.getInstance(this);
@Override
public void onLocationChanged(TencentLocation location, int error, String reason) {
/**
* location - 新的位置, *可能*来自缓存. 定位失败时 location 无效或者为 null
* error - 错误码, 仅当错误码为 TencentLocation.ERROR_OK 时表示定位成功, 为其他值时表示定位失败
* reason - 错误描述, 简要描述错误原因
*/
}
@Override
public void onStatusUpdate(String name, int status, String desc) {
/**
* name - 设备名, GPS, WIFI, CELL 中的某个
* status - 状态码, STATUS_ENABLED, STATUS_DISABLED, STATUS_UNKNOWN, STATUS_GPS_AVAILABLE, STATUS_GPS_UNAVAILABLE, STATUS_DENIED中的某个 在使用status之前,请先按照name进行区分
* desc - 状态描述
*/
}
TencentLocationRequest request = TencentLocationRequest.create();
request.setGpsFirst(true);
mLocationManager.requestSingleFreshLocation(request , mLocationListener, Looper.getMainLooper());
注意:
1.定位SDK7.2.8版本之前通过TencentLocationRequest传null即可,即使传入一个自己配置的TencentLocationRequest,单点定位还是会按默认设置返回结果。
2.定位SDK7.2.8版本开始单次定位支持输入request_level,返回行政区划,POI等信息。
3.定位SDK7.4.9版本需要构造TencentLocationRequest,发起定位时使用。
4.建议连续定位和单次定位使用不同的 Listener。
有帮助
没帮助