Yet another barcode scanner for Android

Overview

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 Gallery Screenshot Gallery Screenshot Theme Screenshot Editor

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.

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.

Comments
  • Crashes Seconds after startup

    Crashes Seconds after startup

    I see the camera image for about 1-2 seconds, then the App quits silently to the launcher.

    Device: Samsong Galaxy S5 SM G900F Android 9 LineageOS 16-microG (no Google Services) klte

    I can provide additional information, but need instructions on how to do that ;)

    opened by DamageIncorporated 22
  • Post Matrix Code

    Post Matrix Code

    I don't know of this is the right place. But did anybody try to extract the tracking code (Sendungsnummer) from the new German Post Stamp's Matrix Codes?

    That would be a cool feature for Binary Eye

    opened by white-gecko 21
  • Alternative download source

    Alternative download source

    Would you mind attaching the .apk to your /releases for folks without Playstore? Or even better, having your app available at F-Droid? It looks pretty privacy-friendly, so us tin-foils would really appreciate it. For F-Droid, the blob in libs/ might be an issue – but there's always my repo if you can provide the .apk :wink:

    opened by IzzySoft 21
  • Unable to

    Unable to "forget" WiFi entry added via BinaryEye

    Greetings,

    I created a WiFi network connection profile -- skynet-guest -- by way of scanning a QR code using Binary Eye and the resulting entry will not allow for "forgetting" the connection profile. The only option provided is "Disconnect". WiFi-connection-profile-options

    As a result, I am unable to "Forget" the connection profile. WiFi-connection-details

    The WiFi profile also does not show up under the "Saved networks". WiFi-saved-networlks

    I tried clearing Binary Eye's cache and storage to no avail; still no option to forget the connection profile.

    opened by jmtysonjr 15
  • Crashes after a few quick scans

    Crashes after a few quick scans

    Hello! I'm using your great little app for attempting something crazy: data exfiltration via QR codes. See qrxfil for the project details, but suffice to say I am aiming to scan dozens of QR codes of ~1KB payload in quick succession.

    Issue: App crashes (back to android home) after ~15 to 20 QR code scans (in ~20 seconds)

    Expected behaviour: Scan hundreds of QR codes without crash (at a rate of 1 to 2 per second)

    Reproduction steps

    Initially using BinaryEye version 1.37.0, reproduced on 1.39.0 (F-Droid)

    • Generate a bunch of QR codes of ~1KB data (I used qrxfil on a 500KB file, creating ~500 numbered PNGs to scan)
    • Enable Scan Continously
    • In an image viewer, open the first QR code image
    • When a QR code is recognized (vibration), move to the next one
    • After a few dozen, Android shows homepage without an explanation

    Conjectures The crash seems to happen after I scan a few dozen codes, each of which shows a Toast containing the 1KB of decoded text (base64 strings), all overlapping with each other. It is possible the Toast creation logic gets an error when drawing one too many, doesn't handle it, and crashes? If so, disabling the Toast of QR contents would make the issue disappear. Worth investigating?

    Note I have not captured any logs pointing to reason for homepage, and haven't done any investigation as to what's wrong, am just reporting the issue naively for now. Expect more digging.

    Am happy providing logs if I can, and can share sample QR codes that trigger issues.

    opened by OverkillGuy 11
  • Possibility to open the correct application, depending on the content of the code read

    Possibility to open the correct application, depending on the content of the code read

    Hi,

    After scaning a barcode, can you add a button to open the application in connection with the code read.

    Examples :

    • if the code contain an URL → the button can open the webbrowser
    • if the code start with mailto: → the button can open the mail client
    • if the code is a vCard BEGIN:VCARD → the button can open the contact app
    • ...

    You can see some other one on this page : https://github.com/zxing/zxing/wiki/Barcode-Contents

    Thanks !

    opened by Nico207 11
  • 'Copy to clipboard' and 'Share as TXT' produced unacceptable results

    'Copy to clipboard' and 'Share as TXT' produced unacceptable results

    The following code may need to be optimized because it produces results like this

    █████████████████████████████ █████████████████████████████ ████ ▄▄▄▄▄ █▀█ █ █ ▄▄▄▄▄ ████ ████ █ █ █▄█▄▄▀█ █ █ ████ ████ █▄▄▄█ █ ▄▄█ █▄▄▄█ ████ ████▄▄▄▄▄▄▄█ █▄█▄█▄▄▄▄▄▄▄████ ████ ▄▀▄██▄▄▀█▄ ▄▀▄▄▄█ ▀████ ████ ▄▀▀█▄ ▀█▄▄▀ ▄█▀█▀ ████ ███████▄▄▄▄█▀▄ ▄█▀ ██▀▀█▄████ ████ ▄▄▄▄▄ █▄█▀▄▄█ ▀██ ▀████ ████ █ █ █▀ ▄█▄ ▀▄▄ ▄▀████ ████ █▄▄▄█ █▀█▀ ▀▄▄▀█▀ ▀ ████ ████▄▄▄▄▄▄▄█▄█▄██▄█▄███▄█████ █████████████████████████████ █████████████████████████████

    https://github.com/markusfisch/zxing-cpp/blob/416ffd8fe7473d2620a20ec2a75f5aab901ead7c/wrappers/aar/zxingcpp/src/main/java/de/markusfisch/android/zxingcpp/ZxingCpp.kt#L288

    opened by meiMingle 10
  • Add history export feature

    Add history export feature

    This would allow to export the history as CSV file. Currently it works, but the code doesn't look good and only exports the content. I would like to also export the time and the type. Also it allows to export binary data to CSV, does this even make any sense? Suggestions are welcome.

    TODO:

    • [x] Escape content if needed
    • [x] Reorganize usage of the db to be accessed by a repo/usecase ?!
    • [x] Add some real res strings, don't use hard-coded stuff...
    opened by molikuner 10
  • Issue: Creating new Barcode, I get always the first one I've ever created

    Issue: Creating new Barcode, I get always the first one I've ever created

    Look. If I create a new barcode and I'm just going to share/export into a "Simple Draw" (Zeichenblock) app, I do get always the image for "http://schlüsseldienst-frickenhausen.de", an address which I've made once (I know this should've been "//xn--schlusseldienst-frickenhausen-46c.de"). Now if I'm trying to make a new image for example for "https://github.com/metadings", this exported to my Draw app, I do always get the stupid OLD image !

    (There is the file intern/Android/data/de.markusfisch.android.binaryeye/cache/shared_barcode.png which I can copy to somewhere else :smiley_cat:)

    opened by metadings 8
  • Scan history - share the whole list instead of specific items

    Scan history - share the whole list instead of specific items

    Right now only specific history items can be shared. It would be good to have an option to share the whole history as a list too.

    BTW the app is very good. Light, fast, has all the features it needs (besides sharing the whole history list :) )

    opened by gradinaruvasile 8
  • Add informations about the code

    Add informations about the code

    Hi, it could be great if we can have some informations about the scanned code. After a scan, you could display his type (Code39, Code128GS1, Datamatrix... ), his lenght, his raw content...

    Thanks !

    opened by Nico207 8
  • Support for several rear Lenses.

    Support for several rear Lenses.

    Hi, thank you very much for creating a good app.

    Could you add support for multiple rear lenses? If I understand correctly, currently when zooming in, we simply enlarge the image digitally by cropping.

    It would be nice if BinaryEye had similar behavior as the system camera. Currently, depending on the zoom, it switches the lens to a more optimal one. I wonder if there is a publicly available Android API that offers this.

    The purpose of the function is simple, fast, convenient and effective scanning of codes from near and far.

    opened by DienoX 5
  • Restrict Format and Barcode Formats settings ignored.

    Restrict Format and Barcode Formats settings ignored.

    When attempting to scan barcodes continuously, with a restriction set and/or formats selected, these settings seem to be ignored. I.e., After restricting to UPC A, the app still manages to incorrectly scan (the same barcode as) an EAN 13. I assume the incorrect scan is due to rolling shutter and focus issues, but that doesn't account for these settings being ignored.

    opened by Jsewill 2
  • Improving QRCode Decoding on non-ideal images

    Improving QRCode Decoding on non-ideal images

    Hi Folks, Good day. I hope you're doing great! I'm posting this in the issues section as I didn't find any other place to ask it. I'm researching on how to improve the QR Code decoding performance for cases where the image have some imperfections. I'm comparing several libraries for this use case. BinaryEye is a phenomenal App. I love it and its far superior that most of the other ones that we have around. Thanks Markus Fisch. However, there's some cases where I'm still struggling to have it decode QR Codes. Take the attached one for example. It's a QR Code that is decoded fine using a standard USB Reader. I've also tested it with a proprietary Demo Library (dynamsoft) which, surprisingly, decodes it very easily. Unfortunately, being proprietary and with an unreasonably high price make it non affordable for most cases. Two questions comes to mind:

    1. How this proprietary library can decode that image and most of other don't? What kind of "magic" do they do in order to improve the performance?
    2. Is there any way we can achieve same results with BinaryEye (or ZXing-cpp)? Is there a way to pre-process the camera image (with brightness/contrast or color threshold filters for example) or change any App/Library parameters that can yield to same results? I'm pasting the same image I used on the attached video for testing. I Appreciate if any of you guys have suggestions on how to improve decoding performance for these scenarios. Thank you and Best Regards.

    The tests were done on the Galaxy Note 20 Ultra, with Binary Eye 1.57.0 from F-Droid App Store.

    image

    https://user-images.githubusercontent.com/3593635/209444584-a3189fbe-dc7e-4417-a5ad-ef0735e76e3c.mp4

    opened by Sergio- 4
  • scanning the same barcode twice

    scanning the same barcode twice

    If "Scan continuously" is active and "Ignore duplicates" is disabled, I would assume that it would be possible to scan the same code twice in succession. However, scanning the same code again is only possible if a) another action has taken place in between (opening the menu, closing and opening the app, etc) or b) another barcode was scanned in between.

    I'm not sure if this is intended behavior, since this reduces the risk of scanning the same code twice by accident (even tho this is also reduced by the delay between scans). I was trying to get the time between two scans to stop timings. I don't think this is an use case that is common. Therefore I think leaving it as is could also be the right decision.

    opened by jdohm 1
  • Vibrate on scan not working on Android 13

    Vibrate on scan not working on Android 13

    The Option "Vibrate on detection" does not lead to a vibration on detection on Android 13. On an older device using Android 11, this setting works as expected.

    I tried using this code:

    fun Context.getVibrator(): Vibrator = if (beforeS) { @Suppress("DEPRECATION") getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } else { (getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager).defaultVibrator }

    instead of:

    fun Context.getVibrator(): Vibrator = if (beforeS) { @Suppress("DEPRECATION") getSystemService(Context.VIBRATOR_SERVICE) as Vibrator } else { (getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager).defaultVibrator }

    inside the Vibrator.kt, sadly that did not solve the problem.

    Feel free to ask for tests or more information.

    I'm not an Android developer, so the only other idea I had was to set the amplitude of the vibration to 255, but this did not change the behavior.

    I tested on a Pixel 4a 5g and a Pixel 4a with Android 13, and on a Fairphone 4 with Android 11.

    opened by jdohm 5
Releases(1.57.0)
This app contains feature barcode and QR scanner, and video recording in-app.

BarcodeQRScannerAndVideoRecord This app contains feature barcode and QR scanner, and video recording in-app. Scanner using ML Kit and CameraX. Video R

Abdullah Fahmi 1 Dec 23, 2021
Yet another static code analyzer for malicious Android applications

Androwarn Yet another static code analyzer for malicious Android applications Description Androwarn is a tool whose main aim is to detect and warn the

Thomas D. 422 Dec 28, 2022
Yet another ToDo app, but the UI completely written in Jetpack Compose!

Yet another ToDo app, but the UI completely written in Jetpack Compose!

Wisnu Kurniawan 134 Dec 31, 2022
SmartLens uses Google's ML Kit for Barcode scanning, Face recognition, Text recognition, and Image labeling.

SmartLens SmartLens uses Google's ML Kit for Barcode scanning, Face recognition, Text recognition, and Image labeling. ?? Screen Shots ?? Features It

Prince Fahad 2 Sep 14, 2022
Pw0 Framewrok - magical android pentest app 🔮! Pixie Dust, Handshakes, Deauth, Nmap, Port scanner and more!

Pw0 Framework Pw0 Framewrok - magical android pentest app ?? ! Features: Pixie Dust Handshakes Deauth Nmap Port scanner and more! Version: 0.2 Beta Au

Huntmix 17 Sep 27, 2021
Pw0 Framewrok - magical android pentest app 🔮! Pixie Dust, Handshakes, Deauth, Nmap, Port scanner and more!

Pw0 Framework Pw0 Framewrok - magical android pentest app ?? ! Features: Pixie Dust Handshakes Deauth Nmap Port scanner and more! Version: 0.2 Beta Au

Zalexdev 17 Sep 27, 2021
Android MRZ scanner

Android MRZ scanner

Davit Kamavosyan 16 Dec 7, 2022
Non-decompiling Android vulnerability scanner (DC25 demo lab, CB17)

README trueseeing is a fast, accurate and resillient vulnerabilities scanner for Android apps. It operates on Android Packaging File (APK) and outputs

Monolith Works Inc. 0 Jan 14, 2022
A Good Scanner Built With Kotlin

GoodScanner TODO OpenCV Android 프로젝트에 설치 https://webnautes.tistory.com/923 Gaussian Blurring 과 같은 기술을 이용하여 Image의 noise 제거 OpenCV를 이용한 Document Edge D

JoonBeom Park 3 Dec 21, 2021
The Privacy Friendly QR Scanner belongs to the group of Privacy Friendly Apps

Privacy Friendly QR Scanner The Privacy Friendly QR Scanner belongs to the group of Privacy Friendly Apps. The app supports its users in detecting mal

SECUSO 198 Dec 30, 2022
ArchGuard Scanner for scan Git change history, scan source code by Chapi for Java, TypeScript, Kotlin, Go..、Java bytecode use for JVM languages, scan Jacoco test coverage.

Arch Scanner Requirements: JDK 12 Scanner: scan_git - Git commit history scan scan_jacoco - Jacoco scan scan_bytecode - for JVM languages known issues

ArchGuard 27 Jul 28, 2022
PluginScan - Minecraft plugin anti-malware scanner

PluginScan - Minecraft plugin anti-malware scanner PluginScan is a cross-platform java executable analyzer designed to detect malware and other malici

Rikonardo 15 Dec 21, 2022
Just another Quotes app with beautiful UI which shows random quotes from the internet

RandomQuotes Just another Quotes app with beautiful UI which shows random quotes from the internet. Screenshots Libraries Volley Android Material API

Hamza Aziz 5 Mar 2, 2022
android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.

Delicious Android Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play. Fea

Alexander Blom 137 Nov 20, 2022
Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo.

CutoutScreenSupport Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo. Usage whether the mobile phone is cutout

hacket 5 Nov 3, 2022
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack is an all-in-one solution for mobile voice interfaces on Android. It provides every piece of the speech processing puzzle, including voice

Spokestack 57 Nov 20, 2022