场景定位针对签到、运动、出行等典型业务场景,预设了定位策略配置。
开发者无需手动构造复杂的请求参数,直接指定场景即可获得最优的定位体验。
自定位 SDK v7.2.8 起,需通过
TencentLocationManager.setDeviceID上传设备唯一标识,用于定位问题排查。
| 场景 | 常量 | 定位方式 | 说明 |
|---|---|---|---|
| 单次定位 | 优先返回精度较高的结果,首次定位可能延迟 1~3 秒 | ||
| 连续定位 | 优先使用卫星定位结果,卫星信号断开后超时 8 秒才返回网络结果 | ||
| 连续定位(惯导) | 适用于步行或骑行,首次定位可能延迟 3~5 秒 |
通过 requestSingleFreshLocation 发起单次定位,TencentLocationRequest 参数预设如下:
| Request 字段 | 值 |
|---|---|
| HIGH_ACCURACY_MODE | |
| true | |
| true | |
| 3000 ms | |
| REQUEST_LEVEL_ADMIN_AREA | |
| true(默认) | |
| false(默认) |
通过 requestLocationUpdates 发起连续定位,TencentLocationRequest 参数预设如下:
| Request 字段 | 值 |
|---|---|
| ONLY_GPS_MODE | |
| true | |
| 1000 ms | |
| false(默认) | |
| REQUEST_LEVEL_NAME(默认) | |
| true(默认) | |
| false(默认) |
运动场景不通过 TencentLocationRequest 配置,而是直接启动 DR(惯导)引擎:
| 参数 | 值 |
|---|---|
| DR_TYPE_WALK | |
| 1000 ms | |
| 5000 ms(超时前仅返回非网络定位结果) |
运动场景依赖步骑行惯导能力,需通过
isDrSupport()判断设备是否支持。不支持时返回错误码 -1,DR so 库加载失败时返回 -7。
mLocationManager = TencentLocationManager.getInstance(this);
// mScenario 为场景常量:SIGN_IN_SCENE / TRANSPORT_SCENE / SPORT_SCENE
mLocationManager.requestLocationWithScene(mScenario, this);
回调在主线程 Looper 上执行。this 为 TencentLocationListener 实现类。
mLocationManager.stopLocationWithScene(mScenario, this);
| 返回值 | 含义 |
|---|---|
| 0 | 启动成功 |
| -1 | 设备不支持 DR 引擎(仅运动场景) |
| -7 | DR so 库加载失败(仅运动场景) |
requestLocationUpdates 或 requestSingleFreshLocation。isDrSupport() 提前判断。
有帮助
没帮助