999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的多用戶位置共享及實時通信系統

2017-07-15 15:53:44彭藝蕾王莉莉孫紅濤祁正龍高放
智能計算機與應用 2017年3期

彭藝蕾 王莉莉 孫紅濤 祁正龍 高放

摘要:為了給用戶生活中實時交流、出行、集會等方面提供便利,本文針對移動互聯網通信中多用戶如何位置共享及實時通信的問題,詳細闡述了一個性能較好、可行度較高的設計方案并給出了相關系統的具體開發和實現方法。本系統基于Android系統,采用了高德地圖、網易云信的SDK和API及RSA加密技術,實現了多用戶定位、導航、實時通信等功能并保證了交互過程的安全性,為其他有關地圖或通信的Android系統設計提供了參考。

關鍵詞:Andmid;定位;導航;實時通信;加密

0引用

隨著社會的飛速發展,人們的生活水平在不斷提高的過程中,對信息和位置的實時I生與準確度有了更高的要求,手機即已成為滿足這一需求設計的重要載體。Android在Linux操作系統的基礎上研發推出了一種可供高端拓展、且功能全面的嵌入式系統框架,憑借其通用、開源、免費的特點廣泛地應用于移動設備,是目前位居先鋒時尚的主流手機平臺之一,各種Android APP也隨即應運而生。本系統是一款基于Android的多用戶地理位置共享、信息實時系統,能為用戶在實時交流、出行、集會等多方面定制生成更多現實高效便利。同時,明確信息發送者的地理位置,能幫助用戶辨析信息的真實性;通過分析地理位置,也能增強信息的關聯性。

1系統架構

1.1系統框架

本系統按照C/S(Client/Server)的架構模式,一端是基于Android系統開發的APP作為客戶端,另一端選用網易云信、高德地圖的服務器。服務器端采用并發型服務類型,即利用生成其他服務器的方法來處理客戶端的請求,其目的在于為多客戶端同時完善配備實時通信和在線地圖的服務。客戶端在Android Studio集成環境中使用Java、XML語言設計開發并支持調試,檢驗無誤則簽名打包生成后綴為.apk的文件,供Android移動設備使用。本次研發的系統結構可如圖1所示。

1.2系統功能模塊

本系統主要由客戶端、通信服務器、地圖服務器三大模塊組成。其中,客戶端的實際功能是為客戶與客戶之間、客戶與服務器之間的交互來構建提取界面并對交互結果進行顯示。服務器端則是用于接收用戶請求,啟動一個新的服務器對接收到的請求進行分析處理并將結果返回給客戶端。具體來說,通信服務器的主要功能是接收發送端發送的消息對象并交付給其對應的目的客戶端(一個消息對象的發送端和接收端可能為同一客戶端,如用戶向服務器發起登錄或注銷請求);地圖服務器主要提供在線地圖并接收和響應客戶端發起的定位或導航請求。系統中整體設計功能模塊如圖2所示。在此,也將針對每一模塊給出如下功能闡析。

1.2.1通信模塊

在通信模塊中,設計時需要調用通過手機接入互聯網即時發送和接收消息對象等業務,而在此過程中,消息的可靠性和即時性則呈現出特別的重要性。本系統采用了網易云信服務器動態智能DNS掉線快速重連機制消息重排、持續重連直至到達的傳送機制為可靠性和即時性提供保障。也就是,設計時通過調用網易云信的SDK和API,實現了用戶登錄注銷、信息發送與接收、群組聊天等功能,深入的探討論述可詳見本文第2節。

1.2.2地圖模塊

對于地圖的整體功能,Android系統中內置的Google在線地圖的視圖組件(MapView)為Android移動終端設計與實現地圖服務提供了便捷靈活的開發平臺。但由于考慮到文化的差異和政策的限制,研發中選擇了國內的地圖服務。本次系統利用LBS開放地理信息服務平臺、基于高德地圖的地理信息系統設計方法來提升地圖方面的需求開發等級,包括定位、搜索、導航、路徑規劃等,其具體實現則可參見本文第3節。

1.3系統SDK的集成及權限申明

SDK能為移動應用設計生成完善的系統開發框架,屏蔽掉復雜細節,對外提供較為簡潔的API接口。在系統開發過程中引用了網易云信和高德地圖的SDK,在對2種SDK處理集成時,多處出現了jar包的沖突問題。研究中主要采用了如下2種方式解決jar包的沖突問題:

1)對實現各功能SDK分開下載、并組合后再集成的方式直接避免沖突的產生;

2)對于無法直接避免沖突的包,拆分比較其結構后,去掉產生沖突的冗余部分,再合并打包。

Android系統基于Linux內核運行,并以重點保障其系統安全性作為立足點,Google公司即專門設置了一套嚴格的安全權限機制。為避免應用程序的錯誤運行和程序崩潰等問題,調試前就要在AndroidManifest.xml文件中對目標需求權限進行申明并對與uI界面直接關聯的Java文件正式予以注冊。本系統還要對集成后的SDK將用到的網絡連接、系統保活、外置存儲等權限來設計給出確切聲明。

2實時信息功能具體實現

2.1登錄注銷

本系統將用戶賬號(ID)作為用戶唯一標識,提供了手動登錄和自動登錄兩種登錄模式。用戶在首次登錄或切換登錄賬號時,需要手動登錄。系統在獲取得到用戶輸入的賬號密碼后將其作為調用網易云信SDK中AuthService提供的login接口的參數向服務器發起主動登錄請求,服務器端校驗后返回登錄狀態碼,客戶端根據狀態碼進行相應的操作,若登錄成功則直接跳轉到消息界面。對于已具登錄歷史且授權允許自動登錄的用戶,在初始化SDK時系統會自動將保存在本地的登錄信息傳人Loginlnfo,實現后臺的自動登錄。系統通過監聽用戶登錄狀態的回調函數來判斷用戶是否登錄成功。

2.2信息發送與接收

在網易云信SDK中,消息對象均為IMMessage。IMMessage包括聊天對象ID、聊天類型、消息類型、消息內容、消息附件對象等基本的可編輯項,該消息對象支持文本、圖片、地理位置等類型的消息傳送。系統接收到消息后將接收方的ID作為IMMessage對象的標識,通過MessageBuilder提供的接口創建消息對象,然后調用MsgService的sendMessage接口將消息發送出去。

JSON是一種輕量級的數據交換格式。這是基于ECMAScript規范的—個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。JSON主要有以下優點:數據格式比較簡單、易于讀寫、格式都是壓縮的、能夠明顯節約帶寬。發送消息時,本系統將所有的文本消息用content字符串來整合保存并高效發送;將圖片消息序列化為JSON格式字符串后則順次展開傳輸。

為了設計得到消息的自動接收功能,必須添加消息接收觀察者。系統的消息回調函數會在消息接收觀察者監聽到新消息到達時,根據收到消息的類型產生不同的操作。對于文本或圖片類型的消息,系統會直接向用戶發出新消息通知并將消息加入到相應聊天對象的消息列表中顯示。消息接收觀察者具有生命周期。對于一次消息會話,本系統在onCreate()里對消息接收觀察者進行注冊,并在onDestroy()中將其注銷。

2.3群聊

本系統通過向用戶提供群組功能來實現多人聊天。在群組聊天中,每個群組擁有唯一的ID并記錄其含有的成員。與一對一聊天相比不同的是,當用戶在向群組發送消息時,系統直接將消息對象的標識設置為群組ID后發送,而不會給群組中的每個成員都發送一次消息。同時,對于一個群的群組成員來說,以群組ID為標識的消息對象會無可選擇地由其消息接收觀察者來自動響應接收。為了使用戶不致因群組消息而受到打擾,本系統還為用戶設定配備了群組消息提醒的開關功能。

3地圖功能設計實現

3.1地圖展現

地圖展現是地圖服務的基本設計功能。客戶端在接入互聯網的條件下,能獲取到全球地圖,并能通過自由縮放比例尺來查看地理信息的詳略。本系統通過高德地圖的SDK初始化地圖變量AMap后,用Android系統中的MapView組件來展示地圖。高德地圖提供了標準地圖、夜景地圖、衛星地圖三種地圖展現模式。根據用戶的選擇,系統通過對地圖控件的引用獲取AMap的變量實例,并對地圖類型給出有效設置。

3.2定位

高德地圖的定位服務包含GPS和網絡定位(Wi-Fi和基站定位)兩種能力,有高精度定位、低功耗定位、僅用設備定位三種模式。考慮到本系統對位置的準確性有較高要求,因此選用了GPS和網絡定位相結合的高精度定位模式進行定位。同時,為了最大限度保證位置的實時陛,系統采用了自動連續定位模式并設置默認更新速度為1 000ms/次。設計的操作過程具體如下:首先,在系統主線程中聲明一個AMapLocationClient類對象并傳人類型為context的對象作為參數;然后,創建一個AMapLocationClientOption對象,用來設置應用定位模式和關聯參數;最后,創建一個AMapLocationListener接口類對象,作為定位結果返回時的監聽器。

3.3導航

POI(Point of Interest)可稱為“導航地圖信息”,其中包含一個實際位置點的名稱、類別、經緯度、周邊這4個方面的指示信息。中國開放的POI數據庫,是整個導航產業的基石。用戶可根據目的地名稱、類別等信息進行搜索,比如對于一個名稱為“XXX”、類型為餐館的POI,在用戶搜索的關鍵字為“XXX”或餐館時,都能搜索得到。用戶通過搜索能獲得對景點、大廈、地鐵站甚至衛生間等建筑的準確查找。本系統的自定義標記能將所有搜索到的POI在地圖上分別形成標注,并在用戶根據實際情況選擇一個標記后,系統通過實現高德地圖導航SDK中的AMapNavi導航對外控制類來生成展示起點到目的點的路徑規劃,再通過調用該類的startNavi(int naviType)方法開啟實時導航。

3.4多用戶位置共享

在高德地圖定位SDK為用戶提供定位功能的基礎上,本系統實現了多用戶位置共享的功能。同時,本系統的群組功能也為群成員的多用戶位置共享設定了執行基礎。群組功能下,群用戶在自身定位成功并發起位置共享后,系統會將用戶自身的POI格式化并通過網易云信SDK的創建地理位置消息類IMMessage消息對象后,將消息對象發送到群組中(消息對象的發送過程詳細操作見2.2節):群組其他用戶的消息接收觀察者接收此類信息,經過標準化處理后傳遞給高德地圖并調用其定位SDK來求得結果定位,得到結果后在地圖中添加POI進行標注。地理位置的發送過程和接收過程分別如圖3、圖4所示。

4其他功能實現

4.1自定義列表適配器

Java的適配器模式能把一個類的接口變換成客戶端需要的另一種接口,從而使曾因接口不匹配而無法一起工作的類能夠轉為一體協同合作。適配類根據參數返還一個合適的實例給客戶端。為增強UI界面的流暢性、美觀性,本系統另外自定義了繼承BaseAdapter的列表視圖適配器ListViewAdapter。該類的技術功能可設定為顯示用戶的歷史會話列表及用戶間消息的往來。

4.2數據加密傳輸

研究知道,網易云信服務器在進行數據傳輸和存儲時配備了私有的加密協議。為了進一步確保系統在通信過程中的安全性,本系統采用了RSA加密技術對通信中交互的數據進行加密處理。具體過程如下:發送方用自己的私鑰將簽名內容加密,附加在信息后,再用接收方的公鑰將整個信息直接加密,而后將加密信息送給服務端;接收方收到加密信息后,先用自己的私鑰將加密信息實現解密,得到發送方的原文和數字簽名,再用發送方的公鑰來解密簽名。這個過程既保證了數據傳輸的安全性,也避免了發送方可能出現的“假冒”風險。

5系統界面展示

多用戶位置共享及實時通信系統的主運行界面如圖5所示。界面中有5人正在進行位置共享,每個人在確認自己位置時也能看到其他用戶所處的位置。在一位用戶將目的點設置為圖書館后,系統將目的地在圖中隨即清晰標出,并為所有用戶都規劃出了一條到圖書館的路徑顯示在地圖上。界面的下半部分為用戶提供了聊天界面,用戶可以憑此與其他用戶實時交流互動。同時,最近的一條聊天信息也會在用戶的頭像上得到理想定位顯示。

6結束語

本系統采用了模塊化結構設計方法并結合了Android的平臺特性,是基于Android的多用戶位置共享、實時通信系統。本文對該系統的功能實現和重點設計給出了詳盡的研發論述。仿真表明,客戶端界面友好,交互性強,符合終端用戶的要求。在對系統進行多端測試后,系統的穩定性和響應速度也符合預期設定,是一款滿足用戶特定需求的應用軟件。

主站蜘蛛池模板: 国产精品一区二区国产主播| 日韩精品一区二区三区swag| 中文字幕有乳无码| 视频一区亚洲| 制服丝袜国产精品| 欧洲欧美人成免费全部视频| 五月天久久综合| 亚洲最新网址| 国产高潮视频在线观看| 成人亚洲视频| 狠狠色香婷婷久久亚洲精品| 亚洲欧美不卡| 国产内射一区亚洲| 亚洲综合专区| 激情五月婷婷综合网| 免费一级毛片不卡在线播放| 美女免费黄网站| 茄子视频毛片免费观看| 婷婷亚洲最大| 亚洲国产精品无码久久一线| 国产91视频免费| 国产第二十一页| 午夜无码一区二区三区| 1024你懂的国产精品| 亚洲永久免费网站| 国产精品第一区| 黄色国产在线| 99ri精品视频在线观看播放| 国产成人综合在线视频| 国产免费观看av大片的网站| 9啪在线视频| 99精品影院| 久久96热在精品国产高清| 九九热视频在线免费观看| 白浆视频在线观看| 亚洲Av综合日韩精品久久久| 99久久国产综合精品2023| 国产区网址| 欧美精品另类| 青青青国产视频| 天天躁夜夜躁狠狠躁躁88| 一本大道无码日韩精品影视| 欧美精品影院| 91成人试看福利体验区| 国产白浆一区二区三区视频在线| 精品久久久久久中文字幕女| 国产成人欧美| 国产jizzjizz视频| 欧美区一区| 亚洲一区波多野结衣二区三区| 国产激情第一页| 久草视频一区| 中文字幕久久精品波多野结| 国产欧美视频在线| 人人91人人澡人人妻人人爽| 国产成人区在线观看视频| 欧美.成人.综合在线| 手机精品视频在线观看免费| 国产精品无码AV片在线观看播放| 精品人妻系列无码专区久久| 国产高颜值露脸在线观看| 色婷婷色丁香| 天天综合色网| jijzzizz老师出水喷水喷出| 国产三级视频网站| 又污又黄又无遮挡网站| 亚洲第一区在线| 无码丝袜人妻| 欧美日本二区| 伊人中文网| 香蕉综合在线视频91| 亚洲欧美日韩另类在线一| 亚洲视频免费在线| 精品国产电影久久九九| 国产精品刺激对白在线| 国产成人综合网在线观看| 一级毛片免费高清视频| 国产91高清视频| 国产精品第三页在线看| 国产一级精品毛片基地| 久久精品电影| 日韩精品成人网页视频在线|