OEM சக்தி மேலாண்மை
ஆக்கிரமிப்பு பேட்டரி சேமிப்பவர்களைக் கட்டுப்படுத்துதல்
நீங்கள் எல்லாவற்றையும் சரியாக உள்ளமைத்து, POST_NOTIFICATIONS மூலம் முன்புற சேவையைக் கோரினாலும், சில ஆண்ட்ராய்டு உற்பத்தியாளர்கள் (OEMகள்) தனியுரிம, அதிக ஆக்ரோஷமான “பேட்டரி சேவர்” இன்ஜின்களை தங்கள் தனிப்பயன் ஆண்ட்ராய்டு ஃபோர்க்குகளில் (MIUI, EMUI, ColorOS போன்றவை) உருவாக்கியுள்ளனர்.
நிலையான Android API விதிகளைப் பொருட்படுத்தாமல், சில நிமிட ஸ்கிரீன் ஆஃப் நேரத்திற்குப் பிறகு, இந்த ஆக்ரோஷமான டாஸ்க் கில்லர்கள் உங்கள் பயன்பாட்டை நிறுத்தும். ட்ரேஸ்லெட்டின் அமைப்புகள் ஹெல்த் ஏபிஐ இந்தச் சாதனங்களைக் கண்டறிவதற்கான விரிவான தொகுப்பை வழங்குகிறது மற்றும் உங்கள் பயன்பாட்டை ஏற்புப்பட்டியலுக்குப் பயனரைத் தானாகவே சரியான மறைக்கப்பட்ட அமைப்புகள் மெனுவுக்குச் செல்லும்.
ஆதரிக்கப்படும் உற்பத்தியாளர்கள் & நடத்தைகள்
ட்ரேஸ்லெட் 100+ OEM-குறிப்பிட்ட உள்நோக்க அமைப்புகளின் உள் பதிவேட்டைப் பராமரிக்கிறது. நீங்கள் Tracelet.showPowerManager() ஐ அழைக்கும் போது, இயந்திரம் தானாகவே சாதனத்தின் பிராண்டைக் கண்டறிந்து சரியான ஆழமான இணைப்பைச் செயல்படுத்துகிறது.
நாங்கள் ஆதரிக்கும் முதன்மை OEMகள் மற்றும் showPowerManager() என்ன திறக்கிறது:
📱 Xiaomi / POCO / Redmi (MIUI / HyperOS)
- பிரச்சனை: MIUI இல் ஒரு மோசமான கண்டிப்பான “ஆட்டோஸ்டார்ட்” மேலாளர் மற்றும் 5 நிமிட தூக்கத்திற்குப் பிறகு பின்னணி சேவைகளை அழிக்கும் “பேட்டரி சேவர்” உள்ளது.
- என்ன ட்ரேஸ்லெட் திறக்கிறது:
- மறைக்கப்பட்ட ஆட்டோஸ்டார்ட் மெனு (பயனர் உங்கள் பயன்பாட்டை இயக்க வேண்டும்).
- குறிப்பிட்ட ஆப் பேட்டரி சேவர் மெனு (பயனர் “கட்டுப்பாடுகள் இல்லை” என்பதைத் தேர்ந்தெடுக்க வேண்டும்).
📱 Huawei / Honor (EMUI)
- சிக்கல்: EMUI இன் “ஆப் லாஞ்ச்” மேலாளர் ஆப்ஸை கைமுறையாக நிர்வகிப்பதற்கு வெளிப்படையாக அமைக்கப்படாவிட்டால், அவற்றை அழித்துவிடும்.
- என்ன ட்ரேஸ்லெட் திறக்கிறது: ஆப் லாஞ்ச் அமைப்புகள் திரை. பயனர் உங்கள் பயன்பாட்டைத் தேர்வுசெய்து, “தானாகத் தொடங்குதல்”, “இரண்டாம் நிலை வெளியீடு” மற்றும் “பின்னணியில் இயக்குதல்” ஆகிய அனைத்தும் இயக்கப்பட்டிருப்பதை உறுதிசெய்ய வேண்டும்.
📱 சாம்சங் (OneUI)
- சிக்கல்: சாம்சங் அதன் “ஆழ்ந்த உறக்க பயன்பாடுகள்” பட்டியலில் பயன்பாடுகளை தீவிரமாகச் சேர்க்கிறது, அவை சில நாட்களில் திறக்கப்படாவிட்டால், எல்லா பின்னணி செயல்பாட்டினையும் நிரந்தரமாகத் துண்டித்துவிடும்.
- என்ன ட்ரேஸ்லெட் திறக்கிறது: கண்காணிக்கப்படாத / எப்போதும் தூங்காத ஆப்ஸ் மெனு, உங்கள் பயன்பாட்டை நிரந்தர அனுமதிப்பட்டியலில் சேர்க்க பயனரை அனுமதிக்கிறது.
📱 OnePlus / Oppo (OxygenOS / ColorOS)
- சிக்கல்: பின்னணி பணிகளை தானாக மேம்படுத்தும் ஆக்கிரமிப்பு “ஆப் பேட்டரி மேலாண்மை”.
- என்ன ட்ரேஸ்லெட் திறக்கிறது: ஆப்ஸ் ஆட்டோ-லான்ச் மற்றும் பேட்டரி ஆப்டிமைசேஷன் திரைகள்.
📱 Vivo (Funtouch OS)
- சிக்கல்: பின்புலத்தில் அதிக சக்தியைப் பயன்படுத்துவதிலிருந்து பயன்பாடுகளைத் தடுக்கிறது.
- என்ன ட்ரேஸ்லெட் திறக்கிறது: அதிக பின்னணி ஆற்றல் நுகர்வு அனுமதிப்பட்டியல் மெனு.
🌐 பிற சாதனங்கள் & DontKillMyApp
டிரேஸ்லெட்டின் டீப்-லிங்க் இன்ஜின் மூலம் வெளிப்படையாகக் குறிப்பிடப்படாத சாதனங்களுக்கு, அல்லது குறிப்பிட்ட உற்பத்தியாளர்களால் விதிக்கப்பட்டுள்ள தொழில்நுட்பக் கட்டுப்பாடுகளை நீங்கள் புரிந்து கொள்ள விரும்பினால், **DontKillMyApp.com **ஐப் பார்க்க பரிந்துரைக்கிறோம். இது ஒரு நம்பமுடியாத சமூகத்தால் இயங்கும் ஆதாரமாகும், இது ஸ்மார்ட்ஃபோன்களை அவற்றின் பின்னணி பணியின் தீவிரத்தன்மையின் மூலம் தரவரிசைப்படுத்துகிறது மற்றும் கிட்டத்தட்ட ஒவ்வொரு Android சாதனத்திற்கும் கைமுறையான உள்ளமைவு படிகளை வழங்குகிறது.
தணிப்பு ஓட்டத்தை செயல்படுத்துதல்
உங்கள் ஆப்ஸ் ஆன்போர்டிங் ஃப்ளோவின் போது அல்லது பிரதான டாஷ்போர்டில் இந்தச் சரிபார்ப்பை இயக்க வேண்டும்:
import 'package:tracelet/tracelet.dart' as tl;
// 1. Check the device health
// Returns a Map<String, dynamic> containing the boolean flags
final health = await tl.Tracelet.getSettingsHealth();
// 2. Check if the device is a known aggressive OEM
if (health['isAggressiveOem'] == true) {
// 3. Check if the user has already whitelisted your app
if (health['isIgnoringBatteryOptimizations'] == false) {
// 4. Show a custom Flutter dialog explaining WHY they need to do this
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text("Background Tracking Required"),
content: Text("To ensure your route is recorded, please select 'No Restrictions' on the next screen."),
actions: [
TextButton(
onPressed: () async {
Navigator.pop(context);
// 5. Open the specific manufacturer's hidden power menu
// Returns true if the intent successfully launched the screen, false otherwise.
final success = await tl.Tracelet.showPowerManager();
if (!success) {
// Fallback: Open standard Android battery settings
await tl.Tracelet.openBatterySettings();
}
},
child: Text("Configure"),
)
]
)
);
}
}UX சிறந்த நடைமுறை: showPowerManager() ஐ தற்செயலாக அல்லது உடனடியாக ஆப்ஸ் தொடங்கும் போது அழைக்க வேண்டாம். எப்பொழுதும் மிகவும் சூழல்சார்ந்த Flutter UI உரையாடலுடன் அதற்கு முன்செலுத்தவும். சூழல் இல்லாமல் பயமுறுத்தும் “பேட்டரி ஆப்டிமைசேஷன்” சிஸ்டம் திரைக்கு பயனர் திடீரென டெலிபோர்ட் செய்யப்பட்டால், அவர்கள் பீதியடைந்து உங்கள் பயன்பாட்டை நிறுவல் நீக்கிவிடுவார்கள்.
நிகழ்நேர இயக்கி / கடற்படை கண்காணிப்பு நம்பகத்தன்மை
டாக்ஸி, டெலிவரி மற்றும் ஃப்ளீட் ஆப்ஸை உருவாக்கும் குழுக்களின் மிகவும் பொதுவான கேள்வி: “Xiaomi, Poco, Infinix, Tecno மற்றும் பிற ஆக்ரோஷமான OEMகளில் ட்ரேஸ்லெட் நாள் முழுவதும் கண்காணிக்க முடியுமா?” நேர்மையான, நடைமுறை பதில் இதோ.
என்ன டிரேஸ்லெட் தானாகவே கையாளுகிறது
இந்தக் குறைப்புக்கள் உங்களுக்காகப் பயன்படுத்தப்படுகின்றன - கட்டமைப்பு தேவையில்லை:
FOREGROUND_SERVICE_TYPE_LOCATIONஉடன் முன்புற சேவை — மிக உயர்ந்த பின்னணி முன்னுரிமை Android மானியங்கள்.START_STICKY- நினைவக அழுத்தம் கொல்லப்பட்ட பிறகு OS சேவையை மீண்டும் உருவாக்குகிறது.- OEM-பாதுகாப்பான வேக்லாக்ஸ் - Huawei இல், PowerGenie ஆல் அனுமதிக்கப்படும் வேக்லாக் குறிச்சொல், எனவே “தெரியாத” வேக்லாக் வைத்திருப்பதற்காக செயல்முறை அழிக்கப்படாது.
- பூட்-ரிசீவர் வேக்லாக் -
BOOT_COMPLETEDஇன் போது ஒரு குறுகிய வேக்லாக், எனவே மறுதொடக்கத்திற்குப் பிறகு முன்புற சேவை நிறுவப்படும் வரை செயல்முறை நீடிக்கும். - Consumer ProGuard/R8 விதிகள் — அகற்றும் சேவைகள், பெறுநர்கள் மற்றும் அறை நிறுவனங்களிலிருந்து உருவாக்கங்களை வெளியிடுவதைத் தடுக்கிறது.
தவிர்க்க முடியாத கையேடு படி
எந்தப் பின்னணி-இருப்பிட நூலகமும் பயனர் பயன்பாட்டை ஏற்புப் பட்டியலில் சேர்க்காமல் OEM கொலையை மேலெழுத முடியாது. MIUI, EMUI, ColorOS, HiOS/XOS மற்றும் ஒத்த ROMகள் நிலையான Android விதிகளை வேண்டுமென்றே புறக்கணிக்கின்றன. இந்தச் சாதனங்களில், பேட்டரி-ஆப்டிமைசேஷன் விலக்கு + ஆட்டோஸ்டார்ட் என்பது நாள் முழுவதும் நம்பகத்தன்மைக்கு கடினமான தேவைகள் — அவற்றை தேவையான ஆன்போர்டிங் படிகளாகக் கருதுங்கள், விருப்பமான கூடுதல் அல்ல.
விலக்கு மீது ஓட்டுநரின் ஷிப்ட் தொடங்கும் வாயில்:
final ignoring = await tl.Tracelet.isIgnoringBatteryOptimizations();
final health = await tl.Tracelet.getSettingsHealth();
if (health['isAggressiveOem'] == true && !ignoring) {
// Walk the user through showPowerManager() + battery-optimization exemption
// BEFORE letting them go "on shift".
}கண்காணிப்பை OEM த்ரோட்டில் செய்ததா அல்லது அழித்தபோது கண்டறிதல்
Tracelet.getHealth()— ஒரு அழைப்பு கண்காணிப்பு நிலை, வழங்குநரின் நிலை, அனுமதி/அங்கீகாரம், ஆற்றல் சேமிப்பு முறை, பேட்டரி-உகப்பாக்கம் விலக்கு மற்றும் நிலுவையில் உள்ள ஒத்திசைக்கப்படாத எண்ணிக்கை, தானாக கண்டறியப்பட்ட எச்சரிக்கைகளுடன் திரும்பும். “டிவைஸ் ஹெல்த்” டாஷ்போர்டிற்கு ஏற்றது.onProviderChangeநிகழ்வுகள் — இருப்பிட சேவைகள் / GPS நிலை மாறும்போது தீ.- பின்னணி ஸ்டேலனஸ் கண்காணிப்பு - ஒவ்வொரு ஃபிக்ஸும் நேர முத்திரை மற்றும் தொடர்ந்து இருக்கும், எனவே ஒவ்வொரு சாதனத்தின் கடைசி ஃபிக்ஸ் நேரத்தை உங்கள் சர்வரில் எதிர்பார்க்கும் கேடன்ஸுடன் ஒப்பிட்டு, சில நிமிடங்களில் ஸ்ட்ரீம் அமைதியாகிவிட்ட சாதனத்தைக் கொடியிடவும் (OEM கொலையின் உன்னதமான கையொப்பம்).
நாள் முழுவதும் கண்காணிப்பதற்கான பரிந்துரைக்கப்பட்ட அமைவு சரிபார்ப்புப் பட்டியல்
- தெளிவான பகுத்தறிவு ஓட்டத்துடன்
Always/ பின்னணி இருப்பிடம் அனுமதியைக் கோரவும். - நடப்பு அறிவிப்பைக் கொண்டு முன்புற சேவையை இயக்கவும் — தொடர்ச்சியான கண்காணிப்புக்கு பேச்சுவார்த்தை நடத்த முடியாது.
stopOnTerminate: falseமற்றும்startOnBoot: trueஎன அமைக்கவும், அதனால் கண்காணிப்பு ஆப்ஸை மூடிவிட்டு மறுதொடக்கம் செய்யும்.- போர்டிங் செய்யும் போது,
getSettingsHealth()ஐ அழைக்கவும்;isAggressiveOemஉண்மையாக இருந்தால்,showPowerManager()மற்றும் பேட்டரி-ஆப்டிமைசேஷன் விலக்கு மூலம் பயனரை நடத்தவும்.isIgnoringBatteryOptimizations()இல் கேட் ஷிப்ட்-தொடக்கம். - HTTP ஒத்திசைவைப் பயன்படுத்தவும் (தொகுக்கப்பட்ட பதிவேற்றங்கள்) எனவே சுருக்கமான பிணைய இடைவெளிகள் ஒருபோதும் தரவை இழக்காது.
- ஒரு *பின்னணி ஸ்டேலனஸ் வாட்ச்டாக்கைச் சேர்
- மறைக்கப்பட்ட ஆதரவுத் திரையில்
tracelet_doctor(அல்லதுgetHealth()) ஐ அனுப்பவும், எனவே புல சிக்கல்களை உண்மையான சாதனங்களில் கண்டறிய முடியும்.
பின்னணி நம்பகத்தன்மை என்பது சாதனம் மற்றும் ROM-பதிப்பு சார்ந்தது என்பதால், மிகவும் நம்பகமான “கேஸ் ஸ்டடி” என்பது உங்கள் உண்மையான இலக்கு சாதன கலவையில் ஒரு நாளுக்கு எடுத்துக்காட்டு பயன்பாடு + tracelet_doctor ஐ இயக்குகிறது - இது எந்தவொரு போர்வை உரிமைகோரலை விடவும் நிஜ உலக நடத்தையைப் பிரதிபலிக்கிறது.