UROVO Android SDK/Kotlin

UROVO Exemplo do ScanManager Kotlin e lista de verificação de validação

Este plano de implementação adapta o UROVO ScanManager API aprovado em um pequeno exemplo de atividade Kotlin. É um código de amostra para validação, não uma promessa de compatibilidade com todos os modelos ou firmware UROVO.

16 min de leituraRevisado: 2026-08-10Android desenvolvedores integrando hardware de código de barras UROVO
UROVO DT66 visualização do recurso para Android integração do ScanManager
SDKamostra apoiada por referência/não validada em todas as configurações de destino

Pontos de partida verificados

Linha de base APIUROVO Android SDK v4.1.0326

Use o pacote aprovado e registre a soma de verificação do artefato.

Canal de decodificaçãoTransmissão ScanManager.ACTION_DECODE

Leia dados documentados, string, comprimento e extras de tipo.

Ciclo de vidaAbra e cadastre-se; parar, cancelar registro e fechar

Combine a propriedade com a arquitetura do aplicativo.

CompatibilidadeDispositivo exato + SO + firmware + SDK + compilação do aplicativo

A presença de API por si só não é uma validação aprovada.

Regra de implementação

Trate o ScanManager como um recurso de hardware com um proprietário explícito. Abra-o, selecione o modo de saída pretendido, registre o receptor de decodificação, valide cada carga útil, cancele o registro e feche de forma determinística. Confirme o comportamento do método na amostra de intenção de produção.

01

Prepare uma linha de base SDK reproduzível

Empacote o artefato SDK aprovado por meio do processo controlado de download do desenvolvedor. Registre sua versão e SHA-256 junto com a compilação do aplicativo e o registro do dispositivo.

Mantenha as APIs do fornecedor atrás de um adaptador de scanner para que a lógica de negócios possa ser testada em unidade sem hardware e outra implementação de captura possa ser substituída.

  • Somente fonte SDK aprovada
  • Hash de artefato registrado
  • Limite do adaptador definido
  • Matriz de dispositivos criada
02

Possuir o ciclo de vida do scanner uma vez

A referência API documenta funções openScanner, closeScanner, startDecode, stopDecode e modo de saída. Decida se a atividade, um serviço em primeiro plano ou outro componente com escopo de aplicativo possui essas chamadas.

Evite múltiplas telas abrindo o scanner de forma independente. Torne a parada e o fechamento seguros para repetir e exibir valores de retorno com falha no estado de diagnóstico sem registrar cargas úteis de código de barras.

  • Proprietário de recurso único
  • Limpeza idempotente
  • Valores de retorno observados
  • Nenhuma carga útil em logs comuns
03

Valide a carga de transmissão

Uma transmissão de decodificação bem-sucedida pode incluir dados brutos, uma string decodificada, comprimento e tipo de código de barras. Verifique a ação, a nulidade e a duração antes de entregar um evento de domínio.

Escolha uma representação oficial. Se a codificação for importante, preserve os bytes brutos e decodifique sob um conjunto de caracteres explícito em vez de assumir que cada código de barras é ASCII simples.

  • A ação corresponde exatamente
  • Comprimento consistente com a carga útil
  • Política de codificação documentada
  • Guarda de evento duplicado
04

Passe da demonstração para a evidência de produção

O sucesso da compilação prova apenas a compatibilidade da fonte. Execute o aplicativo em cada modelo, sistema operacional e firmware pretendido com rótulos representativos e cenários de ciclo de vida.

Registre as configurações do scanner e o modo de saída após a configuração. Teste de regressão após alterações de firmware, SDK, aplicativo ou política MDM.

  • Corpus de digitalização representativo
  • Dormir e retomar ciclos
  • Casos de código rápido e longo
  • Registro de teste versionado
Matriz de decisão

Mapa do estado do ciclo de vida do ScanManager

Mantenha as chamadas de recursos alinhadas com o estado observável do aplicativo.

EstadoAção necessáriaResposta à falha
ComeçandoCrie o ScanManager e abra o scannerBloquear captura e mostrar estado de diagnóstico
ProntoDefina o modo de saída e registre o receptorLeia ou relate falha na configuração
CapturandoInicie a decodificação ou aceite eventos de gatilhoTempo limite, parar e permitir nova tentativa controlada
PausadoPare a decodificação e cancele o registro conforme projetadoImpedir a entrega para fluxo de trabalho inativo
DestruídoFeche o scanner uma vezRegistre o resultado da limpeza sem dados confidenciais
SDK

Exemplo de reconhecimento mínimo do ciclo de vida Kotlin

Verifique as constantes do modo de saída, os sinalizadores do receptor Android e a propriedade do ciclo de vida em relação ao SDK, ao destino API exato e à arquitetura do aplicativo.

UrovoScannerActivity.kt
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.device.ScanManager
import androidx.appcompat.app.AppCompatActivity

class UrovoScannerActivity : AppCompatActivity() {
    private val scanner = ScanManager()
    private var receiverRegistered = false

    private val decodeReceiver = object : BroadcastReceiver() {
        override fun onReceive(context: Context, intent: Intent) {
            if (intent.action != ScanManager.ACTION_DECODE) return
            val raw = intent.getByteArrayExtra(ScanManager.DECODE_DATA_TAG) ?: return
            val declaredLength = intent.getIntExtra(ScanManager.BARCODE_LENGTH_TAG, raw.size)
            val type = intent.getByteExtra(ScanManager.BARCODE_TYPE_TAG, 0)
            val value = intent.getStringExtra(ScanManager.BARCODE_STRING_TAG)
                ?: raw.copyOf(declaredLength.coerceIn(0, raw.size)).toString(Charsets.UTF_8)
            onValidatedScan(value, type)
        }
    }

    override fun onStart() {
        super.onStart()
        check(scanner.openScanner()) { "Scanner could not be opened" }
        // Confirm the broadcast-output constant in the SDK version you ship.
        check(scanner.switchOutputMode(0)) { "Output mode could not be set" }
        registerReceiver(decodeReceiver, IntentFilter(ScanManager.ACTION_DECODE))
        receiverRegistered = true
    }

    override fun onStop() {
        scanner.stopDecode()
        if (receiverRegistered) unregisterReceiver(decodeReceiver)
        receiverRegistered = false
        scanner.closeScanner()
        super.onStop()
    }

    private fun onValidatedScan(value: String, type: Byte) {
        // Route a sanitized domain event; do not log sensitive barcode values.
    }
}
Lista de verificação do projeto

Lista de verificação de validação do ScanManager

Anexe esse registro ao aplicativo aprovado e à linha de base do dispositivo.

  1. 01

    Versão SDK e SHA-256 gravado

  2. 02

    Dispositivo SKU, SO e firmware gravados

  3. 03

    O scanner abre e fecha repetidamente

  4. 04

    Modo de saída lido ou confirmado

  5. 05

    O ciclo de vida do receptor corresponde à UI ativa

  6. 06

    Extras brutos, string, comprimento e tipo verificados

  7. 07

    Todas as simbologias necessárias testadas

  8. 08

    Varreduras longas, danificadas e rápidas testadas

  9. 09

    Suspensão, reinicialização e modo quiosque MDM testado

  10. 10

    Nenhum dado sensível de código de barras registrado

FAQ

Perguntas frequentes

O que significa switchOutputMode(0)?

A referência API documenta a comutação do modo de saída, mas as constantes e o comportamento devem ser verificados na versão exata SDK e no firmware do dispositivo. Não copie a constante de amostra na produção sem verificação.

O scanner deve fechar em onPause ou onStop?

Escolha a propriedade do ciclo de vida com base na arquitetura do aplicativo e se a verificação pode continuar quando parcialmente ocultada. O requisito importante é um proprietário, limpeza determinística e comportamento testado.

Este exemplo pode ser usado em todos os dispositivos UROVO ?

Não. É um modelo de validação baseado no ScanManager v4.1.0326. Compile e execute-o em cada modelo, sistema operacional e firmware pretendido antes do lançamento.

Evidências e limitações

SDKamostra apoiada por referência/não validada em todas as configurações de destino

O código é ilustrativo e chama deliberadamente constantes específicas da versão e política do receptor Android para verificação.

Revisado: 2026-08-10

Registro de origem
  • UROVO Android SDK referência v4.1.0326 ScanManager API
  • UROVO Projeto de amostra do ScanManager na exportação aprovada SDK
  • Android documentação do ciclo de vida do aplicativo e do receptor de transmissão

Transforme este guia em uma decisão de projeto

Solicitar validação do aplicativo

Compartilhe o modelo, firmware, linha de base SDK e fluxo de trabalho de digitalização. RuggedLayer definirá o escopo de um plano de validação de dispositivo reproduzível.

Solicitar validação do aplicativo