Skip to Content
एपीआई संदर्भ

विस्तृत एपीआई संदर्भ

इस पृष्ठ में ट्रैसलेट के कॉन्फ़िगरेशन एपीआई के लिए सत्य का पूर्ण स्रोत शामिल है। Tracelet.ready(Config) को पारित किया जा सकने वाला प्रत्येक पैरामीटर यहां सूचीबद्ध है।

वास्तविक दुनिया के वास्तुशिल्प परिदृश्यों को समझाने के लिए कि क्यों आप इन मापदंडों का उपयोग करेंगे, उनके बगल में “कहानी देखें 📖” लिंक पर क्लिक करें।


🌍 जियोकॉन्फिग (config.geo)

भौतिक स्थान, सटीकता और नमूनाकरण तर्क को नियंत्रित करता है। जियो स्टोरी देखें 📖

  • desiredAccuracy: DesiredAccuracy (डिफ़ॉल्ट: DesiredAccuracy.high) लक्ष्य हार्डवेयर सटीकता. बैटरी बचाने के लिए जीपीएस के लिए high, सेल्युलर/वाई-फाई के लिए low का उपयोग करें।
  • distanceFilter: double (डिफ़ॉल्ट: 10.0) किसी बिंदु को रिकॉर्ड करने से पहले स्थानांतरित करने के लिए न्यूनतम क्षैतिज मीटर।

ℹ️ desiredAccuracy या distanceFilter को setConfig() के माध्यम से बदलने से मान बने रहते हैं और ट्रैकिंग पाइपलाइन पुनरारंभ हो जाती है। ट्रैकिंग करते समय अस्थायी ओवरराइड के लिए (उदाहरण के लिए पुष्टि की गई स्थिर अवधि के दौरान जीपीएस को बंद करना), updateLocationProviderOptions() का उपयोग करें - यह चालू प्रदाता को पुनरारंभ किए बिना लाइव अपडेट करता है, और कभी भी जारी कॉन्फ़िगरेशन को नहीं छूता है।

  • stationaryRadius: double (डिफ़ॉल्ट: 25.0) उपयोगकर्ता के चारों ओर की त्रिज्या को स्थिर माना जाएगा (जीपीएस निकास को रोकता है)।
  • locationTimeout: int (डिफ़ॉल्ट: 60) हार मानने से पहले जीपीएस लॉक की प्रतीक्षा करने के लिए अधिकतम सेकंड।
  • disableElasticity: bool (डिफ़ॉल्ट: false) यदि सत्य है, तो गतिशील गति-आधारित दूरी स्केलिंग को अक्षम कर देता है।
  • elasticityMultiplier: double (डिफ़ॉल्ट: 1.0) उच्च गति पर यात्रा करते समय गतिशील दूरी फ़िल्टर के लिए गुणक।
  • stopAfterElapsedMinutes: int (डिफ़ॉल्ट: -1) X मिनटों के बाद इंजन स्वतः बंद हो जाता है। -1 का अर्थ है हमेशा के लिए चलाएँ।
  • maxMonitoredGeofences: int (डिफ़ॉल्ट: -1) समवर्ती रूप से निगरानी करने के लिए अधिकतम जियोफेंस।
  • enableTimestampMeta: bool (डिफ़ॉल्ट: false) सटीक नैनोसेकंड हार्डवेयर टाइमस्टैम्प संलग्न करता है।
  • enableAdaptiveMode: bool (डिफ़ॉल्ट: false) बैटरी स्तर के आधार पर सेटिंग्स को ऑटो-टॉगल करता है।
  • periodicLocationInterval: int (डिफ़ॉल्ट: 900) स्थिर होने पर आवधिक अद्यतनों के बीच सेकंड।
  • periodicDesiredAccuracy: DesiredAccuracy (डिफ़ॉल्ट: DesiredAccuracy.medium) आवधिक पृष्ठभूमि जागरण के दौरान उपयोग की जाने वाली सटीकता।
  • enableSparseUpdates: bool (डिफ़ॉल्ट: false) विशेष रूप से निम्न-शक्ति सेल-टावर त्रिकोणासन का उपयोग करता है।
  • sparseDistanceThreshold: double (डिफ़ॉल्ट: 50.0) मीटरों को विरल मोड में ले जाना है।
  • sparseMaxIdleSeconds: int (डिफ़ॉल्ट: 300) एक विरल अद्यतन के बिना अधिकतम समय.
  • enableDeadReckoning: bool (डिफ़ॉल्ट: false) जीपीएस खो जाने पर स्थान का अनुमान लगाने के लिए एक्सेलेरोमीटर/जाइरोस्कोप का उपयोग करता है (उदाहरण के लिए सुरंगें)।
  • deadReckoningActivationDelay: int (डिफ़ॉल्ट: 0) डेड रेकनिंग शुरू होने से पहले कुछ सेकंड के लिए जीपीएस गायब हो गया।
  • deadReckoningMaxDuration: int (डिफ़ॉल्ट: 0) रुकने से पहले डेड रेकनिंग की अनुमति देने के लिए अधिकतम सेकंड।
  • resolveAddress: bool (डिफ़ॉल्ट: false) स्वचालित रूप से रिवर्स-जियोकोड एक सड़क पता स्ट्रिंग में समन्वयित करता है।

🧹 लोकेशनफ़िल्टर (config.geo.filter)

SQLite/Sync पर पहुंचने से पहले खराब GPS डेटा को साफ़ करता है। फ़िल्टर स्टोरी देखें 📖

  • trackingAccuracyThreshold: int (डिफ़ॉल्ट: 100) X मीटर से भी खराब सटीकता वाले अंक गिरा दिए जाते हैं।
  • maxImpliedSpeed: int (डिफ़ॉल्ट: 80) स्थान छलांग को अस्वीकार करता है जो गति > X मी/से (80 मी/से = 288 किमी/घंटा) दर्शाता है।
  • odometerAccuracyThreshold: int (डिफ़ॉल्ट: 50) X मीटर से भी खराब सटीकता वाले बिंदु कुल यात्रा दूरी में नहीं जुड़ते हैं।
  • policy: LocationFilterPolicy (डिफ़ॉल्ट: LocationFilterPolicy.adjust) खराब बिंदुओं को कैसे संभालें (drop या adjust)।
  • rejectMockLocations: bool (डिफ़ॉल्ट: false) जीपीएस स्पूफिंग ऐप्स द्वारा उत्पन्न स्थानों को तुरंत हटा देता है।
  • mockDetectionLevel: int (डिफ़ॉल्ट: 1) नकली जीपीएस पहचान अनुमानों की आक्रामकता।
  • useKalmanFilter: bool (डिफ़ॉल्ट: false) कच्चे जीपीएस प्रक्षेपवक्र पर जटिल कलमन स्मूथिंग लागू करता है।

📱 AppConfig (config.app)

समग्र ऐप जीवनचक्र व्यवहार को नियंत्रित करता है।

  • stopOnTerminate: bool (डिफ़ॉल्ट: true) यदि true है, तो उपयोगकर्ता द्वारा ऐप को स्वाइप करने पर ट्रैकिंग बंद हो जाती है। यदि false होता है, तो यह पृष्ठभूमि में रीबूट हो जाता है। टर्मिनेट स्टोरी देखें 📖
  • startOnBoot: bool (डिफ़ॉल्ट: false) यदि true है, तो फ़ोन पुनः प्रारंभ होने पर ट्रैकिंग स्वचालित रूप से प्रारंभ हो जाती है।
  • heartbeatInterval: int (डिफ़ॉल्ट: 60) इंजन जीवित है यह साबित करने के लिए प्रत्येक X सेकंड में एक “हार्टबीट” इवेंट सक्रिय करता है।
  • schedule: List<String> (डिफ़ॉल्ट: []) विशिष्ट समय पर स्वचालित रूप से ट्रैकिंग प्रारंभ/बंद करने के लिए CRON-जैसी स्ट्रिंग।
  • remoteConfigUrl: String? (डिफ़ॉल्ट: null) HTTPS URL SDK ready() पर एक JSON कॉन्फ़िगरेशन मानचित्र लाता है, इसे स्थानीय कॉन्फ़िगरेशन पर लागू करता है और पृष्ठभूमि में ताज़ा करता है। तत्काल ऑफ़लाइन आवेदन के लिए डिवाइस पर कैश्ड। दूरस्थ कॉन्फ़िगरेशन देखें।
  • remoteConfigHeaders: Map<String, String>? (डिफ़ॉल्ट: null) रिमोट कॉन्फिगरेशन फ़ेच के लिए HTTP हेडर।
  • remoteConfigTimeout: int (डिफ़ॉल्ट: 60000) एमएस में रिमोट कॉन्फ़िगरेशन लाने के लिए टाइमआउट।
  • remoteConfigRefreshInterval: int (डिफ़ॉल्ट: 1440) रिमोट कॉन्फिगरेशन दोबारा लाने से कुछ मिनट पहले।

🤖 AndroidConfig (config.android)

Android विशिष्ट OS बाधाएँ। एंड्रॉइड स्टोरी देखें 📖

  • locationUpdateInterval: int (डिफ़ॉल्ट: 1000) जीपीएस पिंग के बीच सुश्री।
  • batteryBudgetPerHour: double (डिफ़ॉल्ट: 0.0) प्रति घंटे अधिकतम बैटरी खपत % का लक्ष्य रखें। 0.0 थ्रॉटलिंग को अक्षम करता है।
  • releaseWakelockWhenStationary: bool (डिफ़ॉल्ट: false) MotionDetectionMode.smart का उपयोग करते समय, गहरी नींद की बैटरी बचत को अधिकतम करने के लिए डिवाइस पूरी तरह से स्थिर होने पर ट्रैकिंग वैकलॉक जारी करता है।
  • fastestLocationUpdateInterval: int (डिफ़ॉल्ट: 500) यदि कोई अन्य ऐप उनसे अनुरोध करता है तो जीपीएस पिंग के बीच सबसे तेज़ एमएस।
  • deferTime: int (डिफ़ॉल्ट: 0) एंड्रॉइड को X एमएस के लिए स्थान अपडेट बैचने की अनुमति देता है।
  • allowIdenticalLocations: bool (डिफ़ॉल्ट: false) यदि गलत है, तो डुप्लिकेट सटीक निर्देशांक हटा दिए जाते हैं।
  • geofenceModeHighAccuracy: bool (डिफ़ॉल्ट: false) — ⚠️ अस्वीकृत जियोफेंस (भारी बैटरी ड्रेन) के लिए जीपीएस चिप को बाध्य करता है। क्रॉस-प्लेटफ़ॉर्म का उपयोग करें GeofenceConfig.geofenceModeHighAccuracy (नीचे GeofenceConfig अनुभाग देखें) इसके बजाय - यह अब iOS और Android दोनों को नियंत्रित करता है। यह केवल Android ध्वज अभी भी है पश्चगामी संगतता के लिए सम्मानित किया गया (यदि इनमें से कोई भी true है, तो उच्च-सटीकता मोड है सक्षम) लेकिन भविष्य के प्रमुख संस्करण में हटा दिया जाएगा।
  • periodicUseForegroundService: bool (डिफ़ॉल्ट: false) आवधिक जागरण के दौरान लगातार अधिसूचना को बाध्य करता है।
  • periodicUseExactAlarms: bool (डिफ़ॉल्ट: false) सटीक वेकअप के लिए AlarmManager का उपयोग करता है (SCHEDULE_EXACT_ALARM मेनिफेस्ट अनुमति की आवश्यकता है)। सटीक अलार्म देखें 📖
  • scheduleUseAlarmManager: bool (डिफ़ॉल्ट: false) CRON शेड्यूलिंग के लिए सटीक अलार्म का उपयोग करता है।

फ़ोरग्राउंडसर्विसकॉन्फिग (config.android.foregroundService)

  • enabled: bool (डिफ़ॉल्ट: true) Android 13+ पर POST_NOTIFICATIONS अनुमति की आवश्यकता है। अधिसूचना देखें 📖
  • channelId: String (डिफ़ॉल्ट: 'tracelet_channel')
  • channelName: String (डिफ़ॉल्ट: 'Tracelet')
  • notificationTitle: String (डिफ़ॉल्ट: 'Tracelet')
  • notificationText: String (डिफ़ॉल्ट: 'Tracking location in background')
  • notificationColor: String? (डिफ़ॉल्ट: null) छोटे आइकन पृष्ठभूमि के लिए हेक्स रंग।
  • notificationSmallIcon: String? (डिफ़ॉल्ट: null) आपके res/drawable फ़ोल्डर में केवल सफेद PNG का नाम।
  • notificationLargeIcon: String? (डिफ़ॉल्ट: null)
  • notificationPriority: NotificationPriority (डिफ़ॉल्ट: NotificationPriority.defaultPriority)
  • notificationOngoing: bool (डिफ़ॉल्ट: true)
  • showNotificationOnPauseOnly: bool (डिफ़ॉल्ट: false)
  • actions: List<String> (डिफ़ॉल्ट: [])

🔔 अधिसूचना परिवर्तन लागू करने के लिए जबकि ट्रैकिंग पहले से ही चल रही हो, setConfig() के बाद Tracelet.updateNotification() पर कॉल करें। यह पाइपलाइन को पुनरारंभ किए बिना लाइव अधिसूचना को दोबारा पोस्ट करता है (v3.6.8+)। iOS पर यह इसके बजाय चल रही लाइव गतिविधि को ताज़ा करता है; वेब पर यह नो-ऑप है।


🍎 IosConfig (config.ios)

iOS विशिष्ट OS बाधाएँ। आईओएस स्टोरी देखें 📖

  • activityType: LocationActivityType (डिफ़ॉल्ट: LocationActivityType.other) iOS को बताता है कि आप क्या कर रहे हैं (उदाहरण के लिए fitness, navigation) ताकि वह जान सके कि ट्रैकिंग कब रोकनी है।
  • useSignificantChangesOnly: bool (डिफ़ॉल्ट: false) पूरी तरह से सेल-टावर हैंडऑफ़ पर निर्भर करता है। लगभग-शून्य बैटरी ख़त्म।
  • showsBackgroundLocationIndicator: bool (डिफ़ॉल्ट: false) ब्लू पिल संकेतक दिखाता है। location Xcode क्षमता की आवश्यकता है। नीली गोली देखें 📖
  • pausesLocationUpdatesAutomatically: bool (डिफ़ॉल्ट: false) यदि उपयोगकर्ता कुछ समय से स्थानांतरित नहीं हुआ है तो iOS को जीपीएस चिप को बंद करने की अनुमति देता है।
  • locationAuthorizationRequest: LocationAuthorizationRequest (डिफ़ॉल्ट: always) कौन सी अनुमति मांगनी है.
  • disableLocationAuthorizationAlert: bool (डिफ़ॉल्ट: false) यदि केवल “जब उपयोग में हो” का अनुरोध किया जाता है तो ओएस को “हमेशा अनुमति दें” संकेत देने से रोकता है।
  • preventSuspend: bool (डिफ़ॉल्ट: false) ऐप को 24/7 सक्रिय रखने के लिए मूक ऑडियो चलाता है। audio Xcode क्षमता की आवश्यकता है। निलंबन रोकें देखें 📖
  • useBackgroundActivitySession: bool (डिफ़ॉल्ट: false) केवल “जब उपयोग में हो” प्राधिकरण के साथ पृष्ठभूमि स्थान सत्र बनाए रखने के लिए CLBackgroundActivitySession (iOS 17+) का उपयोग करता है। यह पारंपरिक नीली गोली को डायनामिक आइलैंड संकेतक से बदल देता है। ध्यान दें: ऐप्पल ऐप स्टोर दिशानिर्देशों के अनुसार इसका उपयोग करने वाले ऐप्स को उपयोगकर्ताओं को स्पष्ट स्पष्टीकरण प्रदान करना होगा कि पृष्ठभूमि स्थान क्यों आवश्यक है।
  • liveActivityConfig: LiveActivityConfig? (डिफ़ॉल्ट: null) ट्रैकिंग के दौरान लॉक स्क्रीन/डायनेमिक आइलैंड लाइव गतिविधि का विकल्प चुनें (iOS 16.1+, विजेट एक्सटेंशन की आवश्यकता है)। title और body लेता है। लाइव गतिविधियां देखें 📖। इसे रनटाइम पर Tracelet.updateNotification() (v3.6.8+) के साथ रीफ्रेश करें।

📍 जियोफेंस कॉन्फिग (config.geofence)

क्रॉस-प्लेटफ़ॉर्म जियोफ़ेंसिंग व्यवहार (आईओएस + एंड्रॉइड)।

  • geofenceModeHighAccuracy: bool (डिफ़ॉल्ट: false) यह नियंत्रित करता है कि जियोफ़ेंस संक्रमण का पता कैसे लगाया जाता है:
    • false (डिफ़ॉल्ट) - ओएस क्षेत्र-निगरानी सेवा का उपयोग करता है। कम शक्ति, कोई iOS नीला संकेतक नहीं, लेकिन OS एक व्यावहारिक न्यूनतम त्रिज्या (~100 मीटर) लागू करता है और छोटे या EXIT संक्रमण अविश्वसनीय हो सकते हैं।
    • true - निरंतर जीपीएस से ऐप में बदलाव का मूल्यांकन करता है। उच्च बैटरी उपयोग की कीमत पर तंग त्रिज्या (उदाहरण के लिए 5-50 मीटर) और निकास घटनाओं को विश्वसनीय बनाता है और - आईओएस पर - सिस्टम “उपयोग में स्थान” (नीला) स्टेटस-बार संकेतक (निरंतर जीपीएस इसे मजबूर करता है)। नीली गोली देखें 📖

यह अप्रचलित AndroidConfig.geofenceModeHighAccuracy का स्थान लेता है; यदि इनमें से कोई भी true है, तो उच्च-सटीकता मोड सक्षम है।

  • geofenceInitialTrigger: bool (डिफ़ॉल्ट: true) पंजीकरण पर जियोफेंस स्थिति का मूल्यांकन करें।
  • geofenceInitialTriggerEntry: bool (डिफ़ॉल्ट: true) यदि डिवाइस पंजीकृत होने पर पहले से ही जियोफेंस के अंदर है तो तुरंत ENTER फायर करें।
  • geofenceProximityRadius: int (डिफ़ॉल्ट: 1000) निकटता-आधारित लोडिंग के लिए त्रिज्या (मीटर) - इस दूरी के भीतर केवल जियोफेंस सक्रिय रूप से ओएस के साथ पंजीकृत हैं (आपको आईओएस 20-क्षेत्र सीमा से कहीं अधिक प्रबंधन करने की सुविधा देता है)।

📡 HttpConfig (config.http)

नेटवर्क सिंक्रोनाइज़ेशन इंजन को नियंत्रित करता है। सिंक स्टोरी देखें 📖

  • url: String? (डिफ़ॉल्ट: null) आपका बैकएंड समापन बिंदु.
  • method: HttpMethod (डिफ़ॉल्ट: HttpMethod.post)
  • headers: Map<String, String>? (डिफ़ॉल्ट: null) कस्टम ऑथ हेडर. गतिशील JWT रोटेशन के लिए, कॉलबैक देखें 📖
  • params: Map<String, Object?>? (डिफ़ॉल्ट: null)
  • extras: Map<String, Object?>? (डिफ़ॉल्ट: null) स्टेटिक JSON डेटा को प्रत्येक स्थान पेलोड में इंजेक्ट किया जाता है।
  • httpRootProperty: String? (डिफ़ॉल्ट: 'location') JSON रूट नोड.
  • autoSync: bool (डिफ़ॉल्ट: true) स्वचालित रूप से अपलोड होता है. यदि गलत है, तो आपको Tracelet.sync() पर कॉल करना होगा।
  • batchSync: bool (डिफ़ॉल्ट: false) 1-दर-1 के बजाय स्थानों की सारणी अपलोड करता है।
  • maxBatchSize: int (डिफ़ॉल्ट: 250)
  • autoSyncThreshold: int (डिफ़ॉल्ट: 0) सिंक ट्रिगर करने से पहले आवश्यक SQLite रिकॉर्ड की संख्या।
  • autoSyncDelay: int (डिफ़ॉल्ट: 10000) स्थान आने के बाद सिंक करने से पहले प्रतीक्षा करने के लिए सुश्री।
  • syncInterval: int (डिफ़ॉल्ट: 0) ऑफ़लाइन कतार के समय-आधारित फ्लश को दोहराने के बीच के सेकंड। जब > 0, SDK समय-समय पर इस ताल पर किसी भी लंबित स्थान को अपलोड करता है - autoSyncDelay बहस से स्वतंत्र जो नए आवेषण पर सक्रिय होता है। चाहे कितने भी रिकॉर्ड जमा हो गए हों, समय-संचालित फ्लशिंग के लिए उपयोगी। 0 अंतराल टाइमर को अक्षम कर देता है।
  • httpTimeout: int (डिफ़ॉल्ट: 60000)
  • locationsOrderDirection: LocationOrderDirection (डिफ़ॉल्ट: LocationOrderDirection.ascending)
  • disableAutoSyncOnCellular: bool (डिफ़ॉल्ट: false) उपयोगकर्ता डेटा प्लान को सहेजने के लिए केवल वाई-फ़ाई पर होने पर ही सिंक होता है।
  • maxRetries: int (डिफ़ॉल्ट: 3)
  • retryBackoffBase: int (डिफ़ॉल्ट: 1000)
  • retryBackoffCap: int (डिफ़ॉल्ट: 60000)
  • enableDeltaCompression: bool (डिफ़ॉल्ट: false) केवल डेल्टा निर्देशांक भेजता है, जिससे JSON पेलोड का आकार 80% कम हो जाता है।
  • deltaCoordinatePrecision: int (डिफ़ॉल्ट: 5)
  • sslPinningFingerprints: List<String>? (डिफ़ॉल्ट: null)
  • sslPinningCertificates: List<String>? (डिफ़ॉल्ट: null)

🏢 एंटरप्राइज़ कॉन्फ़िगरेशन

नोटट्रांस0लेट (नॉटट्रांस1लेट)

  • enabled: bool (डिफ़ॉल्ट: false) स्थान हैश का एक क्रिप्टोग्राफ़िक, छेड़छाड़-रोधी ब्लॉकचेन बनाता है।
  • hashAlgorithm: HashAlgorithm (डिफ़ॉल्ट: HashAlgorithm.sha256)
  • includeExtrasInHash: bool (डिफ़ॉल्ट: false)

नोटट्रांस0लेट (नॉटट्रांस1लेट)

नोटट्रांस0लेट (नॉटट्रांस1लेट)

नोटट्रांस0लेट (नॉटट्रांस1लेट)

  • enabled: bool (डिफ़ॉल्ट: false) क्रिप्टोग्राफ़िक रूप से यह साबित करने के लिए कि डिवाइस वास्तविक है और एमुलेटर नहीं है, प्ले इंटीग्रिटी (एंड्रॉइड) और ऐप अटेस्ट (आईओएस) का उपयोग करता है।
  • refreshInterval: int (डिफ़ॉल्ट: 86400)
  • verificationUrl: String? (डिफ़ॉल्ट: null)