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