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

MDM DataBehavior

Módulo responsável pelo monitoramento de dados e eventos que o usuário possa gerar ao usar o aplicativo.

Para poder iniciar o monitoramento de dados e eventos, sua aplicação precisa obter a permissão do usuário, através de uma caixa de diálogo, conforme mostrado abaixo:

final Activity activity = this;
MDMCore.askPermissionFullDialog(this, new MDMCore.PermissionListener() {
    @Override
    public void onPermissionResponse(boolean response) {
        if (response && !MDMAppBehavior.hasAskedPermission(getApplicationContext())) {
            MDMDataBehavior.setPermission(getApplicationContext(), true);
            MDMDataBehavior.start(activity.getApplicationContext());
        } else {
            if (!MDMDataBehavior.hasPermissionToRun(getApplicationContext()) &&
                    !MDMDataBehavior.hasAskedPermission(getApplicationContext())) {
                MDMDataBehavior.askPermission(activity);
            }
        }
    }
});

 

Caso queira customizar o texto de pedido de permissão que é exibido ao usuário, utilizar o método customizado conforme mostrado abaixo:

final Activity activity = this;
MDMCore.askPermissionFullDialog(this, new MDMCore.PermissionListener() {
    @Override
    public void onPermissionResponse(boolean response) {
        if (response && !MDMDataBehavior.hasAskedPermission(getApplicationContext())) {
            MDMDataBehavior.setPermission(getApplicationContext(), true);
            MDMDataBehavior.start(activity.getApplicationContext());
        } else {
            if (!MDMDataBehavior.hasPermissionToRun(getApplicationContext()) &&
                    !MDMDataBehavior.hasAskedPermission(getApplicationContext())) {
                MDMDataBehavior.askPermissionCustom(activity,
                        "Título Customizado", "Mensagem Customizada",
                        "Botão Positivo", "Botão Negativo", "Saiba Mais", "https://hands.com.br/politica-de-privacidade-de-dados.php");
            }
        }
    }
});

 


Monitoramento de dados:

O módulo de Data armazena até 5 dados por usuário. Para adicionar dados a serem indexados pelo módulo de Data, use o seguinte código:

MDMDataBehavior.addOrUpdateData(new MDMData(
        "plano_usuario", // chave
        "premium", // valor
        MDMData.Type.TEXT, // tipo de dado
        false, // criptografado
        "Plano utilizado pelo usuário." // descrição
), getApplicationContext());

Os valores possíveis para o tipo de dado são:

MDMData.Type[] dataTypes = new MDMData.Type[]{
        MDMData.Type.ID,
        MDMData.Type.RG,
        MDMData.Type.CPF,
        MDMData.Type.EMAIL,
        MDMData.Type.PHONE,
        MDMData.Type.TEXT,
        MDMData.Type.NUMBER,
        MDMData.Type.MONETARY_VALUE,
        MDMData.Type.DATETIME,
        MDMData.Type.LOCATION,
        MDMData.Type.CUSTOM
};

 


Monitoramento de eventos:

Também é possível incluir eventos, com a quantidade de dados que for necessária relacionados a um evento. Para adicionar eventos a serem indexados pelo módulo de Data, use o seguinte código:

MDMDataBehavior.addEvent(new MDMEvent(
        new Date(), // data do evento
        "plano_mudanca", // chave
        MDMEvent.Type.PURCHASE, // tipo de evento
        "Mudança de plano do usuário.", // descrição
        new MDMData[]{ // array de dados relacionados ao evento
                new MDMData(
                        "plano_usuario",
                        "premium",
                        MDMData.Type.TEXT,
                        false,
                        "Plano utilizado pelo usuário."
                )
        }
), getApplicationContext());

Os valores possíveis para o tipo de evento são:

MDMEvent.Type[] eventTypes = new MDMEvent.Type[]{
        MDMEvent.Type.PURCHASE,
        MDMEvent.Type.CHECKPOINT,
        MDMEvent.Type.APP_EVENT,
        MDMEvent.Type.SEARCH,
        MDMEvent.Type.CUSTOM
};

 


Criptografia:

Para incluir dados criptografados e para descriptografar dados incluídos, basta usar o seguinte código:

String encryptedData = CryptoData.encryptRSA(getApplicationContext(),"551192345678");

String decryptedData = CryptoData.decryptRSA(getApplicationContext(), encryptedData);