Real-Time Location Tracking Using Google’s Fused Location Provider API

Imal Kumarage
Imal Kumarage

Follow

9 iulie, 2020 – 3 min citește

Fotografie de henry perks pe Unsplash

Localizare urmărirea și monitorizarea au înregistrat o creștere bruscă în dezvoltarea aplicațiilor moderne, diverse servicii, cum ar fi Uber, bazându-se foarte mult pe serviciile de localizare care necesită consecvență și precizie. Având în vedere că întreprinderile și corporațiile au nevoie de informații de localizare și de monitorizare a diverselor lor active, furnizarea de soluții complete de localizare a fost o știință complicată pentru mulți dezvoltatori.

Identificând cererea tot mai mare pentru un serviciu convenabil de furnizare a locației, Google a introdus Fused Location Provider API. Acest articol se va concentra pe utilizarea API-ului pentru a urmări locația în timp real a unui utilizator folosind o aplicație android și prin intermediul exemplului va demonstra frumusețea API-ului.

API-ul se concentrează pe furnizarea de informații de localizare folosind o combinație de GPS, Wi-Fi și senzori interni ai unui dispozitiv. Principalul punct de vânzare este faptul că decide în ce combinație să folosească aceste trei resurse pe baza parametrilor de cerere furnizați. În acest context, gestionarea acestor resurse este abstractizată de la dezvoltator.

Un caz simplu de utilizare pentru a demonstra capacitatea API-ului este urmărirea mișcării unui individ care se îndreaptă spre o clădire, intră în ea și apoi iese. În acest scenariu, atunci când persoana se află în aer liber, serviciul GPS va funcționa bine. Cu toate acestea, pe măsură ce intră în clădire, semnalul GPS poate scădea. Fused Location Provider gestionează scenariul de mai sus prin urmărirea locației în exterior prin GPS, iar atunci când semnalul GPS scade în interiorul clădirii, acesta utilizează Wi-Fi. În timpul procesului de trecere de la GPS la Wi-Fi, pentru a oferi o tranziție mai lină, senzorii interni ai dispozitivului sunt utilizați pentru a prezice mișcarea. În acest mod, gestionarea resurselor disponibile pentru a oferi servicii de localizare fiabile într-un mod eficient din punct de vedere al bateriei reprezintă adevărata putere a API-ului.

Integrarea API-ului în aplicația dvs. android este un proces simplu. În acest exemplu, vom parcurge pașii necesari pentru a construi o aplicație simplă de urmărire a locației.

În primul rând, creați un proiect android în Android Studio și în cadrul compilării aplicației.gradle, asigurați-vă că este prezentă următoarea dependență:

dependencies{
implementation 'com.google.android.gms:play-services:11.8.0'
}

În al doilea rând, în cadrul fișierului Manifest trebuie să furnizați fie permisiunea de localizare Fine sau Coarse prin adăugarea fragmentului de mai jos:

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

Acum, creați instanțe ale FusedLocationProviderClient, LocationRequest și LocationCallBack în activitatea dvs.

private FusedLocationProviderClient fusedLocationClient;private LocationRequest locationRequest;
private LocationCallback locationCallback;@Override
protected void onCreate(Bundle savedInstanceState) {
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
}
}

Obiectul LocationRequest este utilizat pentru a construi o cerere de localizare în conformitate cu parametrii cazului nostru de utilizare, furnizând detalii precum frecvența de actualizare, nivelul de precizie și eficiența bateriei. Creați o metodă pentru a construi cererea de localizare în funcție de parametrii doriți. Un exemplu este oferit mai jos:

private void buildLocationRequest() {locationRequest = new LocationRequest(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(100);locationRequest.setFastestInterval(100); locationRequest.setSmallestDisplacement(1);
}//Build the location callback object and obtain the location results //as demonstrated below:private void buildLocationCallBack() {
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
for (Location location: locationResult.getLocations()){
String latitude = String.valueOf(location.getLatitude());
String longitude = String.valueOf(location.getLongitude());
}
}
};
}

După ce obiectul locationRequest și obiectele locationCallBack sunt inițializate, solicitați date de localizare prin apelarea metodei requestLocationUpdates a FusedLocationProviderClient. Transmiteți obiectele locationRequest și locationCallback ca parametri.

FusedLocationProviderClient.requestLocationUpdates
(
locationRequest,
locationCallback,
null
);

În funcție de parametrii definiți prin cerere, API va continua să furnizeze informații relevante despre locație, care pot fi utilizate pentru a îndeplini numeroase funcții, cum ar fi monitorizarea locației și urmărirea vitezei în timp real.

Fused Location Provider API oferă o metodă convenabilă pentru a gestiona toate tehnologiile de localizare subiacente prin abstractizarea funcționării lor interne față de dezvoltator și prin furnizarea de metode de nivel înalt pentru a specifica calitatea și acuratețea serviciilor necesare.

Ceea ce este explorat aici este doar o fracțiune din ceea ce oferă API-ul, iar Google a furnizat o documentație cuprinzătoare care poate fi utilizată pentru a construi aplicații diverse și robuste în viitor. Urmați linkul de mai jos pentru a începe:

https://developers.google.com/location-context/fused-location-provider

Leave a Reply