Skip to Content

യൂട്ടിലിറ്റി API

ഡീബഗ് ചെയ്യാനും ബാറ്ററി പെർമിഷനുകൾ മാനേജ് ചെയ്യാനും അടിസ്ഥാന ഹാർഡ്‌വെയർ സെൻസറുകൾ പരിശോധിക്കാനും നിങ്ങളെ സഹായിക്കുന്ന ശക്തമായ യൂട്ടിലിറ്റി ഫംഗ്‌ഷനുകളുടെ ഒരു ശേഖരം Tracelet തുറന്നുകാട്ടുന്നു. ഇവ Tracelet-ൽ നേരിട്ട് ലഭ്യമായ സ്റ്റാറ്റിക് രീതികളാണ്.


1. ഹാർഡ്‌വെയർ & ഒഎസ് പരിശോധന

ചിലപ്പോൾ ഏത് തരത്തിലുള്ള ഉപകരണത്തിലാണ് ആപ്പ് പ്രവർത്തിക്കുന്നതെന്നോ ഹാർഡ്‌വെയർ ചില സവിശേഷതകളെ (ഒരു സ്റ്റെപ്പ് കൗണ്ടർ പോലെ) പിന്തുണയ്‌ക്കുന്നുണ്ടോ എന്നോ കൃത്യമായി അറിയേണ്ടതുണ്ട്.

സെൻസർ ലഭ്യത നേടുന്നു

ഉപകരണത്തിന് ഫിസിക്കൽ സ്റ്റെപ്പ് കൗണ്ടർ (പെഡോമീറ്റർ), ആക്സിലറോമീറ്റർ അല്ലെങ്കിൽ ഗൈറോസ്കോപ്പ് ഉണ്ടോയെന്ന് പരിശോധിക്കുക.

final sensors = await tl.Tracelet.getSensors(); print('Has Accelerometer: \${sensors.accelerometer}'); print('Has Gyroscope: \${sensors.gyroscope}'); print('Has Step Counter: \${sensors.stepCounter}');

ഉപകരണ വിവരങ്ങൾ നേടുന്നു

വിശദമായ OEM സ്ട്രിംഗുകൾ നേടുക. ആക്രമണാത്മക പശ്ചാത്തല നിയന്ത്രണങ്ങളുള്ള ചൈനീസ് OEM-കൾ (ഹുവായ്, Xiaomi പോലുള്ളവ) തിരിച്ചറിയുന്നതിന് ഇത് വളരെ ഉപയോഗപ്രദമാണ്.

final device = await tl.Tracelet.getDeviceInfo(); print('Manufacturer: \${device.manufacturer}'); print('Model: \${device.model}'); print('OS Version: \${device.version}');

2. പവർ & ബാറ്ററി മാനേജ്മെൻ്റ്

പശ്ചാത്തല ലൊക്കേഷൻ്റെ ഏറ്റവും വലിയ ശത്രു OS തന്നെയാണ്. OS നിലവിൽ നിങ്ങളുടെ ആപ്പിനെ ത്രോട്ടിൽ ചെയ്യുന്നുണ്ടോ എന്ന് കണ്ടെത്തുന്നതിനുള്ള രീതികളും ആ നിയന്ത്രണങ്ങൾ നീക്കാൻ ഉപയോക്താവിനോട് ആവശ്യപ്പെടുന്നതിനുള്ള രീതികളും Tracelet നൽകുന്നു.

പവർ സേവ് മോഡ്

ഉപയോക്താവ് “ലോ പവർ മോഡ്” (iOS) അല്ലെങ്കിൽ “ബാറ്ററി സേവർ” (Android) പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടോയെന്ന് കണ്ടെത്തുക. ഈ മോഡിൽ, OS Tracelet-നെ സജീവമായി കൊല്ലും.

final isPowerSaving = await tl.Tracelet.isPowerSaveMode; if (isPowerSaving) { print('Warning: Battery Saver is ON. Tracking will be degraded.'); }

ബാറ്ററി ഒപ്റ്റിമൈസേഷൻ ഒഴിവാക്കലുകൾ (Android)

Android-ൽ, നിങ്ങൾക്ക് വിശ്വസനീയമായ പശ്ചാത്തല ട്രാക്കിംഗ് വേണമെങ്കിൽ Doze മോഡിൽ നിന്ന് നിങ്ങളുടെ ആപ്പിനെ ഒഴിവാക്കുന്നതിന് ഉപയോക്താവിനോട് ആവശ്യപ്പെടണം. Tracelet ഇതിനായി ഒരു ഏകീകൃത API നൽകുന്നു.

final isExempt = await tl.Tracelet.isIgnoringBatteryOptimizations(); if (!isExempt) { // Opens the exact Android settings page to whitelist your app await tl.Tracelet.openBatterySettings(); }

3. ഹെൽത്ത് ഡാഷ്ബോർഡ് API

ട്രാക്കിംഗ് പ്രവർത്തിക്കുന്നില്ലെന്ന് ഒരു ഉപയോക്താവ് പരാതിപ്പെട്ടാൽ, അത് ഒരു ഡസൻ വ്യത്യസ്ത കാര്യങ്ങളായിരിക്കാം: അവർ GPS നിരസിച്ചു, അവർ Wi-Fi സ്കാനിംഗ് ഓഫാക്കി, അവർ പവർ സേവ് മോഡിലാണ്, മുതലായവ.

ട്രാക്കിംഗിനെ സ്വാധീനിച്ചേക്കാവുന്ന ഓരോ OS ക്രമീകരണത്തിൻ്റെയും ഒരു വലിയ JSON പേലോഡ് Tracelet സമാഹരിക്കുന്നു. ഡീബഗ്ഗിംഗിനായി നിങ്ങൾക്ക് ഈ പേലോഡ് നിങ്ങളുടെ സെർവറിലേക്ക് അപ്‌ലോഡ് ചെയ്യാം.

final health = await tl.Tracelet.getSettingsHealth(); // Upload to your server or print to console print('Health Check: \$health');

4. ലോഗിംഗ് & ഡയഗ്നോസ്റ്റിക്സ്

ട്രേസ്‌ലെറ്റ് സമഗ്രമായ ഡയഗ്നോസ്റ്റിക് ലോഗുകൾ നേരിട്ട് ഒരു ആന്തരിക SQLite ഡാറ്റാബേസിലേക്ക് (ലൊക്കേഷൻ ഡാറ്റാബേസിൽ നിന്ന് വേറിട്ട്) എഴുതുന്നു. ഉൽപ്പാദനത്തിലെ ഡീബഗ്ഗിംഗ് പ്രശ്നങ്ങൾക്ക് ഇത് വിലമതിക്കാനാവാത്തതാണ്.

ലോഗുകൾ നേടുക

ലോഗുകൾ വീണ്ടെടുക്കാൻ രണ്ട് വഴികളുണ്ട്, ആശയക്കുഴപ്പം ഒഴിവാക്കാൻ അവ തമ്മിലുള്ള വ്യത്യാസം മനസ്സിലാക്കേണ്ടത് പ്രധാനമാണ്:

1. getLogs(int limit) (ഘടനാപരമായത്) ഡാറ്റാബേസിൽ നിന്ന് ഘടനാപരമായ List<LogEntry> നൽകുന്നു. നിങ്ങൾക്ക് ഒരു ഘടനാപരമായ UI-ൽ (ട്രേസ്‌ലെറ്റ് ഡോക്ടർ പോലെ) ലോഗുകൾ പ്രദർശിപ്പിക്കേണ്ടിവരുമ്പോൾ അല്ലെങ്കിൽ പ്രോഗ്രാമാറ്റിക് ആയി പ്രോസസ്സ് ചെയ്യേണ്ടിവരുമ്പോൾ ഇത് മികച്ചതാണ്.

// Get the 50 most recent structured log entries final entries = await tl.Tracelet.getLogs(50); for (final entry in entries) { print('[\${entry?.level}] \${entry?.message}'); }

2. getLog([SQLQuery query]) (റോ സ്ട്രിംഗ്) ഒരു വലിയ സ്ട്രിംഗായി കൂട്ടിച്ചേർത്ത ലോഗുകൾ വീണ്ടെടുക്കുന്നു. കൺസോളിലേക്ക് എല്ലാം വേഗത്തിൽ പ്രിൻ്റ് ചെയ്യാനോ ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക് എഴുതാനോ നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ ഇത് അനുയോജ്യമാണ്.

final logsString = await tl.Tracelet.getLog(); print(logsString); // Or query specific logs as a string final errorLogsString = await tl.Tracelet.getLog( tl.SQLQuery(where: "level = 'ERROR'") );

ലോഗുകൾ മായ്ക്കുന്നു

ഡാറ്റാബേസ് ക്യൂകൾ പുനഃസജ്ജമാക്കാൻ നിങ്ങൾക്ക് സംഭരിച്ചിരിക്കുന്ന എല്ലാ സിസ്റ്റം ലോഗുകളും മായ്‌ക്കാൻ കഴിയും:

await tl.Tracelet.clearLogs();

ഇഷ്‌ടാനുസൃത ലോഗുകൾ എഴുതുന്നു

ട്രാക്ക്‌ലെറ്റ് ലോഗ് ഡാറ്റാബേസിലേക്ക് നിങ്ങളുടെ സ്വന്തം ആപ്ലിക്കേഷൻ ലോഗുകൾ കുത്തിവയ്ക്കാൻ കഴിയും, അതുവഴി എല്ലാം കാലക്രമത്തിൽ ലൊക്കേഷൻ ഇവൻ്റുകളുമായി തികച്ചും സംയോജിപ്പിച്ചിരിക്കുന്നു.

await tl.Tracelet.log('INFO', 'User tapped the checkout button'); await tl.Tracelet.log('ERROR', 'Failed to fetch user profile');

ഇമെയിലിംഗ് ലോഗുകൾ

ഒരു ഇമെയിൽ അറ്റാച്ച്‌മെൻ്റിലേക്ക് മുഴുവൻ ലോഗ് ഡാറ്റാബേസും എളുപ്പത്തിൽ ഡംപ് ചെയ്യുക, അതുവഴി ഉപയോക്താവിന് അത് നിങ്ങളുടെ പിന്തുണാ ടീമിന് അയയ്‌ക്കാൻ കഴിയും.

// Opens the native email client with the logs attached await tl.Tracelet.emailLog('[email protected]');