盧賽 虞其凱 何鍇翔 季立寰
【摘 要】二維碼技術(shù)是當(dāng)前移動商務(wù)中的主要技術(shù)之一,而Android平臺是當(dāng)前應(yīng)用非常廣泛的移動終端平臺。本文介紹了QR二維碼的基本編碼原理,并在此基礎(chǔ)上基于Android平臺設(shè)計并實現(xiàn)了一個QR二維碼搜索軟件。
【關(guān)鍵詞】二維碼;QR碼;Android
0.引言
隨著3G網(wǎng)絡(luò)的普及,移動互聯(lián)網(wǎng)時代已經(jīng)到來,移動商務(wù)得到了快速發(fā)展,給人們的生活帶來了極大的便利。無線終端(包括智能手機、平板電腦等)是移動互聯(lián)網(wǎng)和移動商務(wù)的重要載體。Android是用于Google公司推出的用于無線終端的操作系統(tǒng),提供了豐富的API接口,能夠方便地集成很多Google的服務(wù)。由于其開源的特性得到了廣泛認(rèn)可,擁有較高的市場占有率。
移動商務(wù)的發(fā)展離不開二維碼技術(shù)。目前,二維碼在傳統(tǒng)商務(wù)活動和移動商務(wù)中都得到了較好的應(yīng)用。典型的物流行業(yè)、票務(wù)和證件防偽等都利用了二維碼技術(shù)。目前以微信、微博為代表的各種社交類應(yīng)用中已經(jīng)紛紛推出二維碼功能,二維碼形式的廣告、電子消費券、電子交易憑證也都應(yīng)運而生[1]。二維碼已經(jīng)成為移動商務(wù)的重要組成部分。
1.QR二維碼的基本編碼原理
二維碼,即二維條碼,是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號信息的。二維碼技術(shù)是在一維碼無法滿足實際應(yīng)用需求的前提下產(chǎn)生的。由于受信息容量的限制,一維碼通常是對物品的標(biāo)識,而不是對物品的描述。所謂對物品的標(biāo)識,就是給某物品分配一個代碼,代碼以條碼的形式標(biāo)識在物品上,用來標(biāo)識該物品以便自動掃描設(shè)備的識讀,代碼或一維碼本身不表示該產(chǎn)品的描述性信息。
QR(Quick-Response)二維碼是目前應(yīng)用較多的二維碼之一,解碼速度快。QR二維碼的基本結(jié)構(gòu)如圖1所示。其中:位置探測圖形、位置探測圖形分隔符及定位圖形用于對二維碼的定位,對每個QR碼來說,位置都是固定存在的,只是大小規(guī)格會有所差異。校正圖形的數(shù)量和位置根據(jù)規(guī)格確定。格式信息表示改二維碼的糾錯級別,分為L、M、Q、H。版本信息即二維碼的規(guī)格,QR碼符號共有40種規(guī)格的矩陣(一般為黑白色),從21x21(版本1),到177x177(版本40),每一版本符號比前一版本 每邊增加4個模塊。數(shù)據(jù)和糾錯碼字實際保存的二維碼信息,和糾錯碼字(用于修正二維碼損壞帶來的錯誤)。[2]
圖1 QR二維碼的基本結(jié)構(gòu)
QR二維碼的編碼過程中首先確定編碼的字符類型和糾錯等級,按相應(yīng)的字符集轉(zhuǎn)換成符號字符。然后將數(shù)據(jù)字符轉(zhuǎn)換為位流,每8位一個碼字,整體構(gòu)成一個數(shù)據(jù)的碼字序列。按需要將碼字序列分塊,并根據(jù)糾錯等級和分塊的碼字,產(chǎn)生糾錯碼字,并把糾錯碼字加入到數(shù)據(jù)碼字序列后面,成為一個新的序列,并按次序放如圖2所示的分塊中。最后將探測圖形、分隔符、定位圖形、校正圖形、碼字模塊、生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)放入相應(yīng)的區(qū)域。
圖2 QR二維碼分塊結(jié)構(gòu)
2.QR二維碼搜索軟件的設(shè)計與實現(xiàn)
2.1開發(fā)環(huán)境[3]
Android平臺為開發(fā)者提供了源碼開放的軟件開發(fā)包(SDK),它包含了使用Java語言開發(fā)Android平臺應(yīng)用的必要工具和組件(API)。Windows下開發(fā)Android應(yīng)用程序的開發(fā)環(huán)境主要包括:JDK、Eclipse IDE、ADT擴(kuò)展包以及Android SDK,其中ADT是一個基于Eclipse的Android開發(fā)工具擴(kuò)展包(Android Development Tools plugin),Android SDK是Android程序開發(fā)包(Software Development Kit),包含Android手機模擬器。
2.2系統(tǒng)設(shè)計
實際上,目前用于移動商務(wù)中的手機端的二維碼識別軟件已經(jīng)比較多了,但是這些軟件往往是某一個電子商務(wù)平臺APP中的一項功能,或者是單純的掃描軟件不結(jié)合具體的商務(wù)平臺。這些軟件的局限性就在于用戶無法選擇任意的電子商務(wù)平臺搜索,換言之,用戶必須安裝多個不同電商平臺的APP,且在不同的APP之間切換才能達(dá)到目的。
基于上述原因,本文設(shè)計一個能夠跨電子商務(wù)平臺搜索的二維碼識別軟件。該軟件主要包括以下兩項功能:
●掃描并識別QR二維碼:通過手機攝像頭掃描二維碼圖像,解碼該圖像。
●二維碼搜索:在主流的電子商務(wù)平臺和搜索引擎中搜索,包括淘寶、當(dāng)當(dāng)、京東商城、百度和谷歌搜索。
2.3系統(tǒng)實現(xiàn)
我們采用第三方包zxing[4]進(jìn)行QR二維碼解碼。表1是QR二維碼解碼的關(guān)鍵代碼,表2是通過百度搜索的關(guān)鍵代碼,其他搜索谷歌、淘寶等的代碼類似。圖3是我們實現(xiàn)的軟件界面。
3.結(jié)束語
本文介紹了二維碼技術(shù)在移動商務(wù)中的應(yīng)用概況,分析了QR二維碼的基本編碼原理,并基于當(dāng)前的主流移動終端平臺Android設(shè)計并實現(xiàn)了一個QR二維碼搜索軟件。該軟件能夠通過掃描二維碼的形式在當(dāng)前主流的電子商務(wù)平臺中搜索。 [科]
【參考文獻(xiàn)】
[1]季立寰,盧賽.二維碼在移動商務(wù)中的應(yīng)用研究[J].科技致富向?qū)В?013,(11).
[2]馮漢祿,黃穎為等.QR碼糾錯碼原理及實現(xiàn)[J].計算機應(yīng)用,2011,34(Suppl.1):40-42.
[3]張云.Windows下Android應(yīng)用程序開發(fā)環(huán)境搭建詳解[J].計算機時代,2013,(01):32-34.
[4]ZXing ("Zebra Crossing")第三方開發(fā)包.https://code.google.com/p/zxing/.