Recursos para IA

Configurar câmera (scanner)

Um dos recursos do terminal Point que poderá ser utilizado pelo seu SmartApp é a câmera como scanner de um código QR ou de barras, essencial para pagamentos presenciais como Rapipago ou Pago Fácil . Além disso, também pode ser utilizada para escanear códigos QR próprios do estabelecimento e códigos de barras de produtos.

Para implementar este recurso, utilize o método launchScanner, da classe cameraScanner dentro do objeto MPManager, e diferencie qual tipo de código deseja escanear através da classe ScanType, podendo ser:

  • CAMERA_SCANNER_QR: representa a leitura de códigos QR.
  • CAMERA_SCANNER_BARCODE: representa a leitura de código de barras.

Além disso, através da classe ScannerFlowRequestData você também poderá controlar algumas funcionalidades visuais da tela do scanner:

FuncionalidadeTipoDescrição
isLanternOnBooleanIndica se o scanner deve abrir com a lanterna do terminal ligada. Se sim, true e, se não, false. Essa funcionalidade não está disponível para leitura de códigos QR, apenas para código de barras.
initialOrientationStringDefine a orientação inicial da tela onde o scanner será exibido, podendo ser vertical ou horizontal. Os valores possíveis são:

- null: a orientação será determinada pela implementação padrão da tela do scanner, que atualmente é sempre retrato (Portrait).
- 0: orientação definida como paisagem (Landscape). Recomenda-se passar este valor como ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE.
- 1: orientação definida como retrato (Portrait). Recomenda-se passar este valor como ActivityInfo.SCREEN_ORIENTATION_PORTRAIT.

Veja abaixo um exemplo de implementação do recurso de scanner.

val cameraScanner = MPManager.cameraScanner
/**
* lançar câmera para escanear  código QR com request data
**/
val requestData = ScannerFlowRequestData(
   isLanternOn = true, /** Controle para ligar a lanterna, valor booleano true */
   initialOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE /** Controle para ligar a lanterna, valor booleano true */
)
cameraScanner.launchScanner(ScanType.CAMERA_SCANNER_QR, requestData) { response ->
   response
       .doIfSuccess { result -> /** Tratar resultado bem-sucedido do scanner (result.message) */ }
       .doIfError { error -> /** Tratar erro do scanner (error.message.orEmpty()) */ }
}
/**
* lançar câmera para escanear código de barras com request data
**/
val requestData = ScannerFlowRequestData(
   isLanternOn = false, /** Controle para desligar a lanterna, valor booleano false */
   initialOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT /** Controle para a orientação inicial da tela como Portrait, valor int 1 */
)
cameraScanner.launchScanner(ScanType.CAMERA_SCANNER_BARCODE, requestData) { response ->
   response
       .doIfSuccess { result -> /** Tratar resultado bem-sucedido do scanner (result.message) */ }
       .doIfError { error -> /** Tratar erro do scanner (error.message.orEmpty()) */ }
}