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.
Screenshots
Download
Supported Barcode Formats
Read
ZXing can read the following barcode formats:
- AZTEC
- CODABAR
- CODE 39
- CODE 93
- CODE 128
- DATA MATRIX
- EAN 8
- EAN 13
- ITF
- MAXICODE (partial)
- PDF417
- QR CODE
- Micro QR Code
- RSS 14
- RSS EXPANDED
- UPC A
- UPC E
- UPC EAN EXTENSION
Generate
ZXing can generate the following barcode formats:
Deep Links and Intents
Deep Links
You can invoke Binary Eye with a web URI intent from anything that can open URIs. There are two options:
- binaryeye://scan
- 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
SCAN Intent
You can also use Binary Eye from other apps by using 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 : Activity() {
private val resultLauncher = registerForActivityResult(StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val scan = result.data?.getStringExtra("SCAN_RESULT")
β¦
}
}
fun openScanner() {
resultLauncher.launch(Intent("com.google.zxing.client.android.SCAN"))
}
}