Skip to Content
தொடங்குதல்இயங்குதள அமைப்புAndroid SDK

ஆண்ட்ராய்டு SDK: பேட்டரி மேலாளரைக் கட்டுப்படுத்துதல்

பின்னணி சேவைகளை ஆக்ரோஷமாக அழிப்பதில் ஆண்ட்ராய்டு பிரபலமற்றது. சீன OEMகள் (Xiaomi, Huawei போன்றவை) வழக்கமான ஆண்ட்ராய்டு பின்னணி செயலாக்க வரம்புகளை முற்றிலுமாக உடைக்கும் தனிப்பயன் ஆற்றல் மேலாளர்களைக் கொண்டுள்ளன.

இந்தப் பக்கம் உங்கள் பயன்பாட்டை ஏன் ஆன்ட்ராய்டு அழிக்கிறது மற்றும் எப்படி ட்ரேஸ்லெட்டின் குறிப்பிட்ட ஆண்ட்ராய்டு உள்ளமைவுகள் நிஜ உலகில் அதைத் தீர்க்கிறது.


விருப்ப சார்பு: உயர் துல்லியம் GMS இடம்

Tracelet இன் Android SDK ஆனது Google Play சேவைகள் இருப்பிடத்தைப் பயன்படுத்தலாம்FusedLocationProviderClient (சிறந்த துல்லியம் மற்றும் பேட்டரி), வன்பொருள் செயல்பாட்டு அங்கீகாரம் (நடைபயிற்சி / ஓட்டுநர் / இன்னும்), மற்றும் வன்பொருள் ஜியோஃபென்சிங். SDK ஐ இலகுவாகவும், கூகுள் இல்லாத சாதனங்களில் பயன்படுத்தக்கூடியதாகவும் வைத்திருக்க, இது சார்பு தொகுக்கப்படவில்லை. உயர் துல்லியமான பாதையை நீங்கள் விரும்பினால் மட்டுமே சேர்க்கிறீர்கள்:

// android/app/build.gradle.kts dependencies { implementation("com.google.android.gms:play-services-location:21.3.0") }

இது விருப்பமானது, மேலும் SDK அழகாக சிதைகிறது. play-services-location இல்லாமல், ட்ரேஸ்லெட் நிலையான AOSP LocationManager (எளிய GPS) க்கு திரும்பும். கண்காணிப்பு இன்னும் வேலை செய்கிறது - நீங்கள் தான் இணைக்கப்பட்ட வழங்குநரின் துல்லியம்/பேட்டரி நன்மைகள், வன்பொருள் செயல்பாட்டு அங்கீகாரம் மற்றும் வன்பொருள் ஆகியவற்றை இழக்கும் ஜியோஃபென்சிங். பரிந்துரைக்கப்பட்டது: நீங்கள் குறிப்பாக Google-குறைவான / AOSP சாதனங்களை குறிவைக்காத வரையில் சேர்க்கவும் (எ.கா. GMS இல்லாத Huawei, அல்லது de-Googled ROMகள்).

குறைந்தபட்ச பதிப்பு: 21.2.0. ட்ரேஸ்லெட்டின் ஆண்ட்ராய்டு குறியீடு இடைமுகம் சார்ந்ததாக அழைக்கிறது FusedLocationProviderClient மற்றும் ActivityRecognitionClient APIகள் மட்டுமே ஆனது play-services-location 21.2.0 இல் இடைமுகங்கள். பழைய வெளியீடுகள் (எ.கா. 19.0.0) இவற்றை அனுப்புகின்றன உறுதியான வகுப்புகளாக, அதனால் அவர்களுக்குள் அழைப்பது வீசுகிறது இயக்க நேரத்தில் java.lang.IncompatibleClassChangeError. ட்ரேஸ்லெட் ஒரு கிரேடில் வெளியிடுகிறது சார்பு கட்டுப்பாடு play-services-location21.2.0+ ஆக தானாக உயர்த்துகிறது மற்றொரு சார்பு பழைய பதிப்பில் இழுக்கிறது, ஆனால் நீங்கள் பதிப்பை நீங்களே பின் செய்தால், அதை வைத்திருங்கள் 21.2.0 அல்லது புதியது (நாங்கள் 21.3.0 ஐ பரிந்துரைக்கிறோம்).

play-services-location உடன்அது இல்லாமல் (ஏஓஎஸ்பி ஃபால்பேக்)
இணைந்த இடம் (சிறந்த துல்லியம் + பேட்டரி)LocationManager வழியாக ரா ஜிபிஎஸ் / நெட்வொர்க்
வன்பொருள் செயல்பாடு அங்கீகாரம் (onActivityChange)முடுக்கமானி மட்டுமே இயக்கம் கண்டறிதல்
வன்பொருள் ஜியோஃபென்சிங்மென்பொருள் (இன்-SDK) ஜியோஃபென்ஸ் மதிப்பீடு

விருப்ப சார்பு: Play Integrity (சாதன சான்றளிப்பு)

ட்ரேஸ்லெட்டின் சாதன சான்றளிப்பு அம்சத்தை (AttestationConfig) பயன்படுத்தினால், Android பக்கமானது அதன் கிரிப்டோகிராஃபிக் டோக்கனை Google Play இன்டெக்ரிட்டி மூலம் உருவாக்குகிறது. அப்படியே play-services-location, இந்த சார்பு தொகுக்கப்படவில்லை — நீங்கள் சேர்க்கும் போது மட்டுமே சேர்க்கிறீர்கள் சான்றளிப்பை இயக்கு:

// android/app/build.gradle.kts dependencies { implementation("com.google.android.play:integrity:1.6.0") }

இது விருப்பமானது, மேலும் சான்றொப்பம் நேர்த்தியாக குறைகிறது. Play இன்டெக்ரிட்டி இல்லாமல் சார்பு, ட்ரேஸ்லெட்டில் உள்ள மற்ற அனைத்தும் சாதாரணமாக வேலை செய்யும் - சான்றளிப்பு மட்டுமே பாதிக்கப்படுகிறது: AttestationConfig(enabled: true) ஒரு எச்சரிக்கையை பதிவு செய்கிறது மற்றும் Tracelet.getAttestationToken() செயலிழப்பதை விட, டோக்கனுக்குப் பதிலாக null ஐ வழங்குகிறது. நீங்கள் இருந்தால் மட்டுமே சார்புநிலையைச் சேர்க்கவும் சான்றளிப்பை இயக்கவும் மற்றும் Android இல் Play Integrity தீர்ப்பு தேவை. பார்க்கவும் சாதன சான்றளிப்பு வழிகாட்டி  முழு பணிப்பாய்வு மற்றும் சர்வர் பக்க சரிபார்ப்புக்காக.

இது implementation ஆக இருக்க வேண்டும், NOTRANS1 லேட் அல்ல. Play Integrity உள்ளே compileOnly ஆக உள்ளது ட்ரேஸ்லெட் SDK (எனவே இது ஒருபோதும் அனுப்பப்படாது அல்லது சான்றளிப்பைப் பயன்படுத்தாத பயன்பாடுகளில் கட்டாயப்படுத்தப்படாது). என்றால் உங்கள் ஆப் தொகுதிக்கு சார்புநிலையைச் சேர்க்காமல் சான்றளிப்பை இயக்குகிறீர்கள் implementation, இயக்க நேரத்தில் வகுப்புகள் இல்லை மற்றும் சான்றொப்பம் அமைதியாக null ஐ வழங்கும்.


அனுமதிகள் & மேனிஃபெஸ்ட் அமைப்பு

உங்கள் பயன்பாட்டைத் தொகுக்கும்போது தேவையான அனுமதிகளை ட்ரேஸ்லெட் தானாகவே உங்கள் AndroidManifest.xml இல் செலுத்துகிறது. இயல்பாக, இது கோருகிறது:

  • ACCESS_COARSE_LOCATION & ACCESS_FINE_LOCATION (கண்காணிப்புக்கு தேவை)
  • ACCESS_BACKGROUND_LOCATION (பயன்பாடு மூடப்படும் போது கண்காணிப்பதற்குத் தேவை)
  • FOREGROUND_SERVICE & FOREGROUND_SERVICE_LOCATION (தொடர்ச்சியான பின்னணி இயக்கத்திற்குத் தேவை)
  • ACTIVITY_RECOGNITION (ஸ்மார்ட் மோஷன்-கண்டறிதல் இயந்திரத்திற்குத் தேவை)
  • POST_NOTIFICATIONS (Android 13+ முன்புற சேவை UIக்கு தேவை)
  • SCHEDULE_EXACT_ALARM (துல்லியமான கால முறை கண்காணிப்புக்குத் தேவை)

பயன்படுத்தப்படாத அனுமதிகளை அகற்றுதல் (மேனிஃபெஸ்ட் இணைப்பு)

உங்கள் பயன்பாட்டிற்கு ஒரு குறிப்பிட்ட அம்சம் தேவையில்லை என்றால் (உதாரணமாக, உங்கள் கிளையண்டிற்கு மோஷன் கண்டறிதல் தேவையில்லை அல்லது நீங்கள் காலமுறை பயன்முறையைப் பயன்படுத்தவில்லை), உங்கள் ஆப்-நிலை AndroidManifest.xml (android/app/src/main/AndroidManifest.xml) இல் Android இன் மேனிஃபெஸ்ட் இணைப்பு tools:node="remove" கட்டளையைப் பயன்படுத்தி நீங்கள் அனுமதியை வலுக்கட்டாயமாக அகற்றலாம்.

ட்ரேஸ்லெட்டின் சொந்தக் குறியீடு checkSelfPermission() உடன் முழுமையாகப் பாதுகாக்கப்படுகிறது. விடுபட்ட அனுமதிகள் க்ராஷ்களை அல்ல, அழகான பின்னடைவைத் தூண்டும்.

அனுமதிஅகற்றப்படும் போது விளைவு (tools:node="remove")
நோட்ரான்ஸ்0லேட்பாதுகாப்பானது. அடிப்படை முடுக்கமானி மட்டுமே இயக்கம் கண்டறிதல். onActivityChange ஸ்ட்ரீம் சுடாது (நடத்தல்/ஓடுதல்/ஓட்டுதல் வகைப்பாடு இல்லை).
நோட்ரான்ஸ்0லேட்பாதுகாப்பானது. ஆண்ட்ராய்டு 10+ ஆனது ஆப்ஸ் முழுவதுமாக பின்னணியில் இருக்கும் போது அல்லது ஸ்வைப் செய்யும்போது கண்காணிப்பதைக் கட்டுப்படுத்தும்.
நோட்ரான்ஸ்0லேட்பாதுகாப்பானது. பேட்டரிக்கு ஏற்ற, ஆனால் துல்லியமற்ற, வொர்க்மேனேஜர் டைமர்களைப் பயன்படுத்துவதற்கு அவ்வப்போது பயன்முறை வரும்.
நோட்ரான்ஸ்0லேட்பாதுகாப்பானது. முன்புற சேவையின் நிலையான அறிவிப்பு Android 13+ இல் மறைக்கப்பட்டுள்ளது. சேவை இன்னும் இயங்குகிறது.
நோட்ரான்ஸ்0லேட்பாதுகாப்பானது. OS இலிருந்து பேட்டரி மேம்படுத்தல் விலக்குகளை நீங்கள் கோர முடியாது.
நோட்ரான்ஸ்0லேட் / நோட்ரான்ஸ்1லேட்ஜியோஃபென்ஸ்-மட்டுமே / குறிப்பிட்ட கால இடைவெளியில் மட்டுமே பயன்பாடுகளுக்கு பாதுகாப்பானது. அவற்றை அகற்றுவது தொடர்ச்சியான முன்புற கண்காணிப்பை (start()) முடக்குகிறது, ஆனால் நிலையான ஜியோஃபென்சிங் மற்றும் காலமுறை பயன்முறை தொடர்ந்து செயல்படும். தொடர்ச்சியான பின்னணி கண்காணிப்புக்கு தேவை.
நோட்ரான்ஸ்0லேட் / நோட்ரான்ஸ்1லேட்பாதுகாப்பானது. எந்த இருப்பிட அனுமதியும் இல்லாமல், ட்ரேஸ்லெட் பதவிகளைப் பெற முடியாது.

Google Play முன்-சேவைக் கொள்கை (அக். 28, 2026 முதல் அமலுக்கு வரும்). ஜியோஃபென்சிங் முன்புற சேவை இருப்பிடத்திற்கு இனி அனுமதிக்கப்படும் பயன்பாட்டு வழக்கு. உங்கள் பயன்பாடு ஒரு பயன்படுத்தினால் ஜியோஃபென்சிங்கிற்கு முன்புற சேவை மட்டும், நீங்கள் அகற்ற வேண்டும் நீங்கள் ஒன்றிணைத்ததிலிருந்து FOREGROUND_SERVICE_LOCATION (மற்றும் FOREGROUND_SERVICE). வெளிப்படையாக. ட்ரேஸ்லெட்டின் நிலையான ஜியோஃபென்ஸ் பயன்முறையானது சொந்த ஜியோஃபென்ஸ் API ஐப் பயன்படுத்துகிறது இல்லை முன்புற சேவையைத் தொடங்குங்கள், எனவே ஜியோஃபென்ஸ்-மட்டும் பயன்பாடுகள் இணக்கமாக இருக்கும் - வெறும் கீழே உள்ள அனுமதிகளை அகற்றி, foregroundService.enabled = false ஆக வைக்கவும். பார்க்கவும் ஜியோஃபென்சிங் வழிகாட்டி விவரங்களுக்கு.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- Geofence-only / periodic-only app: no continuous foreground tracking --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" tools:node="remove" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" tools:node="remove" /> </manifest>

எடுத்துக்காட்டு: இயக்கம் மற்றும் பின்னணி அனுமதிகளை அகற்றுதல்

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- Client doesn't want Activity/Motion tracking --> <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" tools:node="remove" /> <!-- Client only wants foreground tracking --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" tools:node="remove" /> <!-- Remove Exact Alarms --> <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" tools:node="remove" /> </manifest>

தானியங்கி ProGuard / R8 விதிகள்

ட்ரேஸ்லெட் பின்னணி கோட்லின் சேவைகள், ரஸ்ட் மையத்திற்கான JNA பிணைப்புகள் மற்றும் பிரதிபலிப்பு புறா சேனல்களை பெரிதும் பயன்படுத்துகிறது. இவை தெளிவற்றதாகவோ அல்லது தவறாகச் சுருக்கப்பட்டாலோ, உங்கள் ஆப்ஸ் வெளியீட்டிற்காக தொகுக்கப்படும்போது பின்னணி கண்காணிப்பு அமைதியாக தோல்வியடையும்.

ட்ரேஸ்லெட்டுக்காக நீங்கள் கைமுறையாக ProGuard ஐ உள்ளமைக்க வேண்டியதில்லை.

tracelet_android செருகுநிரல் தானாகவே உட்பொதிக்கப்பட்ட consumer-rules.pro உடன் அனுப்பப்படும். உங்கள் Flutter பயன்பாட்டை வெளியீட்டு பயன்முறையில் உருவாக்கும்போது, ​​Android இன் R8 சுருக்கி தானாகவே இந்த விதிகளைப் பிரித்தெடுத்து, தேவையான அனைத்து வகுப்புகளும் (HeadlessTaskService, BootReceiver மற்றும் ரஸ்ட் uniffi பிணைப்புகள் போன்றவை) சுருங்குவதை உறுதி செய்கிறது.


காட்சி 1: டெலிவரி டிரைவர் (தொடர்ச்சியான கண்காணிப்பு)

கருத்துகள் ஆராயப்பட்டன: டோஸ் மோட், முன்பக்கம் சேவைகள், வேக்லாக்ஸ்

பிரச்சனை

உங்கள் பயனர் பீட்சா டெலிவரி டிரைவர். திரையை அணைத்துவிட்டு போனை பாக்கெட்டில் வைத்தனர். 15 நிமிடங்களுக்குப் பிறகு, ஆண்ட்ராய்டு டோஸ் பயன்முறையில் நுழைகிறது. இது பிணைய அணுகலை நிறுத்துகிறது, பின்னணி வேலைகளை ஒத்திவைக்கிறது மற்றும் பேட்டரியைச் சேமிக்க CPU விழிப்பூட்டல்களை கடுமையாகக் கட்டுப்படுத்துகிறது. உங்கள் ஆப்ஸ் ஜிபிஎஸ் பெற எளிய டைமரை நம்பியிருந்தால், உங்கள் டைமரை இயக்க ஆண்ட்ராய்ட் வெறுமனே மறுக்கும்.

ட்ரேஸ்லெட் அதை எவ்வாறு தீர்க்கிறது: முன்புற சேவை

முன்புறச் சேவையானது ஆண்ட்ராய்டிடம் கூறுகிறது: “ஏய், நான் இப்போது நம்பமுடியாத முக்கியமான ஒன்றைச் செய்கிறேன், அதைப் பயனர் முழுமையாக அறிந்திருக்கிறார். என்னைக் கொல்லாதே.”

android: tl.AndroidConfig( foregroundService: tl.ForegroundServiceConfig( enabled: true, channelName: 'Delivery Tracking', notificationText: 'Tracking your route to the customer', notificationOngoing: true, // User cannot swipe it away showNotificationOnPauseOnly: false, // Auto-hides when app is open actions: ['Pause', 'Complete'], // Adds interactive buttons to the notification ), )

நிலைப் பட்டியில் நிலையான அறிவிப்பைக் காண்பிப்பதன் மூலம், ட்ரேஸ்லெட் உங்கள் பயன்பாட்டின் முன்னுரிமையை கிட்டத்தட்ட முன்புற UI இன் நிலைக்கு உயர்த்துகிறது. டோஸ் பயன்முறை கட்டுப்பாடுகளைத் தவிர்த்து, ட்ரேஸ்லெட்டை காலவரையின்றி இயக்க Android அனுமதிக்கும்.

அறிவிப்பு தோற்றத்தைத் தனிப்பயனாக்குதல்

உங்கள் பயன்பாட்டின் பிராண்டிங்குடன் நிலையான அறிவிப்பைப் பொருத்த, நீங்கள் ஐகான்களையும் வண்ணங்களையும் தனிப்பயனாக்கலாம்:

android: tl.AndroidConfig( foregroundService: tl.ForegroundServiceConfig( enabled: true, notificationTitle: 'Delivery Mode', notificationText: 'Tracking your route...', notificationColor: '#0F9D58', // Your brand hex color notificationSmallIcon: 'ic_tracelet_icon', // The icon name notificationLargeIcon: 'ic_large_logo', ), )

முக்கியமான ஐகான் விதிகள்:

  1. கோப்பு இருப்பிடம்: உங்கள் ஆண்ட்ராய்டு திட்டத்தின் வரையக்கூடிய கோப்புறையில் (android/app/src/main/res/drawable/ic_tracelet_icon.png) படக் கோப்பு வைக்கப்பட வேண்டும்.
  2. சிறிய ஐகான் கட்டுப்பாடுகள்: Android க்கு notificationSmallIcon முற்றிலும் தட்டையாகவும், வெளிப்படையானதாகவும், வெள்ளைக்கு மட்டும் இருக்க வேண்டும். நீங்கள் வண்ண லோகோவைப் பயன்படுத்தினால், Android அதை ஒரு திட சாம்பல் அல்லது வெள்ளை சதுரமாக வழங்கும்.
  3. வண்ணச் சொத்து: notificationColor சொத்து உங்கள் சிறிய ஐகானின் பின்புலத்தை உங்கள் பிராண்டுடன் பொருந்துமாறு மாற்றும்.
🔔

Android 13+ குறிப்பு: சேவையைத் தொடங்குவதற்கு முன் நீங்கள் POST_NOTIFICATIONS அனுமதியைக் கோர வேண்டும், இல்லையெனில் அறிவிப்பு அமைதியாக OS ஆல் அடக்கப்படும். உங்கள் டார்ட் குறியீட்டிலிருந்து இதை எப்படிக் கோருவது என்பதற்கு Flutter SDK: Permissions பக்கத்தைப் பார்க்கவும்.

கண்காணிக்கும் போது அறிவிப்பைப் புதுப்பித்தல் (updateNotification())

கண்காணிப்பு ஏற்கனவே தொடங்கிய பிறகு *அறிவிப்பை மாற்ற வேண்டும் - எ.கா. தலைப்பை “வழியில்” என்பதிலிருந்து “வருகிறது” எனப் புதுப்பிக்கவா, உரையை மாற்றவா அல்லது பயணத்தின் நடுப்பகுதியில் செயல் பட்டன்களை மாற்றவா? புதிய ForegroundServiceConfig உடன் setConfig() ஐ அழைப்பது மதிப்புகள் தொடரும், ஆனால் அறிவிப்பு மட்டும் மாற்றம் ஆண்ட்ராய்டு ஏற்கனவே காட்டும் அறிவிப்பை மறுபதிவு செய்யாது - புதிய உள்ளடக்கம் தொடர்பில்லாத சேவை மறுதொடக்கம் அல்லது முன்புற மாற்றத்திற்குப் பிறகு மட்டுமே தோன்றும்.

v3.6.8 என்பதால், Tracelet.updateNotification() நேரலை அறிவிப்பைப் புதுப்பிக்கிறது, டிராக்கிங் பைப்லைனை மறுதொடக்கம் செய்யாமல்:

// 1. Apply the new notification content. await Tracelet.setConfig( const tl.Config( android: tl.AndroidConfig( foregroundService: tl.ForegroundServiceConfig( notificationTitle: 'Arriving', notificationText: 'Your driver is 2 minutes away', ), ), ), ); // 2. Repost the active notification with the new content. await Tracelet.updateNotification();

வடிவமைப்பால் பாதுகாப்பானது. updateNotification() ஒருபோதும் கண்காணிப்பை மறுதொடக்கம் செய்யாது, மேலும் முன்புற சேவை தற்போது இயங்காதபோது (புதுப்பிக்க எதுவும் இல்லை) iOS இல் அது இயங்கும் நேரடி செயல்பாடு ஐப் புதுப்பிக்கிறது (நீங்கள் liveActivityConfig வழியாக ஒன்றைத் தேர்வுசெய்தபோது); இணையத்தில் இது ஒரு நோ-ஆப் - எனவே ஒவ்வொரு தளத்திலும் ஒரே அழைப்பு பாதுகாப்பானது.


காட்சி 2: வானிலை பயன்பாடு (கால கண்காணிப்பு)

கருத்துகள் ஆராயப்பட்டன: WorkManager vs. சரியான அலாரங்கள்

பிரச்சனை

உங்கள் உள்ளூர் வானிலை பயன்பாட்டை உங்கள் பயனர் பதிவிறக்கம் செய்துள்ளார். ஒவ்வொரு 4 மணிநேரத்திற்கும் ஒருமுறை பின்னணியில் எழுந்து, அவர்களின் இருப்பிடத்தைப் பெற்று, உள்ளூர் முன்னறிவிப்பைப் பதிவிறக்கவும்.

நீங்கள் தொடர்ந்து முன்னோடி சேவை அறிவிப்பை விரும்பவில்லை. பயனர் தனது டிராயரில் நிரந்தர “வானிலை கண்காணிப்பு” அறிவிப்பைப் பார்ப்பதை வெறுப்பார்.

ட்ரேஸ்லெட் அதை எவ்வாறு தீர்க்கிறது: காலமுறை பயன்முறை

தொடர்ச்சியான சேவைக்குப் பதிலாக, ட்ரேஸ்லெட் ஆண்ட்ராய்டின் வேலை அட்டவணையைப் பயன்படுத்தி சுருக்கமாக எழுந்திருக்கவும், சரிசெய்யவும், மீண்டும் தூங்கவும் முடியும்.

android: tl.AndroidConfig( periodicUseForegroundService: false, periodicUseExactAlarms: true, // Uses AlarmManager instead of WorkManager )

இரண்டு திட்டமிடுபவர்கள்

  1. பணி மேலாளர் (periodicUseExactAlarms: false) இயல்புநிலை. இது மிகவும் பேட்டரி நட்பு. இருப்பினும், அதை எப்போது இயக்க வேண்டும் என்பதை ஆண்ட்ராய்டு தீர்மானிக்கிறது. ஒவ்வொரு 15 நிமிடங்களுக்கும் அதை இயக்கச் சொன்னால், ஆண்ட்ராய்டு 45 நிமிடங்கள் காத்திருந்து, இன்ஸ்டாகிராமைச் சரிபார்க்க (“பேட்சிங்” என்று அழைக்கப்படுகிறது) பயனர் தனது மொபைலைத் திறக்கும்போது அதை இயக்கலாம். இது மிகவும் துல்லியமற்றது.

  2. அலாரம் மேலாளர் (periodicUseExactAlarms: true) ஒரு குறிப்பிட்ட நேரத்தில் சாதனத்தை நீங்கள் கண்டிப்பாக எழுப்ப வேண்டும் என்றால், இதைப் பயன்படுத்தவும். உங்கள் android/app/src/main/AndroidManifest.xml இல் SCHEDULE_EXACT_ALARM அனுமதியை அறிவிக்க வேண்டும்:

    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

குறிப்பு: இந்த அனுமதியை Google Play கண்டிப்பாக மதிப்பாய்வு செய்கிறது. உங்கள் ஆப்ஸ் அலாரம் கடிகாரமாகவோ, காலெண்டராகவோ அல்லது சரியான நேரம் தேவைப்பட்டாலோ மட்டுமே அதைப் பயன்படுத்தவும்.


காட்சி 3: OEM ஆக்கிரமிப்பு

கருத்துகள் ஆராயப்பட்டன: அமைப்புகள் ஹெல்த் ஏபிஐ

பிரச்சனை

நீங்கள் எல்லாவற்றையும் சரியாகச் செய்தீர்கள். உங்களிடம் முன்புற சேவை உள்ளது. ஆனால் பயனர் ஒரு Xiaomi தொலைபேசியை வைத்திருக்கிறார். MIUI ஆனது ஒரு தனியுரிம “பேட்டரி சேவர்” உள்ளது, இது 5 நிமிட ஸ்கிரீன்-ஆஃப் நேரத்திற்குப் பிறகு முன்புற சேவைகளைக் கூட பலவந்தமாகக் கொல்லும்.

ட்ரேஸ்லெட் அதை எவ்வாறு தீர்க்கிறது: தானியங்கு-தணிப்பு மற்றும் தூண்டுதல்கள்

சாத்தியமான இடங்களில் ட்ரேஸ்லெட் தானாகவே உள் குறைப்புகளைப் பயன்படுத்துகிறது, ஆனால் சில நேரங்களில் பயனர் உங்கள் பயன்பாட்டை OEM இன் தனியுரிம அமைப்புகள் மெனுவில் அனுமதிக்க வேண்டும்.

final health = await tl.Tracelet.getSettingsHealth(); if (health['isAggressiveOem'] == true) { // Automatically opens the manufacturer-specific settings screen // (e.g. Xiaomi Autostart, Huawei App Launch, Samsung Sleeping Apps) await tl.Tracelet.showPowerManager(); }

உங்கள் Flutter UI இல் இதை எவ்வாறு செயல்படுத்துவது என்பதற்கான விரிவான உதாரணத்திற்கு, கண்டறியும் கருவிகள் மற்றும் ஆற்றல் மேலாண்மை பக்கத்தைப் பார்க்கவும்.

Last updated on