⚡ 10-മിനിറ്റ് ദ്രുത ആരംഭം
ഞങ്ങളുടെ വളരെ ഒപ്റ്റിമൈസ് ചെയ്ത പ്രീ-ബിൽറ്റ് കോൺഫിഗറേഷൻ പ്രൊഫൈലുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ആപ്പിൽ പശ്ചാത്തല ട്രാക്കിംഗ് തൽക്ഷണം നേടുക.
നിങ്ങൾക്കായി സജ്ജീകരണം ചെയ്യാൻ ഒരു AI തിരഞ്ഞെടുക്കണോ? ഞങ്ങളുടെ സെറ്റപ്പ് പ്രോംപ്റ്റ് പകർത്തി Claude, ChatGPT, Cursor അല്ലെങ്കിൽ നിങ്ങളുടെ പ്രോജക്റ്റിൽ പ്രവർത്തിക്കുന്ന ഏതെങ്കിലും AI കോഡിംഗ് ഏജൻ്റ് എന്നിവയിൽ ഒട്ടിക്കുക. ഇത് ഈ വെബ്സൈറ്റിൽ നിന്ന് ഏറ്റവും പുതിയ ഡോക്സ് ലഭ്യമാക്കും, നിങ്ങളുടെ ആപ്പിനെക്കുറിച്ച് കുറച്ച് ചോദ്യങ്ങൾ ചോദിക്കും (ഉപയോഗ കേസ്, ബാറ്ററി ടാർഗെറ്റുകൾ, ബാക്കെൻഡ് സമന്വയം, കംപ്ലയിൻസ് ആവശ്യകതകൾ…), തുടർന്ന് നിങ്ങൾക്കായി Tracelet സ്വയമേവ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യും.
1. Tracelet ഇൻസ്റ്റാൾ ചെയ്യുക
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>
</array>Android സജ്ജീകരണം (android/app/src/main/AndroidManifest.xml)
നിങ്ങളുടെ സമാഹരിച്ച ആപ്പിലേക്ക് (ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION, FOREGROUND_SERVICE, ACTIVITY_RECOGNITION, മുതലായവ) ആവശ്യമായ എല്ലാ അനുമതികളും Tracelet സ്വയമേവ കുത്തിവയ്ക്കുന്നു. നിങ്ങൾ അവയെ നിങ്ങളുടെ മാനിഫെസ്റ്റിലേക്ക് നേരിട്ട് ചേർക്കേണ്ടതില്ല.
നിങ്ങൾക്ക് ഏതെങ്കിലും ഓപ്ഷണൽ അനുമതികൾ നീക്കം ചെയ്യണമെങ്കിൽ (ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ചലനം കണ്ടെത്തൽ ആവശ്യമില്ലെങ്കിൽ), Android മാനിഫെസ്റ്റ് ലയനം ഉപയോഗിച്ച് നിങ്ങൾക്ക് അവ നിർബന്ധമായും നീക്കം ചെയ്യാം. ഏതൊക്കെ അനുമതികൾ നിർബന്ധമാണ്, അവ ഓപ്ഷണൽ, അവ എങ്ങനെ നീക്കംചെയ്യാം എന്നിവയെക്കുറിച്ചുള്ള ഒരു പൂർണ്ണ ഗൈഡിനായി, Android പ്ലാറ്റ്ഫോം സജ്ജീകരണം കാണുക.
3. ആരംഭിക്കുക & ട്രാക്ക് ചെയ്യുക
മുൻകൂട്ടി ക്രമീകരിച്ച ബാലൻസ്ഡ് പ്രൊഫൈൽ ഉപയോഗിച്ച് Tracelet ആരംഭിക്കുക. ഉപയോക്താവ് നീങ്ങുമ്പോൾ സജീവമായി ട്രാക്കുചെയ്യുന്നതും ബാറ്ററി ലാഭിക്കുന്നതിന് നിശ്ചലമാകുമ്പോൾ ജിപിഎസ് പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നതുമായ മികച്ച ഡിഫോൾട്ടാണിത്. ഈ കോഡ് ഹെഡ്ലെസ് ടാസ്ക്കും രജിസ്റ്റർ ചെയ്യുന്നു, അതിനാൽ ഉപയോക്താവ് ആപ്പ് സ്വൈപ്പ് ചെയ്താലും ട്രാക്കിംഗ് കുറ്റമറ്റ രീതിയിൽ തുടരും!
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:tracelet/tracelet.dart';
// 1. Define a top-level Headless Task to handle events when the app is killed
@pragma('vm:entry-point')
void headlessTask(HeadlessEvent event) {
print('[Headless] Event received while app is killed: ${event.name}');
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 2. Register the headless task BEFORE runApp!
Tracelet.registerHeadlessTask(headlessTask);
// 3. Request permissions required for background tracking natively via Tracelet
if (Platform.isAndroid) {
await Tracelet.requestNotificationAuthorization(); // Required for Android 13+ Foreground Service
await Tracelet.requestMotionAuthorization(); // Required for Motion Detection heuristics
}
final authStatus = await Tracelet.requestLocationAuthorization();
if (authStatus == AuthorizationStatus.deniedForever) {
print("Permissions denied!");
return;
}
// 4. (Optional) Mitigate Aggressive OEM Battery Managers (Xiaomi, Huawei, etc.)
if (Platform.isAndroid) {
final health = await Tracelet.getSettingsHealth();
if (health['isAggressiveOem'] == true) {
await Tracelet.showPowerManager(); // Prompts user to whitelist the app
}
}
// 5. Listen to real-time location events
Tracelet.onLocation((location) {
print('[Tracelet] Location: ${location.coords.latitude}, ${location.coords.longitude}');
});
// 6. Configure Tracelet with the Balanced Profile and Notification settings
await Tracelet.ready(Config.balanced(
url: 'https://api.your-server.com/locations',
headers: {'Authorization': 'Bearer YOUR_TOKEN'},
startOnBoot: true,
stopOnTerminate: false, // Ensures tracking continues when app is swiped away
android: AndroidConfig(
foregroundService: ForegroundServiceConfig(
contentTitle: "Background Tracking",
contentText: "We are tracking your location securely.",
notificationIcon: "mipmap/ic_launcher",
),
),
));
// 7. Start tracking!
await Tracelet.start();
runApp(MyApp());
}അത്രയേയുള്ളൂ! Tracelet ഇപ്പോൾ ബാക്ക്ഗ്രൗണ്ട് എക്സിക്യൂഷൻ, മോഷൻ ഡിറ്റക്ഷൻ ഹ്യൂറിസ്റ്റിക്സ്, ഓഫ്ലൈൻ SQLite കാഷിംഗ്, നെറ്റ്വർക്ക് സിൻക്രൊണൈസേഷൻ എന്നിവ പൂർണ്ണമായും സ്വന്തമായി കൈകാര്യം ചെയ്യും.