mirror of
https://github.com/markusfisch/BinaryEye.git
synced 2024-09-20 03:52:16 +02:00
6dff9992d8
Since the migration to ZXing-C++ this parameter doesn't exist anymore.
160 lines
5.2 KiB
Markdown
160 lines
5.2 KiB
Markdown
# Binary Eye
|
|
|
|
Yet another barcode scanner for Android. As if there weren't [enough][play].
|
|
|
|
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++][zxing_cpp] ("Zebra Crossing") barcode
|
|
scanning library.
|
|
|
|
## 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][aztec]
|
|
* [CODABAR][codabar]
|
|
* [CODE 39][code_39]
|
|
* [CODE 93][code_93]
|
|
* [CODE 128][code_128]
|
|
* [DATA MATRIX][data_matrix]
|
|
* [EAN 8][ean_8]
|
|
* [EAN 13][ean_13]
|
|
* [ITF][itf]
|
|
* [MAXICODE][maxicode] (partial)
|
|
* [PDF417][pdf417]
|
|
* [QR CODE][qr_code]
|
|
* [Micro QR Code][micro_qr_code]
|
|
* [RSS 14][rss]
|
|
* [RSS EXPANDED][rss]
|
|
* [UPC A][upc_a]
|
|
* [UPC E][upc_e]
|
|
* [UPC EAN EXTENSION][upc_ean]
|
|
|
|
### Generate
|
|
|
|
ZXing can generate the following barcode formats:
|
|
* [AZTEC][aztec]
|
|
* [CODABAR][codabar]
|
|
* [CODE 39][code_39]
|
|
* [CODE 128][code_128]
|
|
* [DATA MATRIX][data_matrix]
|
|
* [EAN 8][ean_8]
|
|
* [EAN 13][ean_13]
|
|
* [ITF][itf]
|
|
* [PDF 417][pdf417]
|
|
* [QR CODE][qr_code]
|
|
* [UPC A][upc_a]
|
|
|
|
## 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:
|
|
|
|
1. [binaryeye://scan](binaryeye://scan)
|
|
2. [http(s)://markusfisch.de/BinaryEye](http://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}](http://markusfisch.de/BinaryEye?ret=http%3A%2F%2Fexample.com%2F%3Fresult%3D{RESULT})
|
|
|
|
Supported symbols are:
|
|
|
|
* `RESULT` - scanned content
|
|
* `RESULT_BYTES` - raw result as a hex string
|
|
* `FORMAT` - 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()][start_activity] like this:
|
|
|
|
```kotlin
|
|
startActivityForResult(
|
|
Intent("com.google.zxing.client.android.SCAN"),
|
|
SOME_NUMBER
|
|
)
|
|
```
|
|
|
|
And process the result in [onActivityResult()][on_activity_result] of your
|
|
`Activity`:
|
|
|
|
```kotlin
|
|
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][intent_result]:
|
|
|
|
```kotlin
|
|
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"))
|
|
}
|
|
}
|
|
```
|
|
|
|
[play]: https://play.google.com/store/search?q=barcode%20scanner&c=apps
|
|
[zxing_cpp]: https://github.com/zxing-cpp/zxing-cpp
|
|
[kotlin]: http://kotlinlang.org/
|
|
[aztec]: https://en.wikipedia.org/wiki/Aztec_Code
|
|
[codabar]: https://en.wikipedia.org/wiki/Codabar
|
|
[code_39]: https://en.wikipedia.org/wiki/Code_39
|
|
[code_93]: https://en.wikipedia.org/wiki/Code_93
|
|
[code_128]: https://en.wikipedia.org/wiki/Code_128
|
|
[data_matrix]: https://en.wikipedia.org/wiki/Data_Matrix
|
|
[ean_8]: https://en.wikipedia.org/wiki/EAN-8
|
|
[ean_13]: https://en.wikipedia.org/wiki/International_Article_Number
|
|
[itf]: https://en.wikipedia.org/wiki/Interleaved_2_of_5
|
|
[maxicode]: https://en.wikipedia.org/wiki/MaxiCode
|
|
[pdf417]: https://en.wikipedia.org/wiki/PDF417
|
|
[qr_code]: https://en.wikipedia.org/wiki/QR_code
|
|
[micro_qr_code]: https://en.wikipedia.org/wiki/QR_code#Micro_QR_code
|
|
[rss]: https://en.wikipedia.org/wiki/GS1_DataBar
|
|
[upc_a]: https://en.wikipedia.org/wiki/Universal_Product_Code
|
|
[upc_e]: https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E
|
|
[upc_ean]: https://en.wikipedia.org/wiki/Universal_Product_Code#EAN-13
|
|
[start_activity]: https://developer.android.com/reference/android/app/Activity#startActivityForResult(android.content.Intent,%20int)
|
|
[on_activity_result]: https://developer.android.com/reference/android/app/Activity#onActivityResult(int,%20int,%20android.content.Intent)
|
|
[intent_result]: https://developer.android.com/training/basics/intents/result
|