barcode_qr_scanner 0.2.3
barcode_qr_scanner: ^0.2.3 copied to clipboard
Flutter barkod ve QR kod okuma paketi. Android ML Kit ve iOS AVFoundation desteği, çoklu tarama ve tekrar filtresi.
barcode_qr_scanner #
Flutter için barkod ve QR kod okuma paketi.
Özellikler #
- QR kod, EAN-13, EAN-8, Code 128, Code 39 ve daha fazla format
- Canlı kamera önizlemesi
- Flaş açma/kapama
- Taramayı duraklatma ve devam ettirme
- Tarama alanı overlay (köşe çerçeveli kare alan)
- Çoklu tarama modu — aynı kodu tekrar okumayı engelleme
- Android (ML Kit + CameraX) ve iOS (AVFoundation) desteği
Kurulum #
dependencies:
barcode_qr_scanner: ^0.2.3
Android #
<uses-permission android:name="android.permission.CAMERA" />
Android 6+ için çalışma zamanında izin istemeniz gerekir:
import 'package:permission_handler/permission_handler.dart';
final status = await Permission.camera.request();
if (status.isGranted) {
// CodeScannerView göster
}
iOS #
<key>NSCameraUsageDescription</key>
<string>Barkod ve QR kod taramak için kamera erişimi gereklidir.</string>
Kullanım #
import 'package:barcode_qr_scanner/barcode_qr_scanner.dart';
final controller = CodeScannerController();
CodeScannerView(
controller: controller,
onDetect: (ScanResult result) {
print('Okunan: ${result.rawValue}');
print('Format: ${result.format}');
},
)
Tarama modları #
Tek tarama (ScanMode.single) — varsayılan #
İlk kod okunduğunda tarama otomatik duraklar. CodeScannerView varsayılan olarak bu modu kullanır.
CodeScannerView(
scanMode: ScanMode.single,
onDetect: (result) { ... },
)
Çoklu tarama (ScanMode.continuous) #
Sürekli tarar. Aynı kodun tekrar tetiklenmesini filtreler.
CodeScannerView(
scanMode: ScanMode.continuous,
duplicateFilter: DuplicateFilter.session, // oturum boyunca bir kez
onDetect: (result) { ... },
)
// veya süre bazlı filtre
CodeScannerView(
duplicateFilter: DuplicateFilter.cooldown,
duplicateCooldown: const Duration(seconds: 3),
)
Filtreyi sıfırlamak için:
controller.resetDuplicateFilter();
Overlay #
CodeScannerView(showOverlay: false)
CodeScannerView(
overlay: ScannerOverlay(
scanAreaSize: 280,
borderColor: Colors.greenAccent,
),
)
Controller #
await controller.toggleTorch();
await controller.setTorch(true);
await controller.pause();
await controller.resume();
controller.resetDuplicateFilter();
Örnek uygulama #
cd example
flutter run