Установка
Установка Tracelet включает добавление зависимости Flutter и создание нескольких собственных конфигураций проекта.
1. Добавьте зависимость
Добавьте tracelet в свой pubspec.yaml с помощью интерфейса командной строки Flutter:
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. Настройка Android
Рекомендуемая зависимость: высокоточное определение местоположения 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. Как и зависимость от местоположения GMS, она не входит в комплект Tracelet, поэтому вы соглашаетесь:
// android/app/build.gradle.kts
dependencies {
implementation("com.google.android.play:integrity:1.6.0")
}Требуется только в том случае, если вы используете аттестацию. Без нее все остальные функции работают нормально — Tracelet.getAttestationToken() просто возвращает null вместо токена Play Integrity. Подробности см. в разделе Настройка платформы Android.
Разрешения
По умолчанию Tracelet автоматически добавляет все необходимые разрешения в скомпилированный манифест Android с помощью Manifest Merger. Вам не нужно вручную добавлять теги <uses-permission> в AndroidManifest.xml, если вы не хотите их переопределить.
Внедренные разрешения:
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
- НЕ ПЕРЕВОДИТЬ
Удаление неиспользуемых разрешений
Если вам не нужна конкретная функция (например, обнаружение движения или запуск загрузки), вы можете принудительно удалить эти разрешения, чтобы уменьшить запрашиваемые области вашего приложения в Google Play Store.
Для этого добавьте атрибут tools:node="remove" в android/app/src/main/AndroidManifest.xml вашего приложения:
<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!
- Перейдите к Быстрый старт, чтобы скопировать и вставить полную рабочую настройку.
- Ознакомьтесь с Базовым примером для минимальной реализации.