• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁(yè) > 新聞 > 國內 >

    手把手教你如何開(kāi)發(fā)AltBeacon安卓

    2015-07-31 11:03:53   作者:藍牙技術(shù)聯(lián)盟    來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      模糊的Beacon追蹤

      我們的方法簡(jiǎn)單而有效--保留了最近15秒的報告中提示位于范圍內的Beacon的相關(guān)數據緩存,以及每個(gè)Beacon最近一次被探測到的精確時(shí)間。通過(guò)計時(shí)器任務(wù),把最近15秒內沒(méi)有被探測到的Beacon視為“過(guò)期”、移除緩存。

      在可以稱(chēng)得上“重中之重”的didRangeBeaconsInRegion方法中,我們更新了Beacon數據緩存和回調的Beacon對象列表,然后評估全部的緩存數據,以判定目前距離最近的Beacon。于是測試的結果有了改善。這類(lèi)似于數據平滑處理,相關(guān)代碼片段如下圖。

     

      圖5 - GyboApplication.java中的Beacon緩存設置和使用

      圖6 -BeaconEvent類(lèi)別

      圖7 -負責終止BeaconEvent對象的計時(shí)器任務(wù)

      最后的最后,提醒用戶(hù)!

      一旦實(shí)際執行了獲取范圍內Beacon報告的代碼、采取了某種方式追蹤Beacon、并根據獲得的數據判斷哪一個(gè)Beacon離游客最近,那么就只剩最后一步了:在合適的情況下提示游客Beacon所關(guān)聯(lián)的展品信息。怎樣判斷是否“合適”呢?主要看最后一次生成的通知是否為同一Beacon相關(guān)的,因為沒(méi)有必要反復提示用戶(hù)同一個(gè)展品的信息。還需要將估算的Beacon距離與既設的(觸發(fā)行為的)最小距離值進(jìn)行對比,判斷游客是否足夠靠近Beacon(也就是展品),然后決定是否發(fā)送展品信息。

      如果APP是在前臺運行,提示游客的方法就很簡(jiǎn)單:更新主要展覽信息頁(yè)面、顯示最近的展品介紹。我們使用內存中有關(guān)Beacon及其對應展品的數據結構,每個(gè)Beacon都有自己的ID,就可以分別對應各自的展品信息,并在A(yíng)PP本地映射了這些數據的對應關(guān)系,但正如第一篇中所講到的,對于除了原型以外的任何APP,最好從遠程服務(wù)器上獲取相關(guān)數據,根據位置或其他信息配置Beacon。

     

      圖8 -Beacon Information類(lèi)別

      圖9 -ThingOfInterest類(lèi)別

      通知列表下拉菜單中的通知,并將其鏈接到定義展品信息頁(yè)面的Activity。

     

      圖10 - 安卓系統通知,提示附近發(fā)現

      下圖是安卓通知的代碼。

     

      圖11 - 創(chuàng )建通知

    分享到: 收藏

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 常山县| 电白县| 巴彦淖尔市| 温泉县| 高密市| 凤山县| 武陟县| 梅州市| 修文县| 永昌县| 澎湖县| 陇南市| 开平市| 青冈县| 屏东县| 新田县| 海安县| 贺兰县| 田阳县| 区。| 寿光市| 望谟县| 丽水市| 丹寨县| 永清县| 拜泉县| 新安县| 栾川县| 蚌埠市| 铜陵市| 淮安市| 南昌市| 竹山县| 莱州市| 进贤县| 包头市| 南皮县| 井陉县| 青河县| 双桥区| 江都市| http://444 http://444 http://444 http://444 http://444 http://444