Rastreamento de Localização em Tempo Real Usando o Provedor de Localização Fusível API do Google
>
>
>
>
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