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

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

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

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


रनटाइम पर कॉन्फ़िगरेशन अपडेट कर रहा है - ready() बनाम setConfig()

कॉन्फ़िगरेशन प्लगइन तक पहुंचने के दो तरीके हैं, और उनका मतलब अलग-अलग चीजें हैं।

Tracelet.ready(config) पूर्ण आधार रेखा स्थापित करता है। हर क्षेत्र है भेजा गया, इसके प्रभावी मूल्य का समाधान किया गया। इसे स्टार्टअप पर एक बार कॉल करें - या फिर जब भी आप संपूर्ण कॉन्फ़िगरेशन को बदलना चाहते हैं. Tracelet.reset(config) व्यवहार करता है उसी तरह।

Tracelet.setConfig(config) एक आंशिक अद्यतन है। केवल फ़ील्ड्स आप वास्तव में सेट प्रसारित होते हैं; बाकी सब कुछ वही रखता है जो प्लेटफ़ॉर्म के पास है कायम रहा. यह वही है जो आप मध्य सत्र में चाहते हैं, जब एक चीज़ को बदलने की आवश्यकता होती है:

// Changes one flag. The notification title from ready(), the HTTP URL, // distanceFilter, stopOnTerminate — all keep their configured values. await Tracelet.setConfig(const Config( android: AndroidConfig( foregroundService: ForegroundServiceConfig( showNotificationOnPauseOnly: true, ), ), )); // Changes nothing at all. await Tracelet.setConfig(const Config());

⚠️ 3.8.0 में बदला गया। setConfig() ने पहले संपूर्ण को बदल दिया था कॉन्फ़िगरेशन, इसलिए जिस भी फ़ील्ड का आपने उल्लेख नहीं किया है उसे चुपचाप वापस कर दिया जाए डिफ़ॉल्ट - setConfig(const Config()) रीसेट सब कुछ, सहित stopOnTerminate, HTTP सेटिंग्स, अग्रभूमि-सेवा अधिसूचना और iOS जीवित रखने वाले झंडे। यदि आपने स्थिति रीसेट करने के लिए उस पर भरोसा किया है, तो कॉल करें इसके बजाय Tracelet.reset() या ready() (#320 , #321 ).

किसी मान को उसके डिफ़ॉल्ट पर वापस सेट करना अभी भी काम करता है। “अनसेट” का अर्थ है आपने नहीं किया फ़ील्ड प्रदान करें, कभी भी मान डिफ़ॉल्ट के बराबर नहीं होता - इसलिए ForegroundServiceConfig(showNotificationOnPauseOnly: false) ध्वज को घुमाता है बंद। केवल वह फ़ील्ड जिसे आप पूरी तरह से छोड़ देते हैं, अकेला छोड़ दिया जाता है।

Tracelet.activeConfig स्थानीय रूप से समान मर्ज लागू करता है, इसलिए यह हमेशा प्रतिबिंबित होता है आपके अंतिम कॉल द्वारा छोड़े गए डिफ़ॉल्ट के बजाय प्लेटफ़ॉर्म वास्तव में क्या रखता है परेशान.

उन परिवर्तनों के लिए जो नहीं बने रहने चाहिए या पाइपलाइन को पुनः आरंभ नहीं करना चाहिए, इसका उपयोग करें इसके बजाय लक्षित रनटाइम एपीआई: updateLocationProviderOptions() सटीकता/दूरी के लिए, और updateNotification() लाइव अधिसूचना को दोबारा पोस्ट करने के लिए।


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

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

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

ℹ️ setConfig() के माध्यम से desiredAccuracy या distanceFilter को बदलने से मान बने रहते हैं और ट्रैकिंग पाइपलाइन पुनरारंभ हो जाती है। ट्रैकिंग करते समय अस्थायी ओवरराइड के लिए (उदाहरण के लिए पुष्टि की गई स्थिर अवधि के दौरान जीपीएस को बंद करना), 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 (नीचे जियोफेंसकॉन्फिग अनुभाग देखें) इसके बजाय - यह अब iOS और 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) जब ऐप स्क्रीन पर हो तो अधिसूचना छुपाता है। ध्यान न दिया गया जबकि app.stopOnTerminate false है - इसे छिपाने से अग्रभूमि सेवा अवनत हो जाती है, और उस विंडो में हाल ही में स्वाइप करने से प्रक्रिया समाप्त हो जाती है (#378 )। ओवरराइड को start() के अनुसार एक बार लॉग किया जाता है। अधिसूचना छिपाते हुए देखें 📖
  • actions: List<String> (डिफ़ॉल्ट: [])
  • notificationStartedAt: int? (डिफ़ॉल्ट: null) युग मिलीसेकंड (दीवार घड़ी) से बीता हुआ टाइमर गिना जाता है। केवल तभी प्रस्तुत किया जाता है जब notificationShowTimer true हो। हर बार अधिसूचना पोस्ट होने पर भविष्य का मान वर्तमान समय से जुड़ा होता है, इसलिए डिवाइस घड़ी सुधार स्वतः ठीक हो जाता है। बीता हुआ टाइमर देखें 📖
  • notificationShowTimer: bool (डिफ़ॉल्ट: false) notificationStartedAt से सेल्फ-टिकिंग काउंट-अप घड़ी दिखाता है। एंड्रॉइड आपके ऐप से बिना किसी रीपोस्ट के इसे आगे बढ़ाता है। यदि notificationStartedAt अनुपस्थित है तो कोई टाइमर नहीं दिखाया जाता है।
  • notificationOnlyAlertOnce: bool (डिफ़ॉल्ट: false) डिवाइस को केवल अधिसूचना के पहले पोस्ट पर अलर्ट करता है, इसलिए बाद में सामग्री अपडेट चुप रहते हैं। किसी भी अधिसूचना के लिए उपयोगी जिसका पाठ ट्रैकिंग के दौरान बदलता है, न कि केवल टाइमर के लिए। पाठ को चुपचाप अपडेट करना देखें 📖

🔔 अधिसूचना परिवर्तन लागू करने के लिए जबकि ट्रैकिंग पहले से ही चल रही हो, 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+) के साथ रीफ्रेश करें।

LiveActivityConfig (config.ios.liveActivityConfig)

  • नोटट्रांस0लेट: नोटट्रांस1लेट*(आवश्यक)* स्थैतिक शीर्षक. किसी गतिविधि के चलने के दौरान ActivityKit विशेषताएँ अपरिवर्तनीय होती हैं, इसलिए अगली बार शुरू होने पर एक परिवर्तन लागू होता है।

  • नोटट्रांस0लेट: नोटट्रांस1लेट*(आवश्यक)* गतिशील स्थिति रेखा, updateNotification() द्वारा अद्यतन की गई।

  • startedAt: int? (डिफ़ॉल्ट: null) युग मिलीसेकंड (दीवार घड़ी) से बीता हुआ टाइमर गिना जाता है। केवल तभी प्रस्तुत किया जाता है जब showTimer true हो। बीता हुआ टाइमर देखें 📖

  • showTimer: bool (डिफ़ॉल्ट: false) Text(timerInterval:) का उपयोग करके startedAt से एक सेल्फ-टिकिंग काउंट-अप घड़ी प्रस्तुत करता है। iOS आपके ऐप से बिना किसी अपडेट के इसे आगे बढ़ाता है। यदि startedAt अनुपस्थित है तो कोई टाइमर नहीं दिखाया जाता है।

    एक कस्टम विजेट एक्सटेंशन केवल टाइमर प्रस्तुत करता है यदि TraceletActivityAttributes.ContentState की उसकी अपनी प्रतिलिपि startedAt और showTimer घोषित करती है। इन फ़ील्ड्स के अस्तित्व में आने से पहले लिखे गए एक्सटेंशन काम करते रहते हैं - अतिरिक्त मानों को आसानी से अनदेखा कर दिया जाता है - लेकिन जब तक आप संरचना को अपडेट नहीं करते, तब तक कोई घड़ी नहीं दिखाई देती। अद्यतन स्निपेट देखें 📖


📍 जियोफेंस कॉन्फिग (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-क्षेत्र सीमा से कहीं अधिक प्रबंधन करने की सुविधा देता है)।

  • geofenceExitAccuracyMax: int (डिफ़ॉल्ट: -1) सटीकता-जागरूक EXIT गेटिंग को उच्च-सटीकता मोड में ट्यून करता है (मानक मोड में कोई प्रभाव नहीं)। एक वृत्ताकार भू-बाड़ तभी बाहर निकलती है जब संपूर्ण जीपीएस त्रुटि चक्र बाड़ (distance - accuracy > radius + buffer) को साफ कर देता है, जो एकल हाई-ड्रिफ्ट फिक्स को गलत निकास को फायर करने से रोकता है, जबकि एक उपकरण एक छोटी बाड़ के अंदर स्थिर रहता है - मोटे तौर पर जीपीएस अनिश्चितता के कारण वास्तविक निकास में देरी की कीमत पर।

    • -1 (डिफ़ॉल्ट) - पूर्ण गेटिंग; गलत निकास के प्रति सबसे अधिक प्रतिरोधी।
    • 0 — गेटिंग अक्षम; सबसे तेज़ निकास, लेकिन बहाव-प्रवण (पूर्व-निर्धारित व्यवहार)।
    • N > 0 - N मीटर तक क्लैंप सटीकता; N तक बहाव को अवशोषित करता है जबकि सबसे खराब स्थिति में निकास विलंब को ~N मीटर तक सीमित करता है। जीपीएस ड्रिफ्ट और गलत निकास देखें 📖

📡 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)
  • syncTelematics: bool (डिफ़ॉल्ट: false) आपके स्थानों के साथ संग्रहीत ड्राइविंग/प्रभाव की घटनाओं को अपलोड करता है। डिफ़ॉल्ट रूप से बंद, इसलिए आपके नीचे मौजूदा पेलोड कभी नहीं बदलता। टेलीमैटिक्स सिंक देखें 📖
  • telematicsUrl: String? (डिफ़ॉल्ट: null) टेलीमैटिक्स को स्थान पेलोड में संलग्न करने के बजाय {"telematics": [...]} के रूप में उनके स्वयं के समापन बिंदु पर भेजता है। syncTelematics की आवश्यकता है। संलग्न पथ पर वापस जाने के लिए एक खाली स्ट्रिंग (null नहीं) पास करें - कॉन्फिग को मर्ज किया गया है, प्रतिस्थापित नहीं किया गया है।

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

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

  • enabled: bool (डिफ़ॉल्ट: false) स्थान हैश का एक क्रिप्टोग्राफ़िक, छेड़छाड़-रोधी ब्लॉकचेन बनाता है।
  • hashAlgorithm: HashAlgorithm (डिफ़ॉल्ट: HashAlgorithm.sha256) श्रृंखला वर्तमान में हमेशा SHA-256 का उपयोग करती है; किसी अन्य एल्गोरिदम का चयन अभी तक लागू नहीं किया गया है।
  • includeExtrasInHash: bool (डिफ़ॉल्ट: false) — ⚠️ अस्वीकृत: लागू नहीं किया गया। श्रृंखला हमेशा केवल मुख्य स्थान फ़ील्ड को हैश करती है, इसलिए यह ध्वज कुछ भी नहीं बदलता है। इसे तार-तार करने से पहले से गणना की गई प्रत्येक श्रृंखला अमान्य हो जाएगी, इसलिए इसे एक संस्करण की आवश्यकता है मौन व्यवहार परिवर्तन के बजाय श्रृंखलाबद्ध प्रवासन।

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

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

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

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