qrscan 1.1.1
qrscan: ^1.1.1 copied to clipboard
One-shot Flutter QR/barcode scanner: open camera, first decode, string back. Android CameraX+ZXing, iOS Vision. Not a widget.
1.1.1 - 2026-08-22 #
Listing only. No API change.
- pub.dev
topicsand screenshot - One-shot wording in the package description
- Library dartdoc
1.1.0 - 2026-08-22 #
iOS is the same product as Android.
- iOS album / path / bytes: QR first, EXIF orientation, invert, 90° retries, Codabar on iOS 15+
- iOS scanner: viewfinder + scan line + torch + 取消. No in-scanner album
- iOS
CAMERA_IN_USEwhen another app holds the camera - Android
scan()no longer has a gallery button — that isscanPhoto() - Dart rejects empty
scanPath/scanBytes/generateBarCode(release too, not justassert) NoActivity(NO_ACTIVITY) documented
1.0.2 - 2026-08-22 #
- Album / path / bytes: if the first pass misses, retry at 90° / 180° / 270° (phone photos stored sideways; vertical Code 128)
- Decoder harness: 63 fixtures (field ISBT / 发血单 / 微信支付宝样式, JPEG, blur, dark, low contrast, noise, screenshot chrome, inverted, negatives)
TEST-REPORT.mdgenerated by CI
1.0.1 - 2026-08-22 #
- README demo GIF again: tap Scan, first decode, string back
- Example app is one screen, one primary button
1.0.0 - 2026-08-22 #
API freeze. Decoder covered by a 30-case JVM harness that uses the same format order as QrDecoder.
generateBarCodeencodes UTF-8 (Chinese / non-Latin no longer become?)- Codabar keeps start/stop (
RETURN_CODABAR_START_END) - Album / path / bytes: HybridBinarizer then GlobalHistogramBinarizer
- CI runs
tool/decoder-harness(QR, Latin-1, UTF-8 without ECI, Code 128/39/93, Codabar, EAN-13/8, UPC-A/E, ITF, Data Matrix, PDF417, Aztec, invert, noise)
Camera scan() is still one-shot. #90 (SM-A530W) stays open until that device retests.
0.4.0 - 2026-08-21 #
Revive for modern Flutter.
- Dart 3 / Flutter 3.10+
- Android embedding v2 only (CameraX + ZXing core)
- Real iOS scanning via Vision (camera, album, path, bytes)
- Drop JitPack
leyan95/android-zxingLibraryand storage permissions - compileSdk 35, minSdk 21, Android 13+ photo picker
- CODE_128 / CODE_39 / EAN / PDF417 / Aztec / Data Matrix
- Scanner follows device orientation (no portrait lock). CameraX
setTargetRotationon rotate; overlay recenters between top bar and torch (#45 #105 #113) - iOS preview + sample-buffer
videoOrientationfollow the interface when the host allows landscape - Decode QR (TRY_HARDER) before other 2D before 1D, so a dense QR is not stolen as UPC-E (#85)
- Stop forcing UTF-8. BYTE_SEGMENTS → UTF-8 only if valid-with-high-bit, else ISO-8859-1 (#40)
- Camera bind failure closes the scanner. Dart gets
CAMERA_START_FAILED/CAMERA_IN_USEinstead of a black Activity (#81 #130) - iOS Vision: QR/2D before 1D;
requestAccessif.notDetermined;CAMERA_START_FAILEDif no back camera - GitHub Actions CI
- Homepage updated to
wu9007/qrcode_scanner