Dokumentenscanner mit ML Kit für Android
Verwenden Sie die ML Kit Document Scanner API, um ganz einfach eine Dokumentenscanner-Funktion hinzuzufügen, für Ihre App.
Feature | Details |
---|---|
SDK-Name | play-services-mlkit-document-scanner |
Implementierung | Die Modelle, die Scanlogik und der UI-Ablauf werden dynamisch von Google Play-Dienste. |
Auswirkung auf die App-Größe | Downloadgröße um ca. 300 KB erhöht. |
Initialisierungszeit | Nutzende müssen möglicherweise warten, bis die Modelle, die Logik und der Benutzeroberflächenfluss vor der ersten Verwendung herunterladen. |
Jetzt ausprobieren
Experimentieren Sie mit dem Beispiel-App , um ein Beispiel für die Verwendung dieser API zu sehen.
Hinweis
In der Datei
build.gradle
auf Projektebene müssen Sie die Parameter von Google Maven-Repository in den Abschnitten "buildscript" und "allprojects".Fügen Sie die Abhängigkeit für die ML Kit-Dokumentenscannerbibliothek Ihrem Die Gradle-Datei des Moduls auf App-Ebene, normalerweise app/build.gradle:
dependencies {
// …
implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1'
}
Konfiguration des Dokumentenscanners
Der User Flow für den Dokumentenscanner (mit eigenem Sucherbildschirm) und Vorschaubildschirm) wird vom SDK bereitgestellt. Der Sucher und die Vorschau unterstützen die folgenden anpassbaren Steuerelemente:
- aus der Fotogalerie importieren
- die Anzahl der gescannten Seiten begrenzen,
- Scannermodus (zur Steuerung der Funktionssätze im Ablauf)
Sie können sowohl PDF- als auch JPEG-Dateien für Ihre gescannten Dokumente abrufen.
Instanziieren Sie GmsDocumentScannerOptions
, um die Scanneroptionen zu konfigurieren:
Kotlin
val options = GmsDocumentScannerOptions.Builder() .setGalleryImportAllowed(false) .setPageLimit(2) .setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF) .setScannerMode(SCANNER_MODE_FULL) .build()
Java
GmsDocumentScannerOptions options = new GmsDocumentScannerOptions.Builder() .setGalleryImportAllowed(false) .setPageLimit(2) .setResultFormats(RESULT_FORMAT_JPEG, RESULT_FORMAT_PDF) .setScannerMode(SCANNER_MODE_FULL) .build();
Dokumente scannen
Nachdem Sie Ihr GmsDocumentScannerOptions
erstellt haben, erhalten Sie ein
Instanz von GmsDocumentScanner
. Anschließend können Sie die Scanner-Aktivität starten.
Follower
APIs für Aktivitätsergebnisse
mit AndroidX eingeführt.
Wenn das Scannen des Dokuments abgeschlossen ist, gewährt ein GmsDocumentScanningResult
-Objekt Zugriff auf die Anzahl der gescannten Seiten, die URIs der
im JPEG-Format und im PDF-Format entsprechend der Definition in
setResultFormats
:
Kotlin
val scanner = GmsDocumentScanning.getClient(options) val scannerLauncher = registerForActivityResult(StartIntentSenderForResult()) { result -> { if (result.resultCode == RESULT_OK) { val result = GmsDocumentScanningResult.fromActivityResultIntent(result.data) result.getPages()?.let { pages -> for (page in pages) { val imageUri = pages.get(0).getImageUri() } } result.getPdf()?.let { pdf -> val pdfUri = pdf.getUri() val pageCount = pdf.getPageCount() } } } } scanner.getStartScanIntent(activity) .addOnSuccessListener { intentSender -> scannerLauncher.launch(IntentSenderRequest.Builder(intentSender).build()) } .addOnFailureListener { ... }
Java
GmsDocumentScanner scanner = GmsDocumentScanning.getClient(options); ActivityResultLauncher<IntentSenderRequest> scannerLauncher = registerForActivityResult( new StartIntentSenderForResult(), result -> { if (result.getResultCode() == RESULT_OK) { GmsDocumentScanningResult result = GmsDocumentScanningResult.fromActivityResultIntent(result.getData()); for (Page page : result.getPages()) { Uri imageUri = pages.get(0).getImageUri(); } Pdf pdf = result.getPdf(); Uri pdfUri = pdf.getUri(); int pageCount = pdf.getPageCount(); } }); scanner.getStartScanIntent(activity) .addOnSuccessListener(intentSender -> scannerLauncher.launch(new IntentSenderRequest.Builder(intentSender).build())) .addOnFailureListener(...);
Tipps zur Verbesserung der Leistung
Das Generieren von Dokumentdateien nimmt Zeit in Anspruch und muss verarbeitet werden Stellen Sie daher nur die Ausgabeformate (JPEG, PDF oder beides) bereit, die Sie brauchen.