Mobile SDK Android 3.0.1

Última atualização: 04 de Agosto de 2020

Introdução

O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma Android.

Este SDK é escrito em Java e realiza a coleta de dados (informações e localização) do dispositivo e envio para ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.

A informação de geolocalização depende da permissão concedida pelo usuário do dispositivo, neste caso é necessário que o aplicativo solicite o acesso da informação de localização do usuário o SDK não solicita permissão. Caso o aplicativo não solicite o acesso ou o usuário não conceda permissão não é feita a captura da informação.

O SDK respeita a política de privacidade da Google para a captura dos dados do dispositivo e o nível de permissão atribuído pelo usuário (usuário do dispositivo).

Android 3.0.1

Instalação do Package

Esta versão de pacote está depreciado. Recomendamos usar a versão mais atualizada no menu de versões para Android.

Configuração do Projeto

É necessário utilizar as seguintes dependências no seu projeto: play-services-location, play-services-ads, gson. Para isso adicione no arquivo Gradle do seu projeto, na seção de dependências, as seguintes informações.

dependencies {
    // Demais dependências do seu projeto.
    //...
    // Dependências Obrigatórias:
    implementation 'com.google.android.gms:play-services-ads:18.3.0'
    api 'com.google.code.gson:gson:2.8.6'
    implementation 'sale.clear.behavior:sdk-behavior:3.0.1'

    // Dependências Optativas:
    api 'com.google.android.gms:play-services-location:17.0.0'
 }

Recomendamos o uso do Gradle 5.4.1, do Android Studio 3.5.1 e plugin 3.5.1.

Permissões no aplicativo

Para o uso do sdk é necessário requisitar algumas permissões no arquivo de manifesto, são elas:


    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>

Para aplicações que utilizem como Target a versão 26 ou superior do Android, e que desejem capturar informações de geolocalização, é necessário, além de adicionar no manifest as permissões ACCESS_FINE_LOCATION e ACCESS_COARSE_LOCATION, solicitar permissão ao usuário para coletar dados de geolocalização, seguindo a seguinte recomendação do Android.

Classe Behavior

Descrição

Behavior é a classe responsável pela coleta das informações.

Construtores

Esta classe não possui construtores públicos. A instância deverá ser feita através de um método estático.


Métodos Estáticos
Nome do método Descrição
Behavior.getInstance(String app) :Behavior Obtém a instância da classe Behavior para um AppKey.
É necessário passar como parâmetro o AppKey (valor fornecido pela ClearSale).

Métodos

Nome do método Descrição
generateSessionId() :String Gera e retorna um identificador de sessão.
Este método deve ser utilizado somente se a aplicação não tiver nenhum valor para sessão.
Este valor deve ser armazenado e enviado para a ClearSale no momento da integração do pedido.
collectDeviceInformation(String sessionID) :void Realiza a coleta das informações do dispositivo vinculando ao valor de Sessão.
É necessário passar como parâmetro o SessionId, valor de sessão. Este valor deve ser armazenado e enviado para a ClearSale no momento da integração do pedido.
(*) Caso não possua um valor utilizar o método. generateSessionId().
(**) O Tamanho máximo de SessionID a ser usado é 256 caracteres.
Exceções:
  • SessionIDAlreadyUsedException - lançada quando o mesmo valor de sessão é usado mais de uma vez.
start() :void Inicia a coleta das informações sobre o dispositivo e a tela.
Exceções:
  • CaptureWasStartedException - lançada quando uma captura anterior não foi parada.
stop() :void Encerra o processo de captura dos dados.

Exemplos

Existem duas formas de inicializar o SDK. Isso depende do tipo de tela que será utilizada. Caso a tela seja uma Activity, a inicialização deve ser feita no método onCreate(). Caso seja um Fragment, a inicialização deve ser feita no método onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

Observação: Em ambos os casos (Activity ou Fragment), se o método stop() não for chamado dentro do método onStop() de uma das telas, por se tratar de um singleton, na próxima tela quando for chamado o start() será lançada a exceção CaptureWasStartedException.

Em todos os exemplos se assume a existência das seguintes variáveis:

  • mBehavior que representa a instância da classe Behavior. Pode ser substituído por Behavior.getInstance(contexto, CLEAR_SALE_APP).
  • CLEAR_SALE_APP variável do tipo string, o valor desta variável deve ser fornecido pela ClearSale.


Para inicializar a chamada, quando a tela é um Fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                Bundle savedInstanceState) {
    // Para obter o Context em um Fragment.
    View rootView = inflater.inflate(R.layout.fragment_login, container, false);
    Context context = rootView.getContext();
    //CLEAR_SALE_APP é um valor que deve ser fornecido pela ClearSale.
    mBehavior = Behavior.getInstance(mContext, CLEAR_SALE_APP);
    return rootView;
}

Quando a tela é uma Activity

@Override
public void onCreate() {
    //CLEAR_SALE_APP é um valor que deve ser fornecido pela ClearSale.
    mBehavior = Behavior.getInstance(this, CLEAR_SALE_APP);
}

Para iniciar a captura:

Em todas as telas deve-se realizar a chamada dos metódos start() e stop(). Apenas quando se quiser enviar os dados coletados para a ClearSale deve-se chamar o metodo collectDeviceInformation(SESSION_ID)


    @Override
    public void onResume() {
        super.onResume();
        try {
            mBehavior.start();
            //Apenas nas telas que se deseja enviar os dados coletados para a ClearSale
            String sessionId = mBehavior.generateSessionId()
            collectDeviceInformation(sessionId);
        }
        catch (CaptureWasStartedException e) {
            //Isso indica que o método startCapture foi chamado anteriormente e não
            //foi chamado o método stopCapture() no metodo onStop().
            Log.e(LOG_TAG, e.getMessage());
        }catch (SessionIDAlreadyUsedException e) {
            //O mesmo sessionId foi usado anteriormente.
            Log.e(LOG_TAG, e.getMessage());
        }
    }

Para encerrar a captura:

@Override
public void onStop() {
    super.onStop();
    mBehavior.stopCapture();
}                         

Licença de Uso.

Ao realizar o download e utilizar nosso SDK você estará concordando com a seguinte licença.

Copyright © 2020 ClearSale

Todos os direitos são reservados, sendo concedida a permissão para usar o software da maneira como está, não sendo permitido qualquer modificação ou cópia para qualquer fim.
O Software é licenciado com suas atuais configurações “tal como está” e sem garantia de qualquer espécie, nem expressa e nem implícita, incluindo mas não se limitando, garantias de comercialização, adequação para fins particulares e não violação de direitos patenteados. Em nenhuma hipótese os titulares dos Direitos Autorais podem ser responsabilizados por danos, perdas, causas de ação, quer seja por contrato ou ato ilícito, ou outra ação tortuosa advinda do uso do Software ou outras ações relacionadas com este Software sem prévia autorização escrita do detentor dos direitos autorais.