2010-04-09 76 views
20

我想爲Android創建一個應用程序,它可以掃描條形碼,獲取條形碼中包含的信息,然後以某種方式使用該信息。Android - 條碼掃描,選項?斑馬線?

我不知道如何創建條形碼掃描器,所以我去谷歌搜索,似乎Zxing是最常用的方式來實現一個應用程序的條形碼掃描儀。

幾個環節:


http://code.google.com/p/zxing/

http://awalkingcity.com/blog/2008/08/25/qr-codes-made-easy-in-android/

Using ZXing to create an android barcode scanning app


但是我在斑馬線涉及不必提示用戶去市場上發現的樣本並安裝zxing條形碼掃描器,以便我的應用程序可以在需要時調用條形碼掃描器,然後條形碼掃描器將信息返回給我的應用程序。

雖然這對我來說是一個很好的起點,但我想知道是否有其他選項可以讓我在自己的應用程序中嵌入條形碼掃描器,而無需提示用戶下載二級應用程序?

+0

http://stackoverflow.com/questions/2050263/using-zxing-to-create-an-android-barcode-scanning-app – 2010-04-10 16:41:02

+0

的可能重複嘗試我博客上,可能會有所幫助。 http://mcondev.wordpress.com/2011/06/24/zxing-1-7-for-android-on-eclipse/ – Siddharth 2011-12-14 05:17:12

+0

僅供參考 - http://code.google.com/p/zxing擁有轉移到https://github.com/zxing/zxing – Les 2014-06-10 13:16:35

回答

21

開發人員在這裏。我想你最終只想通過Intent集成。您可以免費獲得改進,錯誤修復和平臺特定的解決方法。它的代碼也少得多。但我知道你在尋求替代方案。

你可能想剝離Barcode Scanner(其源代碼位於android /項目中),並去掉所有你不需要的東西。這意味着只留下com.google.zxing.client.androidcom.google.zxing.client.android.camera包。核心解碼在DecodeThread,但這些包中的其他代碼實現了連續掃描的小回叫舞蹈並獲得了通常的掃描UI。

如果您嵌入代碼,您需要遵循Apache License的條款。

+0

@ james-baca您的編輯我的答案基本上是破壞行爲,並已回滾。寫你自己的答案廣告你的服務。 – 2015-08-22 19:07:01

+0

呃,我的意思是Google Play服務,這是一件好事。點是在編輯中重寫別人的答案。 – 2015-08-22 19:27:02

7

通過添加您自己的代碼來下載和擴展Zxing「條碼掃描儀」應用程序。它在Apache 2.0許可下。

+0

所以基本上採取Zxing的源代碼,並重寫它做我想要的? – 2010-04-09 13:55:10

+0

這將是我的建議。你可能只需包含現有的源代碼,調用它,並很容易地捕獲返回的條形碼。我猜你根本不需要修改很多代碼。 – 2010-04-09 17:18:55

2

我建議你通過意圖使用Zxing並重定向到Android電子市場頁面("market://details?id=com.google.zxing.client.android")如果它不存在(捕獲ActivityNotFoundException)。 intent對於像這樣的應用程序間通信來說非常棒。

+4

是的我知道我可以做到這一點,但我想要的是不得不要求用戶安裝一個單獨的應用程序只是爲了掃描 – 2010-04-09 14:19:07

4

查看新的Google Play服務7。8 API,包括條碼跟蹤:

0

我有這個工作:

repositories { mavenCentral() 
    maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" } 
} 

compile 'com.google.zxing:core:3.2.1' 
compile 'com.embarkmobile:zxing-android-minimal:[email protected]' 
compile 'com.embarkmobile:zxing-android-integration:[email protected]' 

我建議使用IntentIntegrator

IntentIntegrator integrator = new IntentIntegrator(getActivity()); 
integrator.forSupportFragment(this).initiateScan(); 

的requestCode回來了

IntentIntegrator.REQUEST_CODE 

無需安裝單獨的掃描儀