Rastreamento de Localização em Tempo Real Usando o Provedor de Localização Fusível API do Google

>

>

Kumarage Imal

>

>

>

Imal Kumarage

Seguimento

>

Jul 9, 2020 – 3 min ler

>

>

>

>

>

>

>

>

Fotografia por galinha em Unsplash
>>

Localização O rastreamento e monitoramento tem visto um aumento no desenvolvimento de aplicações modernas com vários serviços como o Uber confiando fortemente em serviços de localização que requerem consistência e precisão. Com empresas e corporações exigindo informações de localização e monitoramento de seus vários ativos, fornecer soluções de localização abrangentes tem sido uma ciência complicada para muitos desenvolvedores.

Identificando a crescente demanda por um serviço de localização conveniente, o Google introduziu o Fused Location Provider API. Este artigo focará no uso da API para rastrear a localização de um usuário em tempo real usando um aplicativo andróide e através do exemplo demonstrar a beleza da API.

A API foca no fornecimento de informações de localização usando uma combinação de GPS de um dispositivo, Wi-Fi e sensores internos. O principal ponto de venda é que ela decide em que combinação usar esses três recursos com base nos parâmetros de solicitação fornecidos. Neste contexto, o gerenciamento destes recursos é abstraído do desenvolvedor.

Um caso de uso simples para demonstrar a capacidade da API é rastrear o movimento de um indivíduo caminhando em direção a um edifício, entrando nele e saindo depois. Neste cenário, quando a pessoa está ao ar livre, o serviço de GPS funcionará bem. No entanto, ao entrar no edifício, o sinal de GPS pode cair. O Fused Location Provider lida com o cenário acima rastreando a localização ao ar livre via GPS e quando o sinal de GPS cai dentro do edifício, ele utiliza Wi-Fi. Durante o processo de mudança de GPS para Wi-Fi, para proporcionar uma transição mais suave, os sensores internos do dispositivo são utilizados para prever o movimento. Desta forma, o gerenciamento dos recursos disponíveis para fornecer serviços de localização confiáveis de forma eficiente com a bateria é a verdadeira potência da API.

Integrar a API no seu aplicativo andróide é um processo simples. Neste exemplo, vamos percorrer os passos necessários para construir um simples aplicativo de localização.

Primeiro, criar um projeto android no Android Studio e dentro da construção do aplicativo.Gradle file, certifique-se que a seguinte dependência está presente:

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

Secondamente, dentro do arquivo Manifest você deve fornecer a permissão de localização Fine ou Coarse adicionando o snippet abaixo:

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

Agora, crie instâncias de FusedLocationProviderClient, LocationRequest e LocationCallBack em sua atividade.

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

O objeto LocationRequest é usado para construir um pedido de localização de acordo com os parâmetros do nosso caso de uso, fornecendo detalhes como a freqüência de atualização, nível de precisão e eficiência da bateria. Crie um método para construir a requisição de localização com base nos parâmetros desejados. Um exemplo é fornecido abaixo:

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());
}
}
};
}

Após o objeto locationRequest e os objetos locationCallBack são inicializados, solicite dados de localização chamando o método FusedLocationProviderClient’s requestLocationUpdates. Passe os objetos locationRequest e locationCallback como parâmetros.

FusedLocationProviderClient.requestLocationUpdates
(
locationRequest,
locationCallback,
null
);

Baseado nos parâmetros definidos pela requisição a API continuará a fornecer informações relevantes de localização que podem ser utilizadas para executar numerosas funções como monitoramento de localização e rastreamento de velocidade em tempo real.

A API do Provedor de Localização de Fusão fornece um método conveniente para gerenciar todas as tecnologias de localização subjacentes, abstraindo seu funcionamento interno do desenvolvedor e fornecendo métodos de alto nível para especificar a qualidade e precisão dos serviços necessários.

O que é explorado aqui é apenas uma fração do que a API fornece, e o Google forneceu documentação abrangente que pode ser usada para construir aplicações diversas e robustas no futuro. Siga o link abaixo para começar:

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

Leave a Reply