1. Hands MDM SDK
  2. Android Quickstart
  3. MDM Módulos
  4. MDM GeoBehavior

MDM GeoBehavior

Módulo responsável pelo monitoramento da localização geográfica do usuário. Este módulo roda em background e fica monitorando os lugares visitados pelos usuários.

Para inicializar a geolocalização, a aplicação precisa obter a permissão do usuário conforme exemplo abaixo (Fique a vontade em implementar a sua maneira).

Sua Activity deve implementar ActivityCompat.OnRequestPermissionsResultCallback.

protected void requestGeoTrackingPermissions() {
    // Verifica Google Play Services
    final GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
    final int result = googleAPI.isGooglePlayServicesAvailable(getApplicationContext());
    if (result != ConnectionResult.SUCCESS) {
        if (googleAPI.isUserResolvableError(result)) {
            googleAPI.getErrorDialog(this, result, 9000).show();
        }
        // Usuário precisa atualizar o Google Play Services
        return;
    }

    // Verifica permissão de geolocalização
    if (ActivityCompat.checkSelfPermission(getApplicationContext(),
            android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission(getApplicationContext(),
            android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        // Requisitar permissão de geolocalização
        ActivityCompat.requestPermissions(this, new String[]{
                android.Manifest.permission.ACCESS_COARSE_LOCATION,
                android.Manifest.permission.ACCESS_FINE_LOCATION
        }, 200);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    if (200 == requestCode && grantResults.length > 0) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            //Permissão concedida, inicializar geolocalização
            MDMGeoBehavior.start(getApplicationContext());
            ActivityCompat.requestPermissions(this, new String[]{
                android.Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 2);
        } else {
            // Permissão não concedida
        }
    }
}

Pedir a permissão ao usuário:

MDMCore.askPermissionFullDialog(this, new MDMCore.PermissionListener() {
    @Override
    public void onPermissionResponse(boolean response) {
        requestGeoTrackingPermissions();
    }
});

E assim que concedida a permissão do usuário, chamar novamente a inicialização do módulo GeoBehavior:

MDMGeoBehavior.start(getApplicationContext());

 


Opt-out

Para fazer o opt-out do módulo, basta chamar o seguinte comando:

MDMGeoBehavior.setOptOut(getApplicationContext(), true);

Para desfazer o opt-out do módulo, basta chamar o seguinte comando:

MDMGeoBehavior.setOptOut(getApplicationContext(), false);