单次定位

单次定位是指发起一次定位请求只返回一次定位结果。单次定位一般只会返回网络定位信息,这是因为手机的GPS模块通常获取定位信息要晚于网络定位。而且单次定位不需要配置TencentLocationRequest,默认requestLevel是REQUEST_LEVEL_NAME,且不需要主动调用停止定位。

注意点:自定位7.2.8开始需要上传设备唯一标识,用于在定位发生问题查询问题原因,通过TencentLocationManager.setDeviceID上传。


1、获取TencentLocationManager实例

mLocationManager = TencentLocationManager.getInstance(this);

2、创建位置监听器TencentLocationListener

    @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 - 状态描述
     */
    }    


3、发起单点定位

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。

本页内容