0
0
mirror of https://github.com/markusfisch/BinaryEye.git synced 2024-09-20 12:02:17 +02:00
Yet another barcode scanner for Android
Go to file
Markus Fisch 9b1445efb5 Draw a dotted rectangle around ROI below Kitkat
Because Canvas.clipRect() doesn't work very well below
Kitkat.
2020-05-30 14:32:35 +02:00
app Draw a dotted rectangle around ROI below Kitkat 2020-05-30 14:32:35 +02:00
fastlane/metadata/android Add spanish translation 2020-05-29 08:57:24 +02:00
gradle/wrapper Check for macOS Catalina and use appropriate tools 2020-02-20 15:08:06 +01:00
svg Add a drop shadow to crop handle 2020-05-30 12:34:32 +02:00
.gitignore Add gradle.properties to repository 2019-11-14 12:58:43 +01:00
build.gradle Remove special treatment for macOS Catalina 2020-05-04 13:25:55 +02:00
CHANGELOG.md Advance version number to 1.29.0 2020-05-22 13:39:41 +02:00
CONTRIBUTING.md Fix typo in remark about commit messages 2020-02-08 12:43:57 +01:00
gradle.properties Add gradle.properties to repository 2019-11-14 12:58:43 +01:00
gradlew Update gradle, build tools and remove Error Prone 2019-05-07 17:05:50 +02:00
gradlew.bat Update gradle, build tools and remove Error Prone 2019-05-07 17:05:50 +02:00
LICENSE Added a license 2017-08-27 16:30:32 +02:00
Makefile Add a rule to dump meminfo of debug version 2020-05-15 13:38:51 +02:00
PRIVACY.md Fix line break in PRIVACY 2019-11-11 16:53:34 +01:00
README.md Add a note about using the NDK and RenderScript 2020-05-19 22:12:19 +02:00
settings.gradle Include CameraView library over jitpack 2018-03-01 14:34:45 +01:00

Binary Eye

Yet another barcode scanner for Android. As if there weren't enough.

This one is free, without any ads and open source.

Works in portrait and landscape orientation, can read inverted codes, comes in Material Design and can also generate barcodes.

Binary Eye uses the ZXing ("Zebra Crossing") barcode scanning library.

Screenshots

Screenshot Scanning Screenshot Result Screenshot Compose Barcode

Download

Get it on F-Droid Get it on Google Play

Supported Barcode Formats

Read

ZXing can read the following barcode formats:

Generate

ZXing can generate the following barcode formats:

RenderScript

This app uses RenderScript to resize and rotate the camera image. Unfortunately, RenderScript has some nasty gotchas.

RenderScript.forceCompat()

It's necessary to call RenderScript.forceCompat() on some devices/roms.

RenderScript.forceCompat() needs to be run before any other RenderScript function and unfortunately there is no way to know if invoking forceCompat() is necessary or not.

If RenderScript.forceCompat() is necessary, a RSRuntimeException will be thrown and the only option is to restart the app, this time with calling forceCompat() first.

Calling RenderScript.forceCompat() means the processing is done in software so you probably don't want to enable it by default.

macOS Catalina

At the time of writing, calling RenderScript.forceCompat() in a build made on macOS Catalina with build tools 29.0.3 will crash the app. This is a bug in the build tools for Catalina.

So do not build release builts on macOS Catalina with build tools 29.0.3.

Building on Linux with 29.0.3 works fine.

Side by Side NDK

At the time of writing, it's important to not have the NDK available when compiling the custom rotation kernel. This will produce a broken build for some ARMv7 devices running Android 6 (e.g. One Plus X, Yotaphone 2, Moto E) while it works for newer Android versions.

App Bundle

At the time of writing, ./gradlew bundleRelease will produce a broken App Bundle without the necessary RenderScript libraries. This is another bug in the build tools.

2D barcodes

If you want to fork this and are only interested in reading 2D barcodes (like QR or Aztec), you may want to remove the custom rotation kernel altogether as ZXing can read 2D barcodes in any orientation.

This will make your app a bit simpler and saves you from compiling a custom RenderScript kernel for each architecture you want to support.