Como criar a sua primeira aplicação para os Rokid AI Glasses com câmara, voz e ecrã

Como criar a sua primeira aplicação para os Rokid AI Glasses com câmara, voz e ecrã

Resumo executivo

O desenvolvimento de aplicações empresariais para os Rokid AI Glasses começa com a documentação do Sprite Enterprise SDK da Rokid e a respetiva demo para Android. As FAQ empresariais remetem o firmware empresarial para o Rokid AI Enterprise ou para a demo empresarial. O Android Studio é o ambiente de programação; o Glasses SDK disponibiliza as capacidades do dispositivo e o Phone SDK suporta a aplicação Android emparelhada.

A compatibilidade vem primeiro. Estas instruções públicas destinam-se aos Rokid Glass3 Enterprise. Uma designação comercial como «Rokid Enterprise RV101» não comprova, por si só, a compatibilidade com o SDK. Obtenha confirmação por escrito relativa ao seu hardware, firmware, região e direitos comerciais sobre o SDK exatos antes de seguir os passos de integração. Se a Rokid fornecer um SDK empresarial diferente para o seu dispositivo, utilize esse pacote e os exemplos correspondentes.

O tutorial expande a demo empresarial oficial para capturar uma fotografia, mostrar um estado e testar notas ditadas. Trata-se de um protótipo de desenvolvimento. O envio de um registo empresarial e a gestão de uma frota exigem o backend da sua empresa e um método de distribuição empresarial confirmado à parte.

Documentação do Enterprise SDK: Abrir fonte oficial

Porquê criar uma aplicação personalizada para os Rokid AI Glasses

Uma aplicação personalizada pode ligar inspeções no terreno, manutenção ou verificações em armazém às informações de que a empresa realmente precisa. Uma breve indicação no ecrã diz ao trabalhador o que fazer, uma câmara capta provas e a entrada de voz pode reduzir a escrita em tarefas adequadas.

O resultado útil é um registo empresarial fiável, com o ID correto do ativo ou da ordem de trabalho e um estado de gravação claro. Crie primeiro o fluxo mínimo de captura e revisão e, depois de testar o comportamento do hardware e o tratamento dos dados, ligue-o ao sistema operacional.

Escolher os componentes empresariais

Android Studio, JDK e Gradle:

  • Função: Editar, compilar e depurar projetos Android.
  • Requisito empresarial: Utilize uma estação de trabalho de desenvolvimento gerida e a cadeia de ferramentas aprovada para o projeto.

Sprite Enterprise Glasses SDK:

  • Função: Câmara, voz, lógica da aplicação relacionada com o ecrã e serviços do dispositivo.
  • Requisito empresarial: Requer hardware e firmware empresariais suportados; confirme as condições comerciais.

Sprite Enterprise Phone SDK:

  • Função: Emparelhamento, troca de mensagens e de multimédia com um telemóvel Android.
  • Requisito empresarial: Utilize quando a sua arquitetura incluir um telemóvel gerido pela empresa.

Rokid AI Enterprise ou demo empresarial:

  • Função: Ligação empresarial e testes de desenvolvimento.
  • Requisito empresarial: Obtenha a versão e as contas adequadas através do canal empresarial.

Backend da empresa:

  • Função: Autenticação e armazenamento de registos empresariais.
  • Requisito empresarial: Utilize endpoints, controlos de acesso e regras de retenção aprovados.

O que precisa antes de começar

Prepare os óculos empresariais suportados, um cabo de dados e depuração Glass3, um telemóvel Android de teste, o Android Studio, o JDK 17, o Git e a demo do SDK. O Git descarrega o código-fonte; o Gradle compila-o; um APK é o ficheiro de instalação Android. Utilize as versões da configuração aprovada da demo. O Quick Start e as FAQ da Rokid divergem quanto às versões mínimas do Android, por isso confirme o requisito com base no pacote que lhe foi fornecido, em vez de escolher o valor mais baixo.

Passo 1: confirmar o dispositivo empresarial e o acesso

• Registe o alvo. Nos óculos, abra as Definições e anote o modelo, a versão do sistema e o número de série. Peça à Rokid que confirme que esta versão suporta o Sprite Enterprise SDK e os serviços de câmara e de voz aqui necessários.

• Obtenha o pacote empresarial. Solicite o Rokid AI Enterprise ou a demo empresarial, a versão correspondente do SDK e as credenciais empresariais ao seu fornecedor ou contacto na Rokid. Confirme os direitos comerciais de desenvolvimento e implementação; uma transferência pública, por si só, não resolve a questão do licenciamento.

• Prepare a ligação. Carregue os dispositivos e ligue os óculos à estação de trabalho com o cabo de dados e depuração. Siga as instruções de integração empresarial fornecidas para a sua versão para preparar o telemóvel gerido e os óculos.

• Defina o fluxo de dados. Decida onde as fotografias e as notas ditadas podem ser processadas e armazenadas. Utilize um ambiente de teste da empresa e material de teste não sensível durante a validação da demo.

Requisitos do sistema e da aplicação empresariais: Abrir fonte oficial

Passo 2: abrir e executar a demo empresarial para Android

• Descarregue o código-fonte. Num terminal da estação de trabalho de desenvolvimento, execute o comando abaixo. Guarde o checkout na pasta de desenvolvimento habitual da sua equipa e registe o respetivo commit com git rev-parse HEAD.

git clone https://github.com/RokidSuuport/glass3_sdk_demo.git

• Abra os projetos. No Android Studio, escolha File > Open e selecione glass3_sdk_demo/glassdemo. Abra o glass3sdkphonedemo separadamente para o telemóvel. Aguarde pela sincronização do Gradle e, em seguida, selecione o JDK 17 em Settings > Build, Execution, Deployment > Build Tools > Gradle.

• Verifique as dependências. No painel Project, abra settings.gradle e app/build.gradle em cada projeto. Mantenha a configuração funcional da demo. Num projeto separado baseado em Groovy, integre estas entradas de repositório e de dependências nos blocos existentes; não crie blocos duplicados. O Quick Start publicado indica a versão 2.2.0-E, mas utilize a versão aprovada para o seu firmware.

// settings.gradle, dentro de dependencyResolutionManagement {

repositories { maven { url 'https://maven.rokid.com/repository/maven-public/' }

}

}

// Aplicação dos óculos: app/build.gradle, dentro de dependencies dependencies {

implementation('com.rokid.security:glass3.open.sdk:2.2.0-E') {

exclude group: 'org.slf4j'

}

}

// Apenas aplicação do telemóvel: app/build.gradle, dentro de dependencies dependencies {

implementation('com.rokid.security:phone.sdk:2.2.0-E') {

exclude group: 'org.slf4j'

}

}

• Configure e inicie. No projeto do telemóvel, abra MainPhoneActivity e localize UserAuthInfo. Forneça a AK e a SK emitidas para a empresa através de uma configuração local aprovada, fora do controlo de versões. Antes de executar a demo dos óculos, abra HomeActivity.initSDK() e substitua a chamada de exemplo setCameraLedEnable(false) por setCameraLedEnable(true). Reinicie conforme exigido pelo firmware do dispositivo. Execute primeiro a aplicação do telemóvel e, em seguida, selecione o dispositivo dos óculos no Android Studio e execute glassdemo. Estabeleça a ligação a partir da demo do telemóvel e verifique a inicialização do SDK e uma mensagem de texto antes de fazer alterações.

• Ajuste a configuração. O URL do repositório descarrega o exemplo, não um instalador. As duas dependências pertencem a aplicações diferentes. Altere as versões em conjunto apenas depois de consultar as orientações de compatibilidade da Rokid; mantenha os auxiliares de inicialização da demo e as importações necessárias.

Configuração da demo e caminhos do código-fonte: Abrir fonte oficial

Repositório e dependências do SDK: Abrir fonte oficial

Passo 3: tornar claro o primeiro controlo de captura

• Localize o ecrã. No projeto glassdemo, abra app/src/main/java/com/rokid/glass/SdkMediaActivity.kt. O respetivo ficheiro de layout encontra-se em app/src/main/res/layout/activity_test_media.xml. Trata-se de um ecrã Android nativo existente com controlos de câmara, não de uma página web.

• Comece por editar um botão. Nesse ficheiro XML, localize o elemento AppCompatButton existente com o ID android:id="@+id/btPhoto480P". Mantenha o ID original e as restrições de layout, para que o view binding Kotlin existente (binding.btPhoto480P) continue a funcionar sem quebrar referências.

• O layout original da demo define o botão com 50dp de largura e 36dp de altura, com uma etiqueta de 10sp, o que irá truncar o novo texto. Altere apenas os atributos indicados abaixo e mantenha o resto do elemento tal como está (o fundo, a cor do texto, as margens e as duas linhas app: layout_constraint); sem as restrições, o botão perde a sua posição no ConstraintLayout:

XML

<androidx.appcompat.widget.AppCompatButton

android:id="@+id/btPhoto480P"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:text="Capture"

android:contentDescription="Capture photo"

android:textSize="16sp" />

• Explicação da etiqueta.

• android:text="Capture": Define a etiqueta visível apresentada diretamente no ecrã.

• android:contentDescription="Capture photo": Fornece uma descrição de acessibilidade para leitores de ecrã e para a inspeção da hierarquia da interface. Note que definir contentDescription nos dispositivos Rokid não cria nem regista automaticamente um comando de voz; o controlo por voz exige uma integração explícita com o serviço de voz/comandos offline do Sprite Enterprise SDK.

• android:textSize="16sp": Garante a legibilidade no ecrã ótico monocular.

• Conceba o ecrã de trabalho. Na versão empresarial, mantenha a interface minimalista: um indicador de estado claro, um único botão principal de captura e um caminho definido para cancelar ou rever. Siga as orientações de ecrã empresariais da Rokid, utilizando texto de alto contraste (como texto verde legível sobreposto a cenas do mundo real), e evite depender apenas da cor para assinalar erros ou estados de captura. Verifique sempre o posicionamento e o truncamento do texto no ecrã físico dos óculos, em vez de confiar apenas na pré-visualização do layout do Android Studio.

Orientações empresariais de ecrã e layout: Abrir fonte oficial

Passo 4: testar a entrada de voz empresarial

• Abra o exemplo de voz. No projeto dos óculos, abra app/src/main/java/com/rokid/glass/SendMessageActivity.kt. Localize o ramo R.id.btnOnlineAsr e a função speechCallback(token). ASR significa reconhecimento automático de fala (automatic speech recognition): converte a fala em texto.

• Execute uma sessão de voz. Utilize o controlo de ASR da demo empresarial para iniciar uma sessão. Preserve o token de sessão e o tratamento de callbacks. O exemplo utiliza ASR na cloud, que só funciona depois de a demo do telemóvel ter inicializado o SDK com a sua AK e SK, por isso confirme o direito ao serviço, o idioma suportado, o acesso à rede e as condições de tratamento de dados empresariais antes de utilizar a voz dos trabalhadores.

• Mantenha o texto final separado dos comandos. Dentro do bloco de entrega onAsrComplete existente, trate o texto final com lógica da aplicação, como no exemplo abaixo. Trata-se de uma inserção no callback existente, não de uma substituição da implementação completa de SpeechCallback. Guarda uma nota para revisão; não aciona a câmara nem o envio.

// Adicione este campo dentro de SendMessageActivity: private var pendingBusinessNote: String? = null

// Dentro do bloco existente de entrega do resultado final: pendingBusinessNote = content?.trim()?.takeIf { it.isNotEmpty() } // Apresente pendingBusinessNote na sua interface de revisão antes de guardar.

• Adicione comandos de forma deliberada. Para captura mãos-livres, utilize o exemplo empresarial de comandos offline ou um handler validado de transcrição final ligado ao ecrã de captura. Ambos têm de chamar a mesma função de captura utilizada pelo botão visível. Verifique a configuração de idioma e fonética com o SDK fornecido. Uma nota ditada é texto livre e não deve ser tratada como um comando.

• Pare e recupere. Mantenha o stopSpeech e a limpeza de sessão do exemplo quando o ecrã deixa de estar em primeiro plano. Teste o silêncio, a recusa da permissão do microfone, a perda de rede e sessões repetidas. Mantenha uma alternativa por hardware ou por controlo visível.

Exemplo empresarial de ASR e comandos offline: Abrir fonte oficial

Passo 5: adicionar o handler da câmara e o feedback do resultado

• Reutilize a inicialização existente. Volte a SdkMediaActivity.kt. Mantenha a configuração do SDK, as importações e o callback de fotografia da demo. Em initView(), substitua apenas o bloco binding.btPhoto480P.setOnClickListener pela chamada abaixo e, em seguida, adicione a função dentro da mesma classe Activity. Esta utiliza o enum de resolução 480P existente e a localização partilhada Pictures da demo.

binding.btPhoto480P.setOnClickListener { captureBusinessPhoto() }

private fun captureBusinessPhoto() { val service = GlassSdk.getGlassMediaService() if (service == null) { binding.btPhoto480P.text = "Unavailable" return } val folder = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES ) if (!folder.exists() && !folder.mkdirs()) { binding.btPhoto480P.text = "Storage error" return } val output = File(folder, "inspection_${System.currentTimeMillis()}.png") binding.btPhoto480P.text = "Capturing" try { service.takePhoto(PhotoResolution.RESOLUTION_480P, output.absolutePath) } catch (e: Exception) { binding.btPhoto480P.text = "Try again" } }

• Mostre o sucesso a partir do callback. Localize o objeto mPhotoFileCallback existente. Adicione a função abaixo dentro da Activity e, em seguida, chame showBusinessPhoto(path) a partir de onTakePhoto e de onTakePhotoV2. Mantenha getCallbackId e o registo de callback existente. Em mICameraStateLister.onCameraError, atualize o controlo para «Try again» na thread de interface.

private var capturedBusinessPhoto: String? = null

private fun showBusinessPhoto(path: String) { runOnUiThread { if (!isFinishing && !isDestroyed) { capturedBusinessPhoto = path binding.btPhoto480P.text = "Captured" } } }

• Compreenda e personalize. takePhoto solicita uma captura; o respetivo callback fornece o caminho do ficheiro. Captured significa que existe um ficheiro local, não que um registo empresarial tenha sido guardado. Neste ecrã de desenvolvimento, alargue o botão para o texto de estado. No ecrã de produção, utilize uma vista de estado separada. Altere PhotoResolution apenas para valores suportados pelo seu SDK e verifique o enquadramento e as dimensões reais do resultado.

• Trate das permissões e do ciclo de vida. Utilize o fluxo de permissões da demo antes da captura. A câmara e o microfone precisam de declarações no manifest e da aprovação em tempo de execução aplicável. Mantenha removePhotoCallback e removeMediaStateLister na limpeza onDestroy existente da Activity. Adicione uma proteção contra capturas pendentes e um tempo limite antes de ligar a voz, para que eventos repetidos não produzam capturas duplicadas.

• Escolha um armazenamento seguro. A demo utiliza armazenamento partilhado, o que pode expor as fotografias de teste a outro software do dispositivo. Valide com a Rokid o acesso ao serviço e uma conceção de armazenamento adequada antes de processar registos reais. Defina a eliminação após revisão, envio ou cancelamento. Não parta do princípio de que o serviço de câmara do SDK, que é separado, consegue escrever no diretório privado da aplicação.

Exemplo de multimédia empresarial: Abrir fonte oficial

Código-fonte da câmara e importações correspondentes: Abrir fonte oficial

Permissões em tempo de execução do Android: Abrir fonte oficial

Passo 6: ligar o protótipo a um fluxo de trabalho empresarial

• Defina o registo. Acorde com o responsável pelo sistema empresarial o ID do ativo, o ID da ordem de trabalho, a identidade do operador, o formato da fotografia, o campo de nota, o endpoint e o tamanho de ficheiro aceite. Utilize uma conta de teste gerida pela empresa. Um caminho de ficheiro local não pode ser enviado para o backend como se fosse a própria imagem.

• Implemente a revisão antes do envio. Crie um ecrã de revisão com a fotografia capturada e a nota final. Adicione os controlos Confirmar e Cancelar. Apenas Confirmar deve iniciar o envio. Cancelar deve limpar o registo pendente e aplicar a política de eliminação acordada.

• Especifique o pedido. Implemente a API da empresa na aplicação do telemóvel ou dos óculos responsável pelo envio. Envie os bytes da fotografia com os metadados e a autenticação acordados. Utilize uma operação de rede em segundo plano, um ID de submissão único e um número limitado de novas tentativas. Mantenha as credenciais de longa duração no backend; determine com a equipa de TI o fluxo de autenticação de cliente suportado.

• Mostre o estado correto. Utilize Ready, Capturing, Captured, Review, Uploading, Saved e Retry. Passe para Saved apenas após uma resposta bem-sucedida do servidor com um ID de registo. O código de exemplo deste tutorial termina na captura local e na recolha de notas; o envio requer o contrato e a implementação reais da sua API.

Passo 7: verificar no hardware empresarial

• Compile e execute. A partir do diretório glassdemo, utilize o comando abaixo ou o controlo Run do Android Studio com os óculos suportados selecionados. No Windows, utilize gradlew.bat assembleDebug. Resolva os erros do Gradle antes de testar no dispositivo; um emulador Android padrão não consegue validar os serviços do dispositivo Rokid.

./gradlew assembleDebug

• Teste a captura e a limpeza. Selecione o controlo de captura. Verifique o ficheiro resultante, a legibilidade do estado, o caminho de erro da câmara e a recusa de permissões. Saia do ecrã, volte a abri-lo e verifique se os callbacks são removidos e novamente associados sem resultados duplicados. Confirme que o indicador da câmara permanece ativo durante a captura.

• Teste a voz separadamente. Dite uma breve nota de teste, verifique o texto final e cancele. Repita com ruído representativo do local de trabalho e em cada idioma aprovado. Se adicionar comandos, teste fala não relacionada e enunciados repetidos face à proteção contra capturas duplicadas.

• Teste a versão integrada. Depois de implementar o envio, teste desconexões, tempos limite, acessos revogados e confirmações repetidas. Verifique se um pedido falhado não mostra Saved e se repetir a mesma submissão não cria outro registo.

Passo 8: empacotar e implementar através do canal empresarial

• Prepare uma versão de lançamento. Substitua a marca de demonstração e remova as funcionalidades de exemplo não relacionadas e as credenciais de teste. Reveja com a Rokid as condições de reutilização do SDK e dos exemplos. Utilize nomes de pacote, controlo de versões e credenciais de assinatura controlados pela empresa.

• Compile um APK assinado. No Android Studio, abra Build > Generate Signed Bundle / APK, escolha APK, selecione a keystore da empresa e compile a variante release. Mantenha a chave de assinatura segura: as atualizações posteriores têm de utilizar a identidade de assinatura correta.

• Confirme a instalação privada. Utilize a via de instalação e gestão de aplicações que a Rokid confirmar para o seu firmware empresarial. Obtenha o método de distribuição de APK suportado, o aprovisionamento de contas e o procedimento de atualização/reversão. Não parta do princípio de que o software genérico de gestão de dispositivos Android suporta este modelo de óculos.

• Faça um piloto e volte a testar. Implemente num pequeno grupo gerido, meça a qualidade da captura, a precisão do reconhecimento e o tempo de resposta e volte a testar após alterações ao SDK ou ao firmware. Registe as versões compiladas e mantenha um pacote de reversão funcional antes de alargar a implementação.

Assinatura de aplicações Android: Abrir fonte oficial

Erros comuns a evitar

• Tratar o nome de um produto como prova de compatibilidade. Verifique o firmware empresarial real e a versão suportada do SDK antes da implementação.

• Distribuir a demo sem alterações. O exemplo demonstra capacidades. O respetivo armazenamento multimédia partilhado, as frases de exemplo e as funcionalidades não relacionadas precisam de ser revistos antes de uma implementação empresarial.

• Confundir captura com gravação. Uma fotografia local e uma transcrição não constituem uma ordem de trabalho guardada. Confirme o registo no backend antes de mostrar sucesso.

Conclusão

Uma aplicação empresarial útil para Rokid começa com hardware empresarial e acesso ao SDK confirmados, uma demo Android funcional e um pequeno fluxo de captura e revisão. Em seguida, os programadores acrescentam feedback claro no ecrã, entrada de voz validada e a integração autenticada com o backend da empresa. Os testes no dispositivo de destino e a implementação através do canal empresarial suportado transformam o protótipo numa ferramenta que pode melhorar a documentação no terreno e reduzir a introdução manual de dados.

João Noronha

Escrito por

João Noronha

Perguntas frequentes

Este artigo

Utilize a documentação do Sprite Enterprise SDK, o Android Studio e a demo empresarial correspondente, depois de confirmar a compatibilidade do hardware e o acesso comercial. Utilize o Rokid AI Enterprise quando o processo de integração fornecido o exigir.

Não. Confirme com a Rokid a correspondência entre o modelo e o firmware. A documentação pública do SDK aqui utilizada refere os Glass3 Enterprise.

Sim. O desenvolvimento Android nativo requer configuração do Gradle, código Kotlin ou Java e XML ou outra framework de interface Android. Este guia mostra onde alterar a demo empresarial.

Não. Descreve um controlo. A ativação por voz exige a integração suportada de comandos ou eventos de voz do SDK empresarial.

O comportamento local depende dos serviços do dispositivo e da configuração do SDK. O percurso de ASR na cloud documentado requer conectividade. Teste separadamente qualquer configuração de comandos offline; o envio para um servidor também requer o respetivo acesso à rede.

É uma modificação direcionada da demo, verificada face ao código-fonte documentado, e não uma versão de produção testada em hardware. Adicione proteções de captura, tratamento de tempos limite, revisão, armazenamento seguro e integração com o backend antes da implementação.