⚡ 10 मिनट की त्वरित शुरुआत
हमारे अत्यधिक अनुकूलित पूर्व-निर्मित कॉन्फ़िगरेशन प्रोफ़ाइल का उपयोग करके तुरंत अपने ऐप में पृष्ठभूमि ट्रैकिंग चालू करें।
क्या आप अपने लिए सेटअप करने के लिए AI को प्राथमिकता देंगे? हमारे सेटअप प्रॉम्प्ट को कॉपी करें और इसे क्लाउड, चैटजीपीटी, कर्सर, या अपने प्रोजेक्ट में काम करने वाले किसी AI कोडिंग एजेंट में पेस्ट करें। यह इस वेबसाइट से नवीनतम दस्तावेज़ लाएगा, आपसे आपके ऐप के बारे में कुछ प्रश्न पूछेगा (उपयोग मामला, बैटरी लक्ष्य, बैकएंड सिंक, अनुपालन आवश्यकताएं…), और फिर स्वचालित रूप से आपके लिए ट्रैसलेट इंस्टॉल और कॉन्फ़िगर करेगा।
1. ट्रैसलेट स्थापित करें
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/app/src/main/AndroidManifest.xml)
ट्रैसलेट स्वचालित रूप से आपके संकलित ऐप में सभी आवश्यक अनुमतियाँ इंजेक्ट करता है (जैसे ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION, FOREGROUND_SERVICE, ACTIVITY_RECOGNITION, आदि)। आपको उन्हें मैन्युअल रूप से अपने मेनिफेस्ट में जोड़ने की आवश्यकता नहीं है।
यदि आप कोई वैकल्पिक अनुमतियाँ हटाना चाहते हैं (उदाहरण के लिए, यदि आपको गति पहचान की आवश्यकता नहीं है), तो आप एंड्रॉइड मेनिफेस्ट विलय का उपयोग करके उन्हें बलपूर्वक हटा सकते हैं। कौन सी अनुमतियाँ अनिवार्य हैं, कौन सी वैकल्पिक हैं, और वास्तव में उन्हें कैसे हटाया जाए, इस पर पूरी गाइड के लिए, एंड्रॉइड प्लेटफ़ॉर्म सेटअप देखें।
3. आरंभ करें और ट्रैक करें
पूर्व-कॉन्फ़िगर संतुलित प्रोफ़ाइल का उपयोग करके ट्रैसलेट प्रारंभ करें। यह एकदम सही डिफ़ॉल्ट है जो उपयोगकर्ता के चलने पर सक्रिय रूप से ट्रैक करता है, और बैटरी बचाने के लिए स्थिर होने पर जीपीएस को पूरी तरह से बंद कर देता है। यह कोड हेडलेस टास्क को भी पंजीकृत करता है ताकि उपयोगकर्ता द्वारा ऐप को स्वाइप करने पर भी ट्रैकिंग त्रुटिपूर्ण रूप से जारी रहे!
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());
}इतना ही! ट्रैसलेट अब स्वचालित रूप से पृष्ठभूमि निष्पादन, गति पहचान अनुमान, ऑफ़लाइन SQLite कैशिंग और नेटवर्क सिंक्रनाइज़ेशन को पूरी तरह से संभाल लेगा।