《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 解決方案 > 簡單四步學(xué)會AltBeacon安卓APP開發(fā)

簡單四步學(xué)會AltBeacon安卓APP開發(fā)

2015-08-27
關(guān)鍵詞: Beacon AltBeacon

如果將Beacon應(yīng)用于故宮博物館導(dǎo)覽,想象一下,當游客走到一個不明覺厲的青銅方樽面前,只要拿起手機就能快速了解它的主人、出土信息和花紋的寓意,再也不用擔(dān)心被人嘲笑沒文化了。這一切都只要借助Beacon應(yīng)用APP即可實現(xiàn)。

今天,我們討論一下如何用AltBeacon安卓API開發(fā)Beacon原型APP。要完成這樣一個設(shè)計,我們需要做五點設(shè)想:

1、博物館內(nèi)安裝的所有的Beacon基站都在APP能夠探測到的范圍內(nèi);

2、APP能夠默默地在后臺運行并探測附近的Beacon;

3、當游客與Beacon基站的距離靠近至2m范圍內(nèi)時才會跳出彈窗,提示與這一Beacon相關(guān)的展品信息;

4、針對同一展品,APP不會不識趣地反復(fù)跳出提示窗;

5、能夠查閱APP系統(tǒng)日志底層Beacon相關(guān)事件。 

開發(fā)步驟1:綁定服務(wù),設(shè)定“區(qū)域”

首先,用AltBeacon API BeaconManager將APP與后臺運行的AltBeacon庫中的服務(wù)綁定。另外,要著手設(shè)定一個或多個“區(qū)域”。這里所說的“區(qū)域”是指一個或一組Beacon,由AltBeacon Beacon ID 域值來規(guī)定。

開發(fā)步驟2:APP程序類別

針對不同的顯示界面(包括主要展品信息界面、Beacon事件日志界面)的活動類別、以及其他一些輔助性的Java類別,這個APP包括一個自定義應(yīng)用程序類和一個Actiivity類別。AltBeacon API負責(zé)APP后臺運行彈出,并提供一系列接口來支持與Beacon探測相關(guān)的回調(diào)函數(shù)。

開發(fā)步驟3:測定距離,更新范圍

AltBeacon API支持“監(jiān)測”與“測距”功能。監(jiān)測功能會在APP進入某一個或某一組Beacon區(qū)域時生成事件。測距功能可以追蹤游客距離某一組Beacon的距離,當兩者近到一定程度時,就可以觸發(fā)功能。

開發(fā)步驟4:定義最近的Beacon, 判斷信息推送時間

有了Beacon列表以及每個Beacon與游客的距離估算值,要推算出哪個Beacon離游客最近應(yīng)該是不成問題的。當APP收到范圍更新時,就要判斷是否需要執(zhí)行相應(yīng)的功能。具體來說,就是看哪個Beacon離游客最近、有沒有近到需要向游客提示Beacon所對應(yīng)的展品信息。如果最近的Beacon發(fā)生了變化,游客會收到提示信息。

測試問題1:現(xiàn)實世界中的Beacon探測

現(xiàn)實中,由于游客和Beacon之間的物理屏障或Beacon配置與之前設(shè)想的不同,也會出現(xiàn)一些紕漏。因此,與其中規(guī)中矩地根據(jù)AltBeacon庫回調(diào)的數(shù)據(jù)行事,不如對算法進行適度的“模糊”處理——保留了最近15s的報告中提示位于范圍內(nèi)的Beacon的相關(guān)數(shù)據(jù)緩存,以及每個Beacon最近一次被探測到的精確時間,反而能改善Beacon APP的表現(xiàn)。 

測試問題2:如何判斷推送時間

怎樣判斷當前時刻提示游客Beacon所關(guān)聯(lián)的展品信息是否“合適”呢?主要看最后一次生成的通知是否為同一Beacon相關(guān)的,因為沒有必要反復(fù)提示用戶同一個展品的信息。還需要將估算的Beacon距離與既設(shè)的(觸發(fā)行為的)最小距離值進行對比,判斷游客是否足夠靠近Beacon(也就是展品),然后決定是否發(fā)送展品信息。

QQ截圖20150827135101.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。