Métodos do fabricante

Acesse métodos públicos do dispositivo SmartPOS usando PublicDevice para configurar APN, senha de menu, navegação, hora, fuso horário e número de série.

Acesse métodos públicos do dispositivo SmartPOS para consultar ou configurar recursos expostos pelo fabricante.

Os métodos do fabricante são acessados por uma referência a PublicDevice. Use esse fluxo quando sua aplicação precisar configurar recursos do terminal fora dos fluxos transacionais.

Quando usar

Use os métodos do fabricante quando sua aplicação precisar executar ações específicas do dispositivo, como:

  • consultar o número de série do terminal;
  • verificar se o terminal é de desenvolvimento;
  • configurar APN;
  • habilitar ou desabilitar senha do menu Android;
  • controlar botões físicos de navegação;
  • configurar hora e fuso horário.

Pré-requisitos

Antes de acessar métodos do fabricante:

    1. Ative o terminal em Ativação SmartPOS.

    2. Inicialize o SDK e plugue o SmartPOSPlugin em Inicialização SmartPOS.

    3. Solicite as permissões Android necessárias em tempo de execução.

    4. Confirme se o método desejado é suportado pelo fabricante e modelo do terminal.


Classe utilizada

Para obter acesso aos métodos públicos do dispositivo, use a classe SmartPOSPublicDeviceRequestBuilder.

A requisição é criada por:

SmartPOSPlugin.createPublicDeviceRequestBuilder()

Exemplo

val request = SmartPOSPlugin.createPublicDeviceRequestBuilder()
    .callback(object: Callback<WeakReference<PublicDevice>>() \{
        override fun onFail(error: Throwable) {
        }

        override fun onSuccess(response: WeakReference<PublicDevice>) {
            response.get()?.setMenuPasswordEnabled(false)
        }
    \})
    .build()

Zoop.post(request)

Métodos disponíveis

MétodoDescrição
setMenuPasswordEnabledHabilita ou desabilita a senha para acesso às configurações do Android.
setApnConfigura e conecta em uma APN passando um objeto do tipo ApnCredentials.
setNavigationKeyEnabledHabilita ou desabilita um botão físico de navegação do Android.
setAutoTimeZoneHabilita ou desabilita o fuso horário automático.
setAutoTimeHabilita ou desabilita a hora automática.
setTimeZoneConfigura o fuso horário no formato Continente/Cidade, por exemplo America/Sao_Paulo.
getSerialNumberRetorna o número de série do terminal.
isDebugDeviceRetorna uma flag que indica se o terminal é de desenvolvimento.

Trabalhe com WeakReference<PublicDevice>

O callback de sucesso retorna uma referência fraca (WeakReference) para PublicDevice.

Antes de chamar qualquer método, recupere a instância com response.get() e trate o caso em que a referência não esteja mais disponível.

override fun onSuccess(response: WeakReference<PublicDevice>) \{
    val publicDevice = response.get()

    if (publicDevice == null) {
        handlePublicDeviceUnavailable()
        return
    }

    publicDevice.setMenuPasswordEnabled(false)
\}

Não assuma que response.get() sempre retornará uma instância válida. Trate null antes de chamar métodos do dispositivo.


Callbacks

.callback

Controla o fluxo principal para recuperar a referência do dispositivo.

MétodoQuando ocorreAção recomendada
onSuccessA referência para PublicDevice foi retornada.Recupere a instância com response.get() e chame o método necessário.
onFailA referência não foi recuperada.Exiba uma mensagem de erro ou siga sem executar a configuração do fabricante.

Tratamento recomendado

Ao acessar métodos do fabricante:

    1. Recupere PublicDevice com response.get().

    2. Trate o caso em que a referência seja null.

    3. Chame apenas métodos necessários para o fluxo atual.

    4. Exiba mensagens claras quando uma configuração não puder ser aplicada.

    5. Valide o comportamento no modelo do terminal usado pela aplicação.


Checklist dos métodos do fabricante

Antes de enviar a requisição com Zoop.post(request), confirme:

  • O SDK foi inicializado com credenciais.
  • O SmartPOSPlugin foi plugado.
  • O método desejado é necessário para o fluxo do app.
  • O app trata falha no callback principal.
  • O app trata response.get() == null.
  • O comportamento foi validado no fabricante e modelo do terminal.

Próximo passo

Depois de implementar métodos do fabricante, consulte Remoção GPOS720 para remover o aplicativo Zoop em terminais Gertec quando necessário.


Did this page help you?