BinaryEye
Yet another barcode scanner for Android
Install / Use
/learn @markusfisch/BinaryEyeREADME
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-C++ ("Zebra Crossing") barcode scanning library.
If you find this app useful and wish to support its continued development,
you can buy me a coffee or
send some Bitcoin decimals to bc1q2guk2rpll587aymrfadkdtpq32448x5khk5j8z.
<a href="https://www.buymeacoffee.com/markusfisch" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;"/></a> <a href="https://liberapay.com/markusfisch/" target="_blank"><img src="https://liberapay.com/assets/widgets/donate.svg" alt="Liberapay" style="height: 60px !important"/></a> <a href="https://ko-fi.com/markusfisch" target="_blank"><img src="https://storage.ko-fi.com/cdn/brandasset/kofi_s_tag_dark.png" alt="Ko-fi" style="height: 60px !important"/></a>
Screenshots
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/screencap-scanning.png" alt="Screenshot Gallery" width="160"/> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/screencap-scanning-cropped.png" alt="Screenshot Gallery" width="160"/> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/screencap-decoded.png" alt="Screenshot Theme" width="160"/> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/screencap-compose-barcode.png" alt="Screenshot Editor" width="160"/>
Download
<a href="https://f-droid.org/en/packages/de.markusfisch.android.binaryeye/"><img alt="Get it on F-Droid" src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" height="80"/></a> <a href="https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye"><img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="80"/></a>
Supported Barcode Formats
Read
ZXing can read the following barcode formats:
- AZTEC
- CODABAR
- CODE 39
- CODE 93
- CODE 128
- DATA MATRIX
- DX FILM EDGE
- EAN 8
- EAN 13
- ITF
- MAXICODE (partial)
- PDF417
- QR CODE
- Micro QR Code
- rMQR Code
- RSS 14
- RSS EXPANDED
- UPC A
- UPC E
- UPC EAN EXTENSION
Generate
ZXing can generate the following barcode formats:
Deep Links
You can invoke Binary Eye with a web URI intent from anything that can open URIs.
Decoding
- binaryeye://scan (note: GitHub does not render this as clickable link)
- http(s)://markusfisch.de/BinaryEye
If you want to get the scanned contents, you can add a ret query
argument with a (URL encoded) URI template. For example:
http://markusfisch.de/BinaryEye?ret=http%3A%2F%2Fexample.com%2F%3Fresult%3D{RESULT}
Supported symbols are:
RESULT- scanned contentRESULT_BYTES- raw result as a hex stringFORMAT- barcode format
Encoding
You can use the URL arguments content and format to automatically
preset this data. For example:
- binaryeye://encode?content=Test&format=QR_CODE
- http(s)://markusfisch.de/encode?content=Test&format=QR_CODE
- http(s)://markusfisch.de/encode?content=Test&format=DATA_MATRIX
If you want the code to be generated immediately, add execute=true (or
just execute).
Intents
You can also use Binary Eye from other apps by using an Intent.
If you prefer to integrate a barcode scanner into your app, take a look at BarcodeScannerView (if you also want to use ZXing-C++) or read how to scan barcodes with ML Kit on Android.
SCAN Intent
Use the com.google.zxing.client.android.SCAN Intent with
startActivityForResult() like this:
startActivityForResult(
Intent("com.google.zxing.client.android.SCAN"),
SOME_NUMBER
)
And process the result in onActivityResult() of your
Activity:
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
when (requestCode) {
SOME_NUMBER -> if (resultCode == RESULT_OK) {
val result = data.getStringExtra("SCAN_RESULT")
…
}
}
}
If you're using AndroidX, this would be the new, recommended way:
class YourActivity : AppCompatActivity() {
private val resultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == RESULT_OK) {
val content = result.data?.getStringExtra("SCAN_RESULT")
…
}
}
fun openScanner() {
resultLauncher.launch(Intent("com.google.zxing.client.android.SCAN"))
}
}
Forwarding scans via Bluetooth
Note: The companion apps aren't developed nor maintained by the author of Binary Eye.
In order to set up Bluetooth forwarding to a computer:
- Pair your devices (phone and pc) if not paired already
- Download and run a companion app:
- Windows: https://github.com/KamaleiZestri/BinaryReceptorWindows
- Linux: https://github.com/sean666888/bin_eye_bt_receiver
- In the settings of Binary Eye, enable "Forward scans with Bluetooth" and select the appropriate target host device that is running the companion application.
Related Skills
node-connect
335.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
335.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.5kCommit, push, and open a PR
