For the complete documentation index, see llms.txt. This page is also available as Markdown.

Iniciar detecção de documentos

Iniciando a Activity

Depois de criar o DocumentDetector, inicie a DocumentDetectorActivity passando este objeto como parâmetro via extra do intent:

Exemplo

    private fun startDocumentDetector(upload: Boolean = false) {
        val documentDetector = buildDocumentDetector(upload)
        val intent = Intent(this, DocumentDetectorActivity::class.java)
        intent.putExtra(DocumentDetector.PARAMETER_NAME, documentDetector)
        startActivityForResult(intent, REQUEST_CODE)
    }

Obtendo o resultado

Para obter o DocumentDetectorResult objeto, que contém as capturas feitas pelo SDK, sobrescreva o onActivityResult método na mesma Activity em que você iniciou a DocumentDetectorActivity.

Mais detalhes sobre as respostas de erro na seção de Resposta do SDK

Exemplo

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
            val result = data?.getSerializableExtra(
                DocumentDetectorResult.PARAMETER_NAME
            ) as DocumentDetectorResult

            if (!result.wasSuccessful()) {
                result.sdkFailure?.let {
                    onSdkFailure(it)
                }
                return
            }

            println("DocumentDetectorResult: $result")
        } else {
            println("O usuário cancelou a operação")
        }
        super.onActivityResult(requestCode, resultCode, data)
    }

    private fun onSdkFailure(sdkFailure: SDKFailure?) {
        when (sdkFailure) {
            is InvalidTokenReason -> {
                println("SDKFailure: O token inserido como parâmetro não é válido, revise-o por favor")
            }
            is PermissionReason -> {
                println("SDKFailure: O usuário não concedeu as permissões necessárias")
            }
            is AvailabilityReason -> {
                println("SDKFailure: As instruções são enviadas em: ${sdkFailure.message}")
            }
            is NetworkReason -> {
                println("SDKFailure: Houve um problema com a conexão com a internet")
            }
            is ServerReason -> {
                println("SDKFailure: Houve um problema em qualquer comunicação com os servidores da CAF, avise-nos!")
            }
            is SecurityReason -> {
                println("SDKFailure: Houve um problema de segurança no dispositivo do usuário")
            }
            is StorageReason -> {
                println("SDKFailure: Houve um problema com o armazenamento interno do dispositivo do usuário")
            }
            is LibraryReason -> {
                println("SDKFailure: Houve um problema com a biblioteca interna")
            }
            else -> {
                println("SDKFailure: Motivo desconhecido")
            }
        }
    }

Atualizado