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