安装
安装 Tracelet 涉及添加 Flutter 依赖项并进行一些本机项目配置。
1.添加依赖
使用 Flutter CLI 将 tracelet 添加到 pubspec.yaml:
flutter pub add tracelet2.iOS设置
您必须在 ios/Runner/Info.plist 中定义使用说明和后台模式。如果没有这些,Apple 将拒绝您的应用程序或终止后台任务。
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to track your route.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>We need background location to record your route even when the app is closed.</string>
<key>NSMotionUsageDescription</key>
<string>Motion detection allows battery-efficient tracking by pausing GPS when stationary.</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>fetch</string>
<string>processing</string>
</array>确保您已添加 location UIBackgroundMode,否则您的应用程序在推送到后台时将被挂起。
3. 安卓设置
推荐依赖:高精度GMS定位
要获得融合位置提供程序(最佳精度 + 电池)、硬件活动识别和硬件地理围栏,请将 Google Play 服务位置添加到您的应用中。它不由 Tracelet 捆绑(以保持轻量级并支持无 Google 的设备),因此您选择加入:
// android/app/build.gradle.kts
dependencies {
implementation("com.google.android.gms:play-services-location:21.3.0")
}如果没有这种依赖性,Tracelet 会退回到 AOSP LocationManager(普通 GPS) — 跟踪仍然有效,但您会失去 FusedLocationProviderClient 的准确性/电池优势、硬件活动识别和硬件地理围栏。 **添加它,除非您专门针对无 Google/AOSP 设备。**请参阅 Android 平台设置 以获取完整比较。
可选依赖项:Play Integrity(设备证明)
如果您启用 Tracelet 的 设备证明 功能 (AttestationConfig),还要将 Google Play Integrity 添加到您的应用中。与 GMS 位置依赖项一样,Tracelet 未捆绑,因此您选择加入:
// android/app/build.gradle.kts
dependencies {
implementation("com.google.android.play:integrity:1.6.0")
}仅当您使用证明时才需要。 如果没有它,所有其他功能都可以正常工作 - Tracelet.getAttestationToken() 仅返回 null 而不是 Play Integrity 令牌。有关详细信息,请参阅Android 平台设置。
权限
默认情况下,Tracelet 通过 Manifest Merger 自动将所有必需的权限注入到已编译的 Android 清单中。您不需要需要手动将 <uses-permission> 标签添加到 AndroidManifest.xml 中,除非您想覆盖它们。
注入的权限是:
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
- 未翻译
删除未使用的权限
如果您不需要特定功能(例如运动检测或开机启动),您可以强制删除这些权限,以减少您的应用在 Google Play 商店中请求的范围。
为此,请在应用程序的 android/app/src/main/AndroidManifest.xml 中添加 tools:node="remove" 属性:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.your.app">
<!-- Remove motion detection permission -->
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" tools:node="remove" />
<!-- Remove start on boot permission -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" tools:node="remove" />
<application>
...
</application>
</manifest>如果删除 ACTIVITY_RECOGNITION,Tracelet 将回退到使用标准位置固定更新,这可能比使用硬件计步器消耗更多的电池。
4. 后续步骤
安装完成后,您现在可以编写一些 Dart 代码了!