DeviceAnalyser
Obtenha informações relevantes de um dispositivo Android.
Permissões em tempo de execução
Permissão | Motivo | Obrigatória? |
---|---|---|
ACCESS_COARSE_LOCATION | Para obter a localização aproximada | Sim |
ACCESS_FINE_LOCATION | Para obter a localização exata | Sim |
Instanciando o objeto DeviceAnalyser
Primeiro, crie um objeto do tipo DeviceAnalyser
. Este objeto serve para você configurar todos as suas regras de negócio para o SDK:
DeviceAnalyser mDeviceAnalyser = new DeviceAnalyser.Builder(@NonNull AppCompatActivity activity)
// veja a tabela abaixo
.build();
DeviceAnalyser.Builder
Parâmetro | Obrigatório? |
---|---|
AppCompatActivity activity Sua activity, para definir o contexto da aplicação | Sim |
.setPriority(int priority) Define a a prioridade da precisão, podendo ser: PRIORITY_HIGH_ACCURACY PRIORITY_BALANCED_POWER_ACCURACY PRIORITY_LOW_POWER PRIORITY_NO_POWER As prioridades estão disponiveis na classe Constants, ex.: .setPriority(Constants.PRIORITY_HIGH_ACCURACY) | Não, por padrão é PRIORITY_BALANCED_POWER_ACCURACY |
.getLocation(LocationListener listener) Retorna as informações de geolocalização, se disponíveis, caso contrário, retorna um sdkFailure. Espera um locationListener como argumento, como explicado nesse exemplo | Sim |
LocationInfo
Método | Tipo de dado |
---|---|
.isUsingFakeGPS() Retorna se o dispositivo esta usando uma localização simulada/falsa | boolean |
.getLatitude() Retorna a informação de latitude | double |
.getLongitude() Retorna a informação de longitude | double |
.getAccuracy() Retorna a precisão das informações obtidas | float |
LocationListener
Resultado | Tipo de dado |
---|---|
.onSuccess(LocationInfo locationInfo) Em caso de sucesso, retorna um objeto LocationInfo com os dados de geolocalização: .isUsingFakeGPS() .getLatitude() .getLongitude() .getAccuracy() | LocationInfo |
.onFailure(Failure sdkFailure) Em caso de falha, retorna um sdkFailure | Failure |
LocationListener locationListener = new LocationListener() {
@Override
public void onSuccess(LocationInfo locationInfo) {
//Sucesso
}
@Override
public void onFailure(Failure sdkFailure) {
//Falha
}
};
Exemplo de uso
deviceAnalyser = new DeviceAnalyser.Builder(this).build();
deviceAnalyser.getLocation(locationListener);
onActivityResult
Utilizar o método onActivityResult
para obter o resultado da interação do usuário com o popup de solicitação de ativação do GPS no dispositivo:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Constants.REQUEST_CODE_OF_GPS_DIALOG) {
switch (resultCode) {
case Activity.RESULT_OK:
// Realize uma nova chamada do método getLocation() em caso do usuário ter ativado o GPS
deviceAnalyser.getLocation(locationListener);
break;
case Activity.RESULT_CANCELED:
//Usuário recusou a ativação do GPS. Não será possível coletar.
break;
default:
break;
}
}
}