Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
Evidência comparável com método, versão e limites.
- Um aplicativo Android com um fluxo de trabalho que precisa de um resultado de código de barras.
- O modelo de destino exato, construção Android e dispositivo aprovado SDK identificado.
- Uma decisão sobre transporte em cunha, intencional ou direto SDK ; não os misture acidentalmente.
Padrão de publicação
Integre Android empresarial com evidência versionada.
Os recursos públicos focam padrões reproduzíveis. SDKs, firmware e documentos restritos continuam em canais aprovados.
- 01
Escolha o transporte para o fluxo de trabalho
Use a cunha quando uma forma focada precisar de um retroajuste rápido. Use uma intenção ou retorno de chamada explícito quando o aplicativo for proprietário do evento. Use um dispositivo direto API apenas atrás de um pequeno adaptador para que as telas comerciais não dependam dos tipos de fornecedores.
- 02
Defina o evento que seu aplicativo possui
Mantenha juntos o texto decodificado, os bytes brutos, a simbologia e o tempo recebido. Trate a carga útil de transporte como entrada não confiável e rejeite dados ausentes, superdimensionados ou não decodificáveis antes que cheguem à lógica de inventário.
- 03
Abra, ouça, inicie e pare em um único proprietário
Registre o caminho do resultado antes de iniciar uma decodificação. Inicie apenas uma vez, pare quando o fluxo de trabalho terminar e feche o recurso do dispositivo em todos os caminhos de saída, incluindo plano de fundo, cancelamento e erros.
- 04
Prove os caminhos infelizes
Teste uma carga vazia, resultado duplicado, tempo limite, simbologia não suportada, retomada de tela e um dispositivo sem opção de scanner. Uma verificação verde em um dispositivo não é uma declaração de compatibilidade para todas as configurações.
Aplicações de exemplo / Kotlin
Padrões de SDK e API
Padrão de adaptador original. Vincule o CapturePort ao dispositivo aprovado SDK em seu projeto privado Android.
data class CaptureEvent(
val value: String,
val symbology: String?,
val capturedAt: Instant,
)
interface CapturePort {
fun open()
fun start()
fun stop()
fun close()
fun setListener(listener: (CaptureEvent) -> Unit)
}
class ScanWorkflow(private val scanner: CapturePort) {
private var active = false
fun begin(onCapture: (CaptureEvent) -> Unit) {
if (active) return
scanner.open()
scanner.setListener(onCapture)
scanner.start()
active = true
}
fun end() {
if (!active) return
runCatching { scanner.stop() }
runCatching { scanner.close() }
active = false
}
}Distribuição de SDK
Controle de publicação
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.
Retorne um erro de entrada e mantenha o fluxo de trabalho disponível para outra digitalização.
Desduplicar por uma chave de evento de curta duração; nunca receba estoque duplo silenciosamente.
Pare a operação atual, mostre um estado recuperável e permita uma nova tentativa controlada.
Pare ou pause de acordo com o contrato de fluxo de trabalho e registre-se novamente com segurança ao retomar.
Estados da evidência
Evidência comparável com método, versão e limites.
- 01
Modelo de registro, opção de scanner, compilação Android, firmware e versão SDK.
- 02
Execute testes de inicialização a frio, início repetido/stop, segundo plano/resume e cancelamento.
- 03
Use o código 128, um rótulo danificado, um gatilho vazio e uma simbologia não suportada.
- 04
Confirme se nenhum dado bruto de varredura ou identificador de cliente foi gravado em logs comuns.
Recursos
Padrões de SDK e API
Nenhum binário do fornecedor, referência de API, firmware ou exemplo de código-fonte é publicado sem registrar a permissão de redistribuição e o escopo compatível.