Android'de ML Kit ile Belge Tarayıcı
Uygulamanıza kolayca belge tarayıcı özelliği eklemek için ML Kiti Belge Tarayıcı API'sini kullanın.
| Özellik | Ayrıntılar |
|---|---|
| SDK adı | play-services-mlkit-document-scanner |
| Uygulama | Modeller, tarama mantığı ve kullanıcı arayüzü akışı, Google Play Hizmetleri tarafından dinamik olarak indirilir. |
| Uygulama boyutunun etkisi | İndirme boyutu yaklaşık 300 KB artar. |
| Başlatma süresi | Kullanıcıların ilk kullanımdan önce modellerin, mantığın ve kullanıcı arayüzü akışının indirilmesini beklemesi gerekebilir. |
Deneyin
Bu API'nin örnek kullanımını görmek için örnek uygulamayı inceleyin.
Başlamadan önce
Proje düzeyindeki
build.gradledosyanızda, Google'ın Maven deposunu hem buildscript hem de allprojects bölümlerine eklediğinizden emin olun.ML Kit Belge Tarayıcı kitaplığına olan bağımlılığı, modülünüzün uygulama düzeyindeki gradle dosyasına (genellikle app/build.gradle) ekleyin:
dependencies {
// …
implementation 'com.google.android.gms:play-services-mlkit-document-scanner:16.0.0'
}
Belge Tarayıcı yapılandırması
Belge Tarayıcı kullanıcı işlemleri akışı (özel bir vizör ekranı ve önizleme ekranı içerir) SDK tarafından sağlanır. Vizör ve önizleme ekranı, aşağıdaki özelleştirilebilir kontrolleri destekler:
- Fotoğraf galerisinden içe aktarma
- Taranan sayfa sayısına sınır koyma
- tarayıcı modu (akıştaki özellik gruplarını kontrol etmek için)
Taranan belgeleriniz için hem PDF hem de JPEG dosyalarını alabilirsiniz.
Tarayıcı seçeneklerini yapılandırmak için GmsDocumentScannerOptions örneğini oluşturun:
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();Dokümanları tara
GmsDocumentScannerOptions oluşturduktan sonra GmsDocumentScanner örneği alın. Ardından, AndroidX'te kullanıma sunulan Activity Result API'lerini kullanarak tarayıcı etkinliğini başlatabilirsiniz.
Belge tarama işlemi tamamlandığında GmsDocumentScanningResult nesnesi, taranan sayfa sayısına, JPEG biçimindeki resimlerin URI'lerine ve setResultFormats aracılığıyla tanımlanan PDF'ye erişim sağlar:
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(...);
Performansı artırmaya yönelik ipuçları
Doküman dosyaları oluşturmak zaman alır ve işlem gücü gerektirir. Bu nedenle, yalnızca gerçekten ihtiyacınız olan çıkış biçimlerini (JPEG, PDF veya her ikisi) isteyin.