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

MDM GeoBehavior

Módulo responsable del monitoreo de la ubicación geográfica del usuario. Este módulo se ejecuta en segundo plano y supervisa los lugares visitados por los usuarios.

Para inicializar la geolocalización, la aplicación debe obtener el permiso del usuario, como se muestra en el ejemplo a continuación (Siéntase libre de implementarlo como desee).

Su Activity debe implementar el 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 permiso al usuario:

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

Y tan pronto como se concedió el permiso del usuario, volver a llamar a la inicialización del módulo GeoBehavior:

MDMGeoBehavior.start(getApplicationContext());