亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于GPS和iBeacon的智能校園信息發(fā)布平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

        2016-11-07 18:32:10賈慶瑞宋麗紅董靜
        軟件導(dǎo)刊 2016年9期
        關(guān)鍵詞:Android系統(tǒng)位置服務(wù)

        賈慶瑞++宋麗紅++董靜

        摘要:基于GPS和iBeacon實(shí)現(xiàn)智能校園信息發(fā)布平臺(tái)。學(xué)生持手機(jī)進(jìn)入校園后,服務(wù)器會(huì)實(shí)時(shí)獲取學(xué)生的位置信息,向?qū)W生推送校園內(nèi)各區(qū)域信息。新生入學(xué),服務(wù)器發(fā)送報(bào)到流程中各位置的信息,新生到達(dá)指定位置時(shí),推送幫助消息,提高了報(bào)到效率,節(jié)省了大量人力和時(shí)間。

        關(guān)鍵詞:iBeacon;Android系統(tǒng);PHP;位置服務(wù)

        DOIDOI:10.11907/rjdk.161562

        中圖分類號:TP319

        文獻(xiàn)標(biāo)識碼:A文章編號文

        章編號:16727800(2016)009006903

        基金項(xiàng)目基金項(xiàng)目:2015年地方高校國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(201510070005)

        作者簡介作者簡介:宋麗紅(1975-),女,天津人,博士,天津財(cái)經(jīng)大學(xué)理工學(xué)院副教授,研究方向?yàn)檐浖こ?、智能信息系統(tǒng);董靜(1975-),女,天津人,博士,天津財(cái)經(jīng)大學(xué)理工學(xué)院講師,研究方向?yàn)檐浖こ獭?/p>

        0引言

        很多高校發(fā)布信息時(shí)大多還是公告板、電話或者群發(fā),學(xué)生由于不能及時(shí)獲取信息而錯(cuò)過活動(dòng)。信息收發(fā)途徑是否便捷、及時(shí),以及受眾面的大小直接決定了信息的廣泛性和時(shí)效性。新生報(bào)到時(shí),大多數(shù)學(xué)校還是由學(xué)生和教師組成志愿者隊(duì)伍進(jìn)行引導(dǎo)和服務(wù),付出很大的精力和時(shí)間但效率不高,研究適合校園的高效可靠低成本智能信息發(fā)布平臺(tái)迫在眉睫。

        “你在哪里?你身邊有什么資源?”由美國學(xué)者Schilit在1994年首次提出,即基于位置服務(wù)LBS(Location Based Services)。本文根據(jù)學(xué)生位置推送與該位置相關(guān)的信息,學(xué)生也可以主動(dòng)獲取信息,設(shè)計(jì)并實(shí)現(xiàn)了基于GPS和iBeacon的校園信息發(fā)布系統(tǒng),

        1系統(tǒng)設(shè)計(jì)

        1.1系統(tǒng)功能設(shè)計(jì)

        本系統(tǒng)基于學(xué)生位置,推送各類信息,如學(xué)術(shù)活動(dòng)、社團(tuán)活動(dòng)、圖書館新書信息、食堂優(yōu)惠信息等;新生進(jìn)入校園,系統(tǒng)推送報(bào)到流程,新生到達(dá)指定區(qū)域時(shí)推送報(bào)到導(dǎo)航信息,取代了人工導(dǎo)引的繁瑣工作。

        系統(tǒng)功能:①具有良好的人機(jī)交互界面,符合用戶使用習(xí)慣,便于推廣;②定位學(xué)生位置,根據(jù)位置推送相關(guān)信息;③記錄某一時(shí)刻進(jìn)入某區(qū)域的人數(shù),方便管理監(jiān)控;④學(xué)生可主動(dòng)獲取信息。系統(tǒng)分組管理學(xué)生,向?qū)W生群組及時(shí)發(fā)布信息。

        系統(tǒng)結(jié)合GPS和藍(lán)牙技術(shù)獲取位置信息,以主動(dòng)推送信息和學(xué)生端主動(dòng)獲取信息為功能主線,實(shí)現(xiàn)校園低成本便捷信息發(fā)布平臺(tái),有效提高效率。

        1.2定位技術(shù)

        校園內(nèi)定位技術(shù)分為室外和室內(nèi)定位技術(shù)。

        1.2.1室外定位技術(shù)

        目前主流的室外定位技術(shù)是全球定位系統(tǒng)GPS[1]。GPS是美國國防部所屬陸??杖娪谏鲜兰o(jì)70年代開始聯(lián)合研制,以衛(wèi)星為基礎(chǔ)的無線電三維導(dǎo)航系統(tǒng)。在應(yīng)用基礎(chǔ)研究、應(yīng)用領(lǐng)域開拓、硬件和軟件開發(fā)等方面都得到蓬勃發(fā)展。GPS和地圖應(yīng)用相結(jié)合,可以很好地解決校園室外定位問題[2]。

        1.2.2室內(nèi)定位技術(shù)

        近年來,國內(nèi)外學(xué)者致力于解決室外導(dǎo)航定位“最后一公里”瓶頸問題[3],涌現(xiàn)出大量相對成熟的室內(nèi)定位技術(shù),包括偽衛(wèi)星技術(shù)、輔助全球衛(wèi)星定位系統(tǒng)、超寬帶技術(shù)、WiFi定位技術(shù)、藍(lán)牙定位技術(shù)、射頻識別技術(shù)、地磁定位技術(shù)等。經(jīng)過對比研究,選擇適合校園室內(nèi)移動(dòng)用戶的藍(lán)牙定位技術(shù)。

        相比于WiFi,藍(lán)牙信息發(fā)射器iBeacon成本很低,易于部署,定位準(zhǔn)確,在校園的食堂,報(bào)告廳、教室等區(qū)域部署iBeacon非常方便。系統(tǒng)架構(gòu)如圖1所示。

        2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2.1系統(tǒng)設(shè)計(jì)

        如圖2所示,系統(tǒng)由基于GPS定位iBeacon感應(yīng)及信息推送系統(tǒng)組成,其工作流程如下:

        (1)觸發(fā)。①當(dāng)學(xué)生在校園室外活動(dòng)時(shí),基于GPS調(diào)用百度地圖實(shí)現(xiàn)定位;②當(dāng)學(xué)生接近或進(jìn)入教學(xué)樓、圖書館、食堂等相對封閉的區(qū)域,進(jìn)入iBeacon基站覆蓋范圍時(shí),系統(tǒng)會(huì)接收基站的相關(guān)信息。

        (2)服務(wù)器解析。APP在接收到GPS位置信息或iBeacon基站信息后,將位置和基站信息打包,通過WiFi或數(shù)據(jù)網(wǎng)絡(luò)發(fā)送給Web服務(wù)程序。

        (3)消息推送。對APP發(fā)送的信息解析,確定學(xué)生的位置,檢索該區(qū)域消息,推送到學(xué)生手機(jī)。

        2.2系統(tǒng)實(shí)現(xiàn)

        2.2.1基于GPS的百度地圖定位

        (1)申請秘鑰。百度地圖接口API需要申請開發(fā)者密鑰,將申請到的密鑰放到Android項(xiàng)目的配置文件中[17]。

        (2)環(huán)境配置。聲明百度定位所需要的主要權(quán)限,包括訪問互聯(lián)網(wǎng)、網(wǎng)絡(luò)定位、GPS定位、讀取手機(jī)當(dāng)前狀態(tài)等,寫入擴(kuò)展存儲(chǔ)卡權(quán)限,用以寫入離線定位數(shù)據(jù)。

        (3)實(shí)現(xiàn)過程。應(yīng)用百度的定位功能核心類LocationClient類完成定位[5]。LocationClient對象的創(chuàng)建需要在線程中完成,以應(yīng)用程序上下文getApplicationConext作為參數(shù),全局有效。根據(jù)校園定位要求,將定位模式設(shè)置為高精度模式。根據(jù)設(shè)計(jì),設(shè)定發(fā)起定位請求的時(shí)間間隔。

        發(fā)出定位請求后,百度服務(wù)器異步返回定位結(jié)果,回調(diào)預(yù)先指定的監(jiān)聽函數(shù)。在回調(diào)函數(shù)中,將獲取的位置信息記錄下來,存到本機(jī)SQLite數(shù)據(jù)庫,判斷位置是否發(fā)生變化,將變化的位置信息提交給服務(wù)器。

        2.2.2搜索iBeacon設(shè)備

        (1)權(quán)限設(shè)置。聲明使用藍(lán)牙BLUETOOTH權(quán)限:

        聲明掃描設(shè)備或者操作藍(lán)牙BLUETOOTH_ADMIN權(quán)限:

        指定設(shè)備支持BLE,聲明uses-feature:

        required為true,則應(yīng)用只能在支持BLE的Android設(shè)備上安裝運(yùn)行;required為false,Android設(shè)備均可正常安裝運(yùn)行,需要運(yùn)行時(shí)判斷設(shè)備是否支持BLE feature。[4]

        if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)){

        finish();

        }

        (2)啟動(dòng)藍(lán)牙。獲取BluetoothAdapter:

        BluetoothAdapter是Android系統(tǒng)中所有藍(lán)牙操作都需要的,它對應(yīng)本地Android設(shè)備的藍(lán)牙模塊,這里通過使用getSystemService獲取BluetoothManager,再通過BluetoothManager獲取BluetoothAdapter,BluetoothManager在Android4.3以上支持(API level 18)獲取[16]。 final BluetoothManager bluetoothManager =

        (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);

        mBluetoothAdapter = bluetoothManager.getAdapter();

        判斷是否支持藍(lán)牙,并打開藍(lán)牙:

        獲取到BluetoothAdapter之后,還需要判斷是否支持藍(lán)牙,以及藍(lán)牙是否打開[6]。如果沒打開則要讓用戶打開藍(lán)牙:

        private BluetoothAdapter mBluetoothAdapter;

        if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {

        Intent enableBtIntent = newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

        }

        (3)搜索BLE設(shè)備。通過調(diào)用BluetoothAdapter的startLeScan()搜索BLE設(shè)備。調(diào)用此方法時(shí)需要傳入BluetoothAdapter.LeScanCallback參數(shù)。

        需要實(shí)現(xiàn)BluetoothAdapter.LeScanCallback接口,BLE設(shè)備的搜索結(jié)果將通過回調(diào)函數(shù)返回。

        為減少搜索時(shí)的功耗,找到對應(yīng)設(shè)備后立即停止掃描;為每次搜索設(shè)置了適合的時(shí)間限制,避免循環(huán)搜索,避免消耗電量。

        系統(tǒng)設(shè)定10秒后停止掃描:

        mHandler.postDelayed(new Runnable() {

        public void run() {

        mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); }

        }, 100000);

        mScanning = true; mBluetoothAdapter.startLeScan(mLeScanCallback);

        設(shè)定回調(diào)接口,編寫回調(diào)函數(shù)調(diào)用網(wǎng)絡(luò)服務(wù)。

        Private BluetoothAdapter.LeScanCallback mLeScanCallback =new BluetoothAdapter.LeScanCallback() {

        @Override

        public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {

        final iBeacon iBeacon =iBeaconClass.fromScanData(device,rssi,scanRecord);

        runOnUiThread(new Runnable() {

        @Override

        public void run() {

        SendToServer(iBeacon );

        }

        });

        }

        };

        2.2.3服務(wù)器端位置解析及消息推送

        手機(jī)客戶端和服務(wù)器遠(yuǎn)程數(shù)據(jù)交換,采用XML數(shù)據(jù)格式[67]。XML已經(jīng)被業(yè)界廣泛的使用[15],在編碼的可讀性及編碼的手寫難度上更加簡單,在服務(wù)器端和Android端都可以解析。

        消息推送機(jī)制采用MQTT協(xié)議。MQTT協(xié)議簡單,最小的頭部只需2個(gè)字節(jié),特別適合于嵌入式,很多企業(yè)都使用MQTT作為Android手機(jī)客戶端與服務(wù)器端推送消息的協(xié)議[89]。

        當(dāng)?shù)乩砦恢冒l(fā)生變化或掃描到新的iBeacon時(shí),Android端將百度地圖位置信息或iBeacon的UUID進(jìn)行XML格式序列化,通過HTTP請求發(fā)送到服務(wù)器。服務(wù)器解析,根據(jù)位置或iBeacon的UUID查詢位置信息,數(shù)據(jù)層根據(jù)用戶ID、位置ID及時(shí)間等,查詢當(dāng)前位置今日沒有發(fā)送給用戶的信息,將其封裝成XML,推送回手機(jī),手機(jī)端以列表方式顯示。

        發(fā)送請求時(shí),調(diào)用Android Asynchronous Http Client一個(gè)回調(diào)式的Android網(wǎng)絡(luò)請求庫。使用它的原因在于:操作簡便,能異步發(fā)送HTTP請求,在回調(diào)函數(shù)中處理HTTP請求過程,線程池管理并發(fā)送,支持GET/POST請求,針對不同的網(wǎng)絡(luò)連接對重試次數(shù)進(jìn)行智能優(yōu)化等。

        public static void getNewsList(int

        uuid,AsyncHttpResponseHandler handler) {

        RequestParams params =

        new RequestParams();

        params.put("uuid",uuid);

        ApiHttpClient.get("action/api/news_list", params, handler);

        }

        服務(wù)器端推送消息采用php語言,實(shí)現(xiàn)過程如下:

        引入指定文件

        require(SAM/php_sam.php);

        創(chuàng)建一個(gè)新的連接對象:

        $conn = new SAMConnection();

        初始化連接對象:

        $conn->connect(SAM_MQTT, array(SAM_HOST => 127.0.0.1, SAM_PORT => 1883));

        創(chuàng)造一個(gè)新的shell命令輸出MQTT消息體:

        $msgCpu = new SAMMessage(“數(shù)據(jù)”);

        發(fā)送消息:

        $conn->send(topic://.$_REQUEST[target], $msgCpu);

        斷開連接:

        $conn->disconnect();

        2.3移動(dòng)終端主動(dòng)請求數(shù)據(jù)

        數(shù)據(jù)庫部署在服務(wù)器上,學(xué)生可以主動(dòng)查詢信息。

        在移動(dòng)終端進(jìn)行數(shù)據(jù)請求時(shí),首先通過HttpURLConnection方式向服務(wù)器url發(fā)送HttpPost請求[1213],在服務(wù)器端接受請求并執(zhí)行數(shù)據(jù)查詢后,將查詢結(jié)果封裝為XML格式的數(shù)據(jù)并返回給客戶端??蛻舳私邮艿絏ML后,解析XML中的數(shù)據(jù)信息,并在界面上將其以列表方式輸出。

        2.4新生報(bào)到校園導(dǎo)航

        新生報(bào)到時(shí),用戶以賬號登錄后,百度地圖導(dǎo)航信息監(jiān)測到新生進(jìn)入校園,服務(wù)器將帶有報(bào)到信息的校園地圖發(fā)送到學(xué)生手機(jī),隨學(xué)生位置的變化,將報(bào)到點(diǎn)的信息及時(shí)發(fā)送到手機(jī),實(shí)現(xiàn)結(jié)果如圖4所示。

        3結(jié)語

        本文基于GPS和iBeacon實(shí)現(xiàn)了智能校園信息發(fā)布平臺(tái)解決方案,應(yīng)用Java和PHP實(shí)現(xiàn)了系統(tǒng)功能。

        本研究成果可推廣到基于位置服務(wù)有需求的場所,如大型廠區(qū)、會(huì)展中心、大型購物中心、景點(diǎn)等,可以方便管理人員控制區(qū)域內(nèi)進(jìn)出人數(shù),提供預(yù)警信息,防止出現(xiàn)擁擠甚至踩踏事件。方便用戶通過手機(jī)了解區(qū)域內(nèi)的各類信息,如景點(diǎn)介紹、展廳內(nèi)促銷信息等,提供了良好的用戶體驗(yàn),有很好的實(shí)用性和應(yīng)用前景。

        參考文獻(xiàn)參考文獻(xiàn):

        [1]馬守瑞.GPS技術(shù)的發(fā)展及應(yīng)用現(xiàn)狀[J].華北國土資源,2012(4):142143.

        [2]孟祥銳,費(fèi)龍,程彬.GPS技術(shù)在手機(jī)中的應(yīng)用淺析[J].長春師范學(xué)院學(xué)報(bào):自然科學(xué)版,2008(6):7578.

        [3]楊立榮.基于ZigBee的室內(nèi)定位算法研究及優(yōu)化[D].濟(jì)南:山東大學(xué),2014.

        [4]SAVAGE F MORGAN.Android4.3 藍(lán)牙BLE初步[EB/OL].http://www.cnblogs.com/savagemorgan/p/3722657.html.

        [5]百度開發(fā)者.Androidlocsdk/guide/v50 Wiki [EB/OL].http://developer.baidu.com/map/wiki/index.php?title=androidlocsdk/guide/v50.

        [6]徐麗仙.Eclipse開發(fā)環(huán)境中Android應(yīng)用程序獲取藍(lán)牙設(shè)備過程研究與實(shí)現(xiàn)[J].揚(yáng)州職業(yè)大學(xué)學(xué)報(bào), 2014(4):3133.

        [7]梁書婷.基于Android平臺(tái)的遠(yuǎn)程桌面控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.

        [8]黃河清,陳文.Android平臺(tái)消息推送服務(wù)的實(shí)現(xiàn)[J].電腦編程技巧與維護(hù), 2014(18):5355.

        [9]姜妮,張宇,趙志軍.基于消息隊(duì)列遙測傳輸?shù)耐扑拖到y(tǒng)[J].計(jì)算機(jī)工程,2015(9):5355.

        [10]陸奕帆,郭曉金,陳沉,等.基于Android的露營信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2015(14):99102.

        [11]陳靜涵, 邢健, 殷旭東.Android智能導(dǎo)游應(yīng)用開發(fā)技術(shù)研究[J].無線互聯(lián)科技,2015(7):6164.

        [12]陳燕, 劉至洋, 楊雪君.基于Android平臺(tái)的博客客戶端設(shè)計(jì)與實(shí)現(xiàn)[J].才智,2013(5):281282.

        [13]烏錚.基于Android平臺(tái)的手游社交應(yīng)用客戶端的設(shè)計(jì)與實(shí)現(xiàn) [D].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

        [14]李宗骍.基于RSSI和地磁場特征融合的室內(nèi)定位算法設(shè)計(jì)與研究[D].南京:南京理工大學(xué),2015.

        [15]王海波,耿暉,姜吉發(fā),等.基于XML的數(shù)據(jù)交換的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用, 2001(4):6768.

        [16]李黎國,張輝,程號.基于Android健康服務(wù)終端藍(lán)牙傳輸軟件的設(shè)計(jì)[J].電子科技, 2012(5):115118.

        [17]李驍.百度地圖API在Android中的配置和應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2015(2):3738.

        責(zé)任編輯(責(zé)任編輯:杜能鋼)

        猜你喜歡
        Android系統(tǒng)位置服務(wù)
        互聯(lián)互通 暢享未來 第12屆衛(wèi)星導(dǎo)航與位置服務(wù)運(yùn)營商大會(huì)在深圳舉行
        位置服務(wù),車聯(lián)網(wǎng)的風(fēng)口
        Android系統(tǒng)上的移動(dòng)互聯(lián)網(wǎng)集成平臺(tái)開發(fā)機(jī)制
        Android下的機(jī)械式電表數(shù)字識別技術(shù)研究
        基于Android系統(tǒng)的掌上班級課表與學(xué)生考勤管理系統(tǒng)
        基于增強(qiáng)現(xiàn)實(shí)技術(shù)的導(dǎo)航系統(tǒng)研究
        中位協(xié)二十周年慶典暨第四屆中國衛(wèi)星導(dǎo)航與位置服務(wù)年會(huì)將在北京舉行
        位置服務(wù)中服務(wù)點(diǎn)空間可達(dá)性評估模型分析
        国产精品一区二区日本| 无码人妻中文中字幕一区二区| 偷拍激情视频一区二区| 一区二区三区视频亚洲| 国产精品99无码一区二区| 久久精品国产亚洲av忘忧草18| 久久青草亚洲AV无码麻豆| 中文字幕人妻一区二区二区| 久久不见久久见免费视频6 | 国产精品视频白浆免费视频| 少妇做爰免费视频了| 亚洲男人天堂| 噜噜噜色97| 精品一区二区av在线| 东京道一本热中文字幕| 亚洲成av人最新无码| 男人的av天堂狠狠操| 精品粉嫩av一区二区三区| 99精品人妻少妇一区二区| 国产精品视频流白浆免费视频| 丝袜美腿av免费在线观看| 国产精品毛片无遮挡高清| 午夜男女爽爽爽在线视频| 午夜不卡亚洲视频| 日韩av一区二区三区高清| 日本乱偷人妻中文字幕| 成人a在线观看| 日韩女同一区二区三区久久| 国产av无码专区亚洲av男同| 成人片黄网站色大片免费观看cn| 亚洲网站免费看| 亚洲国产一区二区中文字幕| 亚洲加勒比久久88色综合| 91呻吟丰满娇喘国产区| 国产精品亚洲精品专区| 国产成人无码a在线观看不卡| 藏春阁福利视频| 一区二区三区午夜视频在线观看 | 亚洲av高清资源在线观看三区| 男女真人后进式猛烈视频网站| 亚洲av无码精品色午夜在线观看|