ஜியோஃபென்சிங் ஏபிஐ
ட்ரேஸ்லெட் ஒரு வலுவான, ஆஃப்லைன்-முதல் ஜியோஃபென்சிங் இயந்திரத்தை வழங்குகிறது. 20-100 ஜியோஃபென்ஸுக்கு மட்டுப்படுத்தப்பட்ட நிலையான OS ஜியோஃபென்சிங் போலல்லாமல், உங்கள் பயன்பாட்டை இயக்க OS தேவைப்படுகிறது, ட்ரேஸ்லெட் ரஸ்ட் எஞ்சினுக்குள் ஜியோஃபென்ஸை மதிப்பீடு செய்கிறது. இது பூஜ்ஜிய கூடுதல் பேட்டரி வடிகால் வரம்பற்ற ஜியோஃபென்ஸ்களை செயல்படுத்துகிறது.
1. சுற்றறிக்கை vs பலகோண ஜியோஃபென்ஸ்கள்
ட்ரேஸ்லெட் நிலையான வட்ட ஜியோஃபென்ஸ்கள் மற்றும் சிக்கலான பலகோண ஜியோஃபென்ஸ்கள் இரண்டையும் ஆதரிக்கிறது.
வட்ட ஜியோஃபென்ஸ்கள்
ஒரு வட்ட ஜியோஃபென்ஸ் ஒரு மைய ஒருங்கிணைப்பு மற்றும் ஒரு ஆரம் (மீட்டரில்) மூலம் வரையறுக்கப்படுகிறது.
final circular = tl.Geofence(
identifier: 'headquarters',
latitude: 37.7749,
longitude: -122.4194,
radius: 200, // 200 meters
notifyOnEntry: true,
notifyOnExit: true,
notifyOnDwell: true, // Triggers if they stay inside
loiteringDelay: 300, // Trigger dwell after 5 minutes
);பலகோண ஜியோஃபென்ஸ்கள்
பலகோண ஜியோஃபென்ஸ் என்பது ஒரு சிக்கலான வடிவத்தை (பூங்கா அல்லது கட்டிடம் போன்றவை) கோடிட்டுக் காட்டும் ஒருங்கிணைப்புகளின் வரிசையால் வரையறுக்கப்படுகிறது.
final polygon = tl.Geofence.polygon(
identifier: 'golden_gate_park',
vertices: [
tl.Coordinate(latitude: 37.773972, longitude: -122.431297),
tl.Coordinate(latitude: 37.769996, longitude: -122.511055),
tl.Coordinate(latitude: 37.764516, longitude: -122.508566),
],
notifyOnEntry: true,
notifyOnExit: true,
);2. ஜியோஃபென்ஸைச் சேர்த்தல் மற்றும் நீக்குதல்
ட்ரேஸ்லெட் அனைத்து ஜியோஃபென்ஸையும் உள்ளூர் SQLite தரவுத்தளத்தில் சேமிக்கிறது. ஆப்ஸ் மறுதொடக்கம் முழுவதும் அவை நிலையாக இருக்கும் என்பதே இதன் பொருள். ஒவ்வொரு முறை ஆப்ஸ் தொடங்கும் போதும் அவற்றை மீண்டும் சேர்க்க வேண்டியதில்லை.
ஜியோஃபென்ஸைச் சேர்த்தல்
நீங்கள் ஒரு ஜியோஃபென்ஸ் அல்லது ஜியோஃபென்ஸின் வரிசையைச் சேர்க்கலாம்.
// Add a single geofence
await tl.Tracelet.addGeofence(circular);
// Add multiple geofences efficiently
await tl.Tracelet.addGeofences([circular, polygon]);ஜியோஃபென்ஸ்களை அகற்றுதல்
அவற்றின் தனித்துவமான அடையாளங்காட்டி மூலம் அவற்றை அகற்றவும் அல்லது முழு தரவுத்தளத்தையும் அழிக்கவும்.
// Remove a specific geofence
await tl.Tracelet.removeGeofence('headquarters');
// Remove all geofences entirely
await tl.Tracelet.removeGeofences();3. ஆக்டிவ் ஜியோஃபென்ஸ்களை பட்டியலிடுதல்
எந்தெந்த ஜியோஃபென்ஸ்கள் தற்போது கண்காணிக்கப்படுகின்றன என்பதைக் காண நீங்கள் எந்த நேரத்திலும் SQLite தரவுத்தளத்தை வினவலாம்.
final geofences = await tl.Tracelet.getGeofences();
for (final fence in geofences) {
print('Monitoring: \${fence.identifier}');
}4. ஜியோஃபென்ஸ் நிகழ்வுகளைக் கேட்பது
பயனர் ஜியோஃபென்ஸ் எல்லையை கடக்கும்போது, ட்ரேஸ்லெட் onGeofence நிகழ்வை இயக்குகிறது. இருப்பிடப் புதுப்பிப்புகளின் போது ரஸ்ட் மையத்தில் மதிப்பீடு நடப்பதால், பயன்பாடு அழிக்கப்பட்டாலும் இந்த நிகழ்வுகள் செயல்படும் (உங்கள் தலையில்லாத அழைப்பைத் தூண்டும்).
tl.Tracelet.onGeofence((evt) {
if (evt.action == tl.GeofenceEventAction.ENTER) {
print('User entered: \${evt.identifier}');
} else if (evt.action == tl.GeofenceEventAction.EXIT) {
print('User exited: \${evt.identifier}');
} else if (evt.action == tl.GeofenceEventAction.DWELL) {
print('User is dwelling inside: \${evt.identifier}');
}
});5. Android: முன்புற சேவை & Google Play கொள்கை
Google Play கொள்கை மாற்றம் — அக்டோபர் 28, 2026 முதல் அமலுக்கு வரும். ஜியோஃபென்சிங் இல்லை
முன்புற சேவை இருப்பிடத்திற்கான அனுமதிக்கப்பட்ட பயன்பாட்டு வழக்கு. பயன்படுத்தும் பயன்பாடுகள் a
ஜியோஃபென்சிங்கிற்கான முன்புற சேவை மட்டும் அகற்றப்பட வேண்டும்
FOREGROUND_SERVICE_LOCATION (மற்றும் FOREGROUND_SERVICE, இல்லையெனில் பயன்படுத்தப்படாவிட்டால்)
ஒன்றிணைக்கப்பட்ட மேனிஃபெஸ்ட்டிலிருந்து அனுமதிகள்.
ட்ரேஸ்லெட்டின் தரநிலை ஜியோஃபென்ஸ் பயன்முறையானது சொந்த ஆண்ட்ராய்டு ஜியோஃபென்ஸ் API ஐப் பயன்படுத்துகிறது
(GeofencingClient), இது ENTER/ExIT ஐச் செயல்படுத்துகிறது - மேலும் உங்கள் பயன்பாட்டை மீண்டும் தொடங்கும்
ஹெட்லெஸ் டாஸ்க் - ஆப்ஸ் இடைநிறுத்தப்படும் அல்லது நிறுத்தப்படும் போது, இல்லாத a
முன்புற சேவை. நிலையான பயன்முறையில் startGeofences() ஐ அழைப்பது இல்லை தொடங்கும்
ஒரு முன்புற சேவை (3.5.x இன் படி), எனவே இது இயல்பாகவே இணக்கமாக இருக்கும்.
ஆக்ரோஷமான OEMகள் (Samsung/Xiaomi/Huawei/OnePlus/Oppo/Vivo): 3.6.1 இன் படி,
ஒவ்வொரு சாதனத்திலும் ஒரு வெளிப்படையான geofenceModeHighAccuracy: false மதிக்கப்படுகிறது. முன்பு
3.6.1 இந்த OEMகள் அமைதியாக கட்டாயப்படுத்தப்பட்ட உயர் துல்லியம் பயன்முறை - மற்றும் அதனுடன்
முன்புற சேவை மற்றும் அதன் நிலையான அறிவிப்பு — நீங்கள் false ஐ அமைத்தாலும் கூட,
மேலே உள்ள இணக்கமான நிலையான-முறை பாதையை உடைத்தது. இந்த சாதனங்களை நீங்கள் குறிவைத்தால்,
3.6.1 அல்லது அதற்குப் பிறகு பயன்படுத்தவும். ஆக்கிரமிப்பு OEM இல் SDK இப்போது நம்பகத்தன்மை எச்சரிக்கையை பதிவு செய்கிறது
(நேட்டிவ் ஜியோஃபென்ஸ் டெலிவரி அங்கு தாமதமாகலாம்) உங்கள் கட்டமைப்பை மீறுவதற்குப் பதிலாக.
ஜியோஃபென்சிங்கிற்கு மட்டுமே டிரேஸ்லெட்டைப் பயன்படுத்தினால்
-
முன்புற சேவையை வேண்டாம் இயக்கவும்:
await tl.Tracelet.ready(const tl.Config( android: tl.AndroidConfig( foregroundService: tl.ForegroundServiceConfig(enabled: false), ), geofence: tl.GeofenceConfig(geofenceModeHighAccuracy: false), )); await tl.Tracelet.startGeofences(); -
டிரேஸ்லெட் SDK
FOREGROUND_SERVICE/FOREGROUND_SERVICE_LOCATIONஎன அறிவிக்கிறது அதன் தொடர்ச்சியான-கண்காணிப்பு பயன்பாட்டு வழக்குக்காக. உங்கள் பயன்பாடு ஒருபோதும் தொடர்ந்து செயல்படவில்லை என்றால் கண்காணிப்பு, மேனிஃபெஸ்ட்-இணைப்புடன் இணைக்கப்பட்ட மேனிஃபெஸ்ட்டில் இருந்து அவற்றை அகற்றவும் உங்கள் பயன்பாட்டின்android/app/src/main/AndroidManifest.xmlஇல்removeவிதி:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" tools:node="remove" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" tools:node="remove" /> </manifest>
நீங்கள் தொடர்ச்சியான கண்காணிப்பு மற்றும் ஜியோஃபென்சிங்கைப் பயன்படுத்தினால்
கண்காணிப்பு உபயோகத்திற்காக நீங்கள் FOREGROUND_SERVICE_LOCATION ஐ வைத்திருக்கலாம் (எ.கா.
வழிசெலுத்தல்/கப்பற்படை கண்காணிப்பு), ஆனால் முன்புற சேவையைப் பயன்படுத்தக்கூடாது
ஜியோஃபென்சிங். ட்ரேஸ்லெட் ஏற்கனவே இதைக் கையாளுகிறது: FGS தொடர்ச்சியான கண்காணிப்புக்காக இயங்குகிறது
(start()), மற்றும் ஜியோஃபென்ஸ்-மட்டும் பயன்முறைக்கு மாறுதல் (தரநிலையில் startGeofences()
பயன்முறை) FGS ஐ கிழித்துவிடும்.
உயர் துல்லியமான ஜியோஃபென்ஸ் பயன்முறை (geofenceModeHighAccuracy: true) பயன்படுத்துகிறது
இறுக்கமான, பயன்பாட்டு எல்லைக் கண்டறிதலுக்கான தொடர்ச்சியான ஜி.பி.எஸ். இது இயக்கும் a
முன்புற சேவை. அது தொடர்ச்சியான இடம் — கொள்கையில் “ஜியோஃபென்சிங்” அல்ல
உணர்வு — எனவே உங்கள் பயன்பாட்டிற்கு தனி அனுமதிக்கப்பட்ட இருப்பிடப் பயன்பாடு இருக்கும்போது மட்டுமே அதை இயக்கவும்
வழக்கு. பெரும்பாலான பயன்பாடுகளுக்கு, நிலையான பயன்முறையானது இணக்கமான மற்றும் பேட்டரி திறன் கொண்ட தேர்வாகும்.