Iniciar cĂąmera via callback
Esta modalidade centraliza o fluxo de lançamento da cĂąmera scanner em um Ășnico mĂ©todo, launchScanner
, que junto com a utilização de callbacks para o manuseio de respostas, simplifica o processo de implementação e leitura de códigos.
Para essa implementação, vocĂȘ deverĂĄ diferenciar qual tipo de cĂłdigo deseja escanear atravĂ©s da classe ScanType
, e fornecer o callback a ser chamado com o resultado da operação, como mostrado no exemplo abaixo e nas descriçÔes dos campos a serem preenchidos.
val cameraScanner = MPManager.cameraScanner
/**
* iniciar cĂąmera para escanear cĂłdigo QR
**/
cameraScanner.launchScanner(ScanType.CAMERA_SCANNER_QR) { response ->
response
.doIfSuccess { result -> // Manuseio do resultado de sucesso do scanner result.message }
.doIfError { error -> // Manuseio do erro resultante do scanner error.message.orEmpty() }
}
/**
* iniciar cĂąmera para escanear cĂłdigo de barras
**/
cameraScanner.launchScanner(ScanType.CAMERA_SCANNER_BARCODE) { response ->
response
.doIfSuccess { result -> // Manuseio do resultado de sucesso do scanner result.message }
.doIfError { error -> // Manuseio do erro resultante do scanner error.message.orEmpty() }
}
final CameraScanner cameraScanner = MPManager.INSTANCE.getCameraScanner();
final Function<MPResponse<CameraScannerResponse>, Unit> callback = new Function<MPResponse<CameraScannerResponse>, Unit>() {
@Override
public Unit apply(MPResponse<CameraScannerResponse> response) {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Manusear a resposta bem-sucedida
CameraScannerResponse cameraScannerResponse = response.getData();
String result = cameraScannerResponse.getMessage();
// ... Fazer algo com o resultado
} else {
// Manusear o erro na resposta
String errorMessage = response.getError();
// ... Fazer algo com o erro
}
return Unit.INSTANCE;
}
};
/**
* Iniciar o escĂąner de cĂąmera QR ou Barra com o callback: ScanType.CAMERA_SCANNER_QR - ScanType.CAMERA_SCANNER_BARCODE
*/
cameraScanner.launchScanner(ScanType.CAMERA_SCANNER_QR, callback);
Campo | Descrição |
ScanType | Classe que contĂ©m os tipos de cĂłdigo a serem lidos pela cĂąmera. Os valores possĂveis sĂŁo: - CAMERA_SCANNER_QR : representa a leitura de cĂłdigos QR.- CAMERA_SCANNER_BARCODE : representa a leitura de cĂłdigos de barras. |
callback (MPResponse | Callback a ser invocado com o resultado da operação do escùner. Recebe um objeto MPResponse com um CameraScannerResponse . |