Android'de ML Kit ile belge tarayıcı
Uygulamanıza kolayca belge tarayıcı özelliği eklemek için ML Kit 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 boyutu etkisi | İndirme boyutunda yaklaşık 300 KB artış. |
Başlatma süresi | Kullanıcıların model, mantık ve kullanıcı arayüzü akışının uygulamayı indirin. |
Deneyin
Bu API'nin örnek kullanımını görmek için örnek uygulamayı inceleyin.
Başlamadan önce
Proje düzeyindeki
build.gradle
dosyanızda, Google'ın Maven deposunu hem buildscript hem de allprojects bölümlerinize eklediğinizden emin olun.ML Kit doküman tarayıcısı kitaplığının bağımlılığını, 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-beta1'
}
Belge Tarayıcı yapılandırması
Belge tarayıcı kullanıcı işlemleri akışı (özel bir vizör ekranı içerir) ve önizleme ekranı) SDK tarafından sağlanır. Vizör ve önizleme ekranı aşağıdaki özelleştirilebilir kontrolleri destekler:
- fotoğraf galerisinden içe aktarılıyor
- taranan sayfa sayısı için bir sınır ayarlama
- tarayıcı modu (akıştaki özellik kümelerini kontrol etmek için)
Taranan dokümanlarınız için hem PDF hem de JPEG dosyalarını alabilirsiniz.
Tarayıcı seçeneklerini yapılandırmak için GmsDocumentScannerOptions
sınıfını örnekleyin:
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. Ardından tarayıcı etkinliğini başlatabilirsiniz
takip ediliyor
Etkinlik Sonucu API'leri
AndroidX'te kullanıma sunuldu.
Belge tarama işlemi tamamlandığında GmsDocumentScanningResult
nesnesi taranan sayfa sayısına, dokümanın URI'larına
JPEG ve PDF formatlarındaki resimler,
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(...);
Performansı artırmaya yönelik ipuçları
Doküman dosyalarının oluşturulmasının zaman aldığını ve işleme gücü gerektirdiğini göz önünde bulundurarak yalnızca gerçekten ihtiyacınız olan çıkış biçimlerini (JPEG, PDF veya her ikisi) isteyin.