QR and Barcode Scanner | Android Tutorial
https://www.youtube.com/watch?v=otkz5Cwdw38
整理
1
Github第三方類別庫
https://github.com/dm77/barcodescanner
2
Zxing:https://github.com/zxing/zxing
[ 技術探討 ] Barcode 之 ZXing 元件初探
ZXing不僅在網路上被廣泛使用,在Barcode上也算是功能比較完整的套件,不管是透過Encode方法進行產生Barcode、還是透過Decode方法進行解析Barcode值等兩種功能均有提供;不過現在支援的Barcode類型還是有限,但以常用的Barcode類型如QRCode、Code39等來說也已經足夠。
3
ZBar:https://github.com/zxing/zxing
4
條碼
條碼或稱條形碼(barcode)是將寬度不等的多個黑條和空白,按照一定的編碼規則排列,用以表達一組資訊的圖形識別碼。常見的條碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。
QR圖碼是二維條碼的一種。QR碼使用四種標準化編碼模式(數字、字母數字、位元組(二進制)和日文(Shift_JIS))來儲存資料。。QR碼比普通一維條碼具有快速讀取和更大的儲存資料容量,也無需要像一維條碼般在掃描時需要直線對準掃描器。因此其應用範圍已經擴展到包括產品跟蹤,物品識別,文件管理,庫存營銷等方面。
QR碼呈正方形,常見的是黑白兩色。在3個角落,印有較小,像「回」字的正方圖案。這3個是幫助解碼軟體定位的圖案,使用者無論以任何角度掃描,資料仍然可以正確被讀取
5
Android activity
Android - Ch5 Android 最基本的元件:Activity、Intent、Fragment
了解一下Activity其生命週期(官網的圖):
一 onPause():系統呼叫此方法做為使用者離開Activity的第一個指標(但並非一定表示該 Activity 遭到終止)。
二「版面配置」是衍生自 ViewGroup 的檢視,讓子檢視可具有獨特的版面配置模型,例如線性版面配置、網格版面配置或相對版面配置。
三 onPause就是 裝置進入睡眠或顯示對話方塊時,會呼叫 onPause()。
onPause是activity暫停((Activity 物件會保留在記憶體、維護所有狀態,以及繼續附加至視窗管理員))。
onStop()是activity不在顯示(Activity 物件會保留在記憶體,維護所有狀態,但「不會」附加至視窗管理員)。
四 所以可以在 onPause() 時,關閉相機。
如果使用者又回到原本的相機畫面,從onPause()回到onResume,就可以用onResume()開啟相機,
而不是只把開啟相機寫在onCreate()
覆寫每一個方法來測試生命週期:
返回桌面,沒關掉app,會是onPause-->onStop
在回到app會是onStart-->onResume
回前頁會是onPause-->onStop-->onDestroy
其他第三方類別庫:
journeyapps/zxing-android-embedded
6
Google I/O:機器學習服務集大成推出ML Kit,要讓App開發者隨呼即用開發AI應用
Android Studio Tutorial - Barcode QR Code Reader with Firebase ML
Android Text Recognition from Camera - Android Studio Tutorial Text Recogniser using ML KIT
ML4Mobile MLKitBarcodeAndroid
整理
1
ML Kit有 Text Recognition (文字識別)、 Face Detection(人臉檢測) 、Barcode Scanning、Image Labeling
(圖像標註) 、 Object Detection and Tracking(目標檢測與追踪) 、 Landmark Recognition(地標識別)、
...等等
所以可以來試試看條碼
2
遇到問題:
Android Studio 3.6.1 | Error: “This project uses AndroidX dependencies” [duplicate]
如果舊專案 還沒有androidx 要再gradle.properties補
android.useAndroidX=true
android.enableJetifier=true
3
遇到問題:
File google-services.json is missing
要到firebase載google-services.json ,放到 專案 :
4
barcode 的 套件 ,好像載了就可以直接用了,不用連網路也可以用
5
firebase app registration ERROR => no matching client found for package name
The Google Services Gradle Plugin
現在camerax ,也要加上google-services.json,package name 要跟 firebase的一樣:
"package_name": "com.arindam.camerax.debug"
所以目前想法,還是把圖片 ,送到伺服器 , 伺服器端在用python的openCV 和tesserect 完成文字辨識 。
How to use OCR (Optical Character Recognition) in an android app
https://stackoverflow.com/questions/62516824/how-to-use-ocr-optical-character-recognition-in-an-android-app
FirebaseVision, ML Kit FirebaseVisionTextRecognizer CUSTOM MODEL OCR for Android
https://stackoverflow.com/questions/63353711/firebasevision-ml-kit-firebasevisiontextrecognizer-custom-model-ocr-for-android
How can we improve Firebase ML kit text-recognition output result on-device?
https://stackoverflow.com/questions/60754920/how-can-we-improve-firebase-ml-kit-text-recognition-output-result-on-device
Extract Text From Image using Android and Google ML Kit
https://www.youtube.com/watch?v=-7pM5ficYoc&ab_channel=brightvarghese