腾讯定位服务 Flutter 插件(tencent_location_flutter_plugin)是腾讯位置服务面向 Flutter 开发者推出的官方插件,为同一份 Dart 代码提供跨平台的定位、地理围栏、设备朝向、坐标工具等能力。
本文档介绍插件提供的核心能力、平台支持矩阵以及版本范围。
| 能力 | 说明 | Android | iOS | HarmonyOS |
|---|---|---|---|---|
| 连续定位 | 可订阅的位置流,支持设置回调间隔、坐标系、返回等级、逆地址解析等参数 | ✅ | ✅ | ✅ |
| 单次定位 | 一次性获取当前定位结果,可配置超时时长 | ✅ | ✅ | ✅ |
| 地理围栏 | 圆形 / 多边形 / 行政区划三种形态,支持进入 / 离开 / 停留事件回调 | ✅ | ✅ | ⚠️ 仅圆形 |
| 设备朝向 | 订阅式获取真北方向、磁北方向等朝向信息 | — | ✅ | ⚠️ 仅真北方向 |
| 设备状态 | 随连续定位一并产生的 GPS / Wi-Fi / 蜂窝 / 定位总开关等状态变化事件 | ✅ | — | ✅ |
| 前台定位服务 | 让定位在应用进入后台时也能继续运行 | ✅ | — | — |
| 后台定位任务 | 鸿蒙独有:通过独立 API 让定位在应用进入后台时继续运行 | — | — | ✅ |
| 工具方法 | 两点距离计算、点是否落在指定圆内(三端通用);GPS 能力查询(仅 Android);坐标是否在国内(仅 iOS);WGS-84 转 GCJ-02(iOS / HarmonyOS) | ✅ | ✅ | ✅ |
| 多实例 | 同一应用内可创建多个定位管理器或围栏管理器实例,事件流互不干扰 | ✅ | ✅ | ✅ |
表中
✅表示该平台原生支持,⚠️表示部分支持(在对应功能文档中详述),—表示原生未提供对应能力。各 API 在单端不支持时的具体行为(抛错或订阅静默),见对应章节。
| 平台 | 当前版本状态 | 底层 SDK |
|---|---|---|
| Android | 已支持 | 腾讯定位 SDK Android |
| iOS | 已支持 | 腾讯定位 SDK iOS |
| HarmonyOS | 已支持 | 腾讯定位 SDK HarmonyOS |
HarmonyOS 端需要使用 OpenHarmony 社区维护的鸿蒙分支 Flutter(3.22.0-ohos)编译,具体接入步骤见 集成 Flutter 插件。
各 API 的更细粒度的平台差异(例如「连续定位三端通用,前台服务仅 Android 可用」),请见对应章节。
入门指南
概述:本页
兼容性说明:Flutter / Dart / Android / iOS / HarmonyOS 版本要求
集成 Flutter 插件:依赖、ApiKey、权限配置
隐私合规接口:隐私政策同意接口
快速开始:最小可运行示例
功能介绍
参考
import 'package:tencent_location_flutter_plugin/tencent_location_flutter_plugin.dart';
Future<void> main() async {
await TencentLocationSDK.setPrivacyPolicyAgreement(true);
await TencentLocationSDK.init(
androidApiKey: 'YOUR_ANDROID_API_KEY',
iosApiKey: 'YOUR_IOS_API_KEY',
harmonyApiKey: 'YOUR_HARMONY_API_KEY',
);
final manager = TencentLocationManager();
final location = await manager.startSingleLocation(
TencentLocationRequest.create()
..setRequestLevel(RequestLevel.adminArea),
);
print('当前位置:${location.latitude}, ${location.longitude}');
await manager.dispose();
}
完整步骤见 快速开始。
有帮助
没帮助