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

基于Android平臺的定位技術的研究與開發

2014-11-10 11:02:15朱珣彭豐
科技資訊 2014年6期

朱珣彭豐

摘 要:介紹了Android平臺的背景,闡述了Android平臺的應用開發設計方法,對Android平臺的GPS定位技術與基站網絡定位技術進行了對比與分析,并結合實例,探討了Android平臺的定位技術的具體實現方法。

關鍵詞:Android 定位技術 GPS 基站網絡定位

中圖分類號:G64 文獻標識碼:A 文章編號:1672-3791(2014)02(c)-0006-03

Abstract:This paper includes the background information of Android OS,explains the design proposal of Android applications,compares and analyse GPS Technology and Network Positioning Technology,gives an example of applying positioning technology based on Android.

Key Words:Android;positioning technology;GPS;network positioning

位置是人們理解和駕馭世界的基礎,了解、掌握當前的位置信息,記錄人們的移動位置信息、共享人們的位置信息,都將有利于人們在快節奏的現代生活中進行相應的安排與規劃。隨著互聯網技術、空間信息技術、移動通信技術等技術的快速發展,包括智能手機、平板電腦在內的手持移動終端的硬件性能日益增強,使得定位技術與手持移動終端設備得以有機結合。

1 Google Android移動平臺的概述

Android是由Google與其他33家公司(包括手機制造商、軟硬件供應商、移動電信運營商等)聯合組成的開放手機聯盟(OHA)聯合推出與支持的智能手機操作系統[1~2]。Android使用開源策略,基于Linux內核,使用Google自制的應用程序運行環境DVM(Dalvik VM)。一般來說,Android應用程序包含Activity、Broadcast Intent Receiver、Service這3類組件。

Activity可以算是Android當中最基本的模塊,在其中我們可以添加一些UI組件View,并且可對這些View設置一些事件響應的數據處理,從而完成相應的功能。Intent在Android應用程序中是相當重要的,它可以用來在Activity之間進行跳轉,也可用于組件間的數據交互。BroadcastReceiver用于接收被發送出去的Intent對象,從而進行相應的事件響應和處理。Service是一種后臺進程,沒有用戶界面,對用戶而言是不可見的,一般用于持續時間較長的數據處理。

2 基于Android平臺定位技術的研究

Android平臺的定位技術有兩種,一種是GPS定位技術,另一種是基于移動電信運營商的基站網絡定位技術。

GPS的基本定位原理是:衛星不間斷地發送自身的星歷參數和時間信息,接收機收到這些信息后,經過計算求出自身的空間位置、時鐘以及相關的其他信息(包括接收機的定位精度、移動速度等)。

基站網絡定位技術的大致原理為:移動終端測量不同基站的下行導頻信號,得到不同基站下行導頻的TOA(Time of Arrival,到達時刻),根據該測量結果計算出移動終端到各基站的距離,再結合基站的位置坐標,就能夠計算出移動終端的位置(一般采用三角公式估計算法)。

Android平臺下這兩種定位技術的構架如圖1所示。

從圖1中可以看出,盡管在Android平臺上,GPS定位技術與基站網絡定位技術的底層實現技術不同,但Google給這兩種定位技術提供了一套相同定位接口,給應用程序設計帶來了極大的便利。

Android平臺的GPS定位技術與基站網絡定位技術的特點如下。

(1)GPS定位技術的特點。

GPS定位技術的主要優勢體現在定位精度高,可達10~50 m。其缺點為初次定位等待時間較長;GPS定位模塊的功耗較大,較為耗電;對環境要求高,必須要在能夠看到大面積天空的情況下才能實現定位,在封閉的室內是無法定位的;易受天氣的影響和其他設備的信號干擾,在陰雨天氣或者有其他GPS儀器的信號干擾時,無法正常工作。

(2)基站網絡定位技術的特點。

基站網絡定位技術的優勢在于定位速度快、功耗小且對環境要求低,只需要有基站網絡信號便可進行定位,幾乎不受天氣影響和其他設備的干擾。缺點在于定位精度較低,一般為500~2000 m,具體數值受到用戶當前所處位置的基站密度的影響。

因此,在Android平臺的定位技術上,GPS定位技術和基站網絡定位技術各有優缺點,較好的運用策略是在室外且設備電力充足時采用GPS進行高精度定位,在GPS信號微弱的地鐵、大樓等室內區域采用基站網絡定位,從而實現無死角的定位。

3 Android平臺定位技術的運用

定位技術運用的核心功能在于獲得位置數據。當用戶的地理位置發生改變時,需要使用實現(implements)LocationListener (android.location.LocationListener)接口的對象來接收LocationManager發送的位置更新提醒,并獲得其中包含位置信息的Location對象,從該Location對象中獲取位置數據,便可根據需要進行相應的操作。

基本的定位功能步驟為:

(1)開始;

(2)調用getSystemService(),獲得LocationManager的Handle,即lm變量;

(3)創建實現LocationListener接口的實例對象,即mls變量;

(4)根據設定的定位方式,定位周期等參數調用lm.requestLocationUpdate()方法;

(5)等待獲得定位數據(等待數據與minTime、minDistance相關);

(6)判斷mls對象是否能監聽到位置對象提醒;

(7)能,則mls.onLocationChanged()被調用,從Location對象參數中獲取位置對象數據,轉(7);不能,則轉(5);

(8)判斷是否關閉定位功能,否,則轉(5);是,則轉(8);

(9)調用LocationManage.removeUpdates()方法;

(10)結束。

通過調用Context.getSystemService(Context.LOCATION_SERVICE)方法可獲得LocationManager的Handle。隨后創建一個實現(implements)LocationListener接口的實例對象。

MyLocationListener實現了LocationListener接口。當MyLocationListener對象接收到LocationManager發送的位置變化提醒后,其onLocationChanged()方法便會被調用,并獲得包含最新位置數據的Location對象(形參loc),在此方法體中我們可以進行相應數據操作,例如獲得經度LON=loc.getLongitude()等。

創建了MyLocationListener對象后需要對其進行注冊(同時也是提交更新位置數據的請求,即開啟定位服務),注冊后的MyLocationListener對象才能接收到LocationManager發送的位置變化提醒。注冊方法是調用LocationManager的requestLocationUpdates(String provider, long minTime,float minDistance, LocationListener listener)函數。在調用requestLocationUpdates()方法時,需指定定位數據源provider,定位更新周期minTime(毫秒),定位更新最小變化距離minDistance(米),例如:

lm.requestLocationUpdates(“gps”, 60000, 200.0,mls);

定位數據源provider有兩種,即GPS和Network。若欲使用GPS定位方式,則將provider指定為LocationManager.GPS_PROVIDER(或者直接使用字符串“gps”);若欲使用基站定位方式,則將provider指定為LocationManager.NETWORK_PROVIDER(或者直接使用字符串“network”)。

除了明確指定定位數據源的方式外,還可通過Criteria類使系統自動判斷最佳定位數據源,方法是生成一個Criteria(android.location.Criteria)類的實例化對象,通過調用setAccuracy(),setPowerRequirement(),setSpeedAccuracy()等方法,設定系統判斷規則,包括耗電量、定位精度、是否返回相對位置等一系列規則,隨后調用LocationManager.getBestProvider(Criteria criteria, Boolean enabledOnly)方法,即可獲得系統根據Criteria實例對象設定的規則判斷出的最佳定位數據源。

定位更新周期minTime使用millisecond(毫秒)作為單位,表示LocationManager連續兩次發送位置更新提醒的間隔時間。需要注意的是,設定的minTime值只能作為一個參考,實際的位置更新提醒時間間隔可能比這個值大,也可能比這個值小。定位更新最小變化距離minDistance使用meter(米)作為單位,表示LocationManager連續兩次發送位置更新提醒的位置距離,當且僅當位置變化距離大于此值時,LocationManag

er才會發送位置更新提醒。如果需要盡可能快地獲取位置信息,可以將minTime和minDistance都設置為0。需要指出的是,過于頻繁地更新定位會消耗移動終端更多的電量,因此不建議設定小于60000 ms(1 min)的minTime值。

調用LocationManager的removeUpdates(LocationListener listener)方法可注銷實現LocationListener接口的對象,停止定位服務,從而減少移動終端的內存、電量的消耗。

4 結語

目前國內的3G網絡正在普及中,Android智能手機在我國的手機市場份額也在穩步上升,這對基于Android平臺的定位技術相關的應用服務的發展,無疑有著極大的促進作用。Google公司在空間數據服務方面的優勢顯而易見,因而由OHA推出的Android平臺在移動定位開發方面有著得天獨厚的優勢,加上Android完全開源的特性,使得移動設備制造商、移動電信運營商、軟件公司等可共同參與開發,基于Android移動平臺的定位技術擁有廣闊的發展前景。

參考文獻

[1] 基于Android平臺的移動位置服務社交網絡用戶行為相似性分析[J].計算機應用,2012.

[2] 祝洪嬌.基于Android平臺的位置服務系統的設計與實現[D].北京交通大學,2012.

[3] 劉正,陳強.基于Android的GPS應用中的研究與開發[J].中國西部科技,2010,9:15.

[4] 趙建勛.基于Android平臺的移動位置服務的開發與實現[J].現代商貿工業,2010,20:271.

[5] Rick Rogers,John Lombardo,Zigurd Mednieks,Blake Meike.Android Application Development[M].Sebastopol:OReilly Media,2009.

[6] 靳巖,姚尚朗.Google Android開發入門與實戰[M].北京:人民郵電出版社,2009.

[7] 蓋索林.Google Android開發入門指南[M].2版.北京:人民郵電出版社,2009.

(3)創建實現LocationListener接口的實例對象,即mls變量;

(4)根據設定的定位方式,定位周期等參數調用lm.requestLocationUpdate()方法;

(5)等待獲得定位數據(等待數據與minTime、minDistance相關);

(6)判斷mls對象是否能監聽到位置對象提醒;

(7)能,則mls.onLocationChanged()被調用,從Location對象參數中獲取位置對象數據,轉(7);不能,則轉(5);

(8)判斷是否關閉定位功能,否,則轉(5);是,則轉(8);

(9)調用LocationManage.removeUpdates()方法;

(10)結束。

通過調用Context.getSystemService(Context.LOCATION_SERVICE)方法可獲得LocationManager的Handle。隨后創建一個實現(implements)LocationListener接口的實例對象。

MyLocationListener實現了LocationListener接口。當MyLocationListener對象接收到LocationManager發送的位置變化提醒后,其onLocationChanged()方法便會被調用,并獲得包含最新位置數據的Location對象(形參loc),在此方法體中我們可以進行相應數據操作,例如獲得經度LON=loc.getLongitude()等。

創建了MyLocationListener對象后需要對其進行注冊(同時也是提交更新位置數據的請求,即開啟定位服務),注冊后的MyLocationListener對象才能接收到LocationManager發送的位置變化提醒。注冊方法是調用LocationManager的requestLocationUpdates(String provider, long minTime,float minDistance, LocationListener listener)函數。在調用requestLocationUpdates()方法時,需指定定位數據源provider,定位更新周期minTime(毫秒),定位更新最小變化距離minDistance(米),例如:

lm.requestLocationUpdates(“gps”, 60000, 200.0,mls);

定位數據源provider有兩種,即GPS和Network。若欲使用GPS定位方式,則將provider指定為LocationManager.GPS_PROVIDER(或者直接使用字符串“gps”);若欲使用基站定位方式,則將provider指定為LocationManager.NETWORK_PROVIDER(或者直接使用字符串“network”)。

除了明確指定定位數據源的方式外,還可通過Criteria類使系統自動判斷最佳定位數據源,方法是生成一個Criteria(android.location.Criteria)類的實例化對象,通過調用setAccuracy(),setPowerRequirement(),setSpeedAccuracy()等方法,設定系統判斷規則,包括耗電量、定位精度、是否返回相對位置等一系列規則,隨后調用LocationManager.getBestProvider(Criteria criteria, Boolean enabledOnly)方法,即可獲得系統根據Criteria實例對象設定的規則判斷出的最佳定位數據源。

定位更新周期minTime使用millisecond(毫秒)作為單位,表示LocationManager連續兩次發送位置更新提醒的間隔時間。需要注意的是,設定的minTime值只能作為一個參考,實際的位置更新提醒時間間隔可能比這個值大,也可能比這個值小。定位更新最小變化距離minDistance使用meter(米)作為單位,表示LocationManager連續兩次發送位置更新提醒的位置距離,當且僅當位置變化距離大于此值時,LocationManag

er才會發送位置更新提醒。如果需要盡可能快地獲取位置信息,可以將minTime和minDistance都設置為0。需要指出的是,過于頻繁地更新定位會消耗移動終端更多的電量,因此不建議設定小于60000 ms(1 min)的minTime值。

調用LocationManager的removeUpdates(LocationListener listener)方法可注銷實現LocationListener接口的對象,停止定位服務,從而減少移動終端的內存、電量的消耗。

4 結語

目前國內的3G網絡正在普及中,Android智能手機在我國的手機市場份額也在穩步上升,這對基于Android平臺的定位技術相關的應用服務的發展,無疑有著極大的促進作用。Google公司在空間數據服務方面的優勢顯而易見,因而由OHA推出的Android平臺在移動定位開發方面有著得天獨厚的優勢,加上Android完全開源的特性,使得移動設備制造商、移動電信運營商、軟件公司等可共同參與開發,基于Android移動平臺的定位技術擁有廣闊的發展前景。

參考文獻

[1] 基于Android平臺的移動位置服務社交網絡用戶行為相似性分析[J].計算機應用,2012.

[2] 祝洪嬌.基于Android平臺的位置服務系統的設計與實現[D].北京交通大學,2012.

[3] 劉正,陳強.基于Android的GPS應用中的研究與開發[J].中國西部科技,2010,9:15.

[4] 趙建勛.基于Android平臺的移動位置服務的開發與實現[J].現代商貿工業,2010,20:271.

[5] Rick Rogers,John Lombardo,Zigurd Mednieks,Blake Meike.Android Application Development[M].Sebastopol:OReilly Media,2009.

[6] 靳巖,姚尚朗.Google Android開發入門與實戰[M].北京:人民郵電出版社,2009.

[7] 蓋索林.Google Android開發入門指南[M].2版.北京:人民郵電出版社,2009.

(3)創建實現LocationListener接口的實例對象,即mls變量;

(4)根據設定的定位方式,定位周期等參數調用lm.requestLocationUpdate()方法;

(5)等待獲得定位數據(等待數據與minTime、minDistance相關);

(6)判斷mls對象是否能監聽到位置對象提醒;

(7)能,則mls.onLocationChanged()被調用,從Location對象參數中獲取位置對象數據,轉(7);不能,則轉(5);

(8)判斷是否關閉定位功能,否,則轉(5);是,則轉(8);

(9)調用LocationManage.removeUpdates()方法;

(10)結束。

通過調用Context.getSystemService(Context.LOCATION_SERVICE)方法可獲得LocationManager的Handle。隨后創建一個實現(implements)LocationListener接口的實例對象。

MyLocationListener實現了LocationListener接口。當MyLocationListener對象接收到LocationManager發送的位置變化提醒后,其onLocationChanged()方法便會被調用,并獲得包含最新位置數據的Location對象(形參loc),在此方法體中我們可以進行相應數據操作,例如獲得經度LON=loc.getLongitude()等。

創建了MyLocationListener對象后需要對其進行注冊(同時也是提交更新位置數據的請求,即開啟定位服務),注冊后的MyLocationListener對象才能接收到LocationManager發送的位置變化提醒。注冊方法是調用LocationManager的requestLocationUpdates(String provider, long minTime,float minDistance, LocationListener listener)函數。在調用requestLocationUpdates()方法時,需指定定位數據源provider,定位更新周期minTime(毫秒),定位更新最小變化距離minDistance(米),例如:

lm.requestLocationUpdates(“gps”, 60000, 200.0,mls);

定位數據源provider有兩種,即GPS和Network。若欲使用GPS定位方式,則將provider指定為LocationManager.GPS_PROVIDER(或者直接使用字符串“gps”);若欲使用基站定位方式,則將provider指定為LocationManager.NETWORK_PROVIDER(或者直接使用字符串“network”)。

除了明確指定定位數據源的方式外,還可通過Criteria類使系統自動判斷最佳定位數據源,方法是生成一個Criteria(android.location.Criteria)類的實例化對象,通過調用setAccuracy(),setPowerRequirement(),setSpeedAccuracy()等方法,設定系統判斷規則,包括耗電量、定位精度、是否返回相對位置等一系列規則,隨后調用LocationManager.getBestProvider(Criteria criteria, Boolean enabledOnly)方法,即可獲得系統根據Criteria實例對象設定的規則判斷出的最佳定位數據源。

定位更新周期minTime使用millisecond(毫秒)作為單位,表示LocationManager連續兩次發送位置更新提醒的間隔時間。需要注意的是,設定的minTime值只能作為一個參考,實際的位置更新提醒時間間隔可能比這個值大,也可能比這個值小。定位更新最小變化距離minDistance使用meter(米)作為單位,表示LocationManager連續兩次發送位置更新提醒的位置距離,當且僅當位置變化距離大于此值時,LocationManag

er才會發送位置更新提醒。如果需要盡可能快地獲取位置信息,可以將minTime和minDistance都設置為0。需要指出的是,過于頻繁地更新定位會消耗移動終端更多的電量,因此不建議設定小于60000 ms(1 min)的minTime值。

調用LocationManager的removeUpdates(LocationListener listener)方法可注銷實現LocationListener接口的對象,停止定位服務,從而減少移動終端的內存、電量的消耗。

4 結語

目前國內的3G網絡正在普及中,Android智能手機在我國的手機市場份額也在穩步上升,這對基于Android平臺的定位技術相關的應用服務的發展,無疑有著極大的促進作用。Google公司在空間數據服務方面的優勢顯而易見,因而由OHA推出的Android平臺在移動定位開發方面有著得天獨厚的優勢,加上Android完全開源的特性,使得移動設備制造商、移動電信運營商、軟件公司等可共同參與開發,基于Android移動平臺的定位技術擁有廣闊的發展前景。

參考文獻

[1] 基于Android平臺的移動位置服務社交網絡用戶行為相似性分析[J].計算機應用,2012.

[2] 祝洪嬌.基于Android平臺的位置服務系統的設計與實現[D].北京交通大學,2012.

[3] 劉正,陳強.基于Android的GPS應用中的研究與開發[J].中國西部科技,2010,9:15.

[4] 趙建勛.基于Android平臺的移動位置服務的開發與實現[J].現代商貿工業,2010,20:271.

[5] Rick Rogers,John Lombardo,Zigurd Mednieks,Blake Meike.Android Application Development[M].Sebastopol:OReilly Media,2009.

[6] 靳巖,姚尚朗.Google Android開發入門與實戰[M].北京:人民郵電出版社,2009.

[7] 蓋索林.Google Android開發入門指南[M].2版.北京:人民郵電出版社,2009.

主站蜘蛛池模板: 永久免费精品视频| 国产在线一区二区视频| 五月天天天色| 91福利免费| 国产成人资源| 色国产视频| 精品無碼一區在線觀看 | 国产麻豆精品久久一二三| 欧美日韩亚洲国产主播第一区| 日韩中文无码av超清| 欧美中文字幕无线码视频| 99福利视频导航| 在线看免费无码av天堂的| 国产女人爽到高潮的免费视频| 免费福利视频网站| 亚州AV秘 一区二区三区| 天堂av高清一区二区三区| 久久亚洲综合伊人| 热这里只有精品国产热门精品| 国产在线精彩视频二区| 亚洲无码视频一区二区三区| 午夜福利免费视频| 午夜精品区| 色色中文字幕| 国产精品手机在线观看你懂的| 国产精品入口麻豆| 精品国产污污免费网站| 国产精品一线天| 国产区在线观看视频| 日本伊人色综合网| 女人av社区男人的天堂| 高清无码手机在线观看| 国内黄色精品| 国产精品人成在线播放| 久久这里只有精品免费| 国产精品分类视频分类一区| 成人无码一区二区三区视频在线观看| 亚洲女同一区二区| 亚洲综合色在线| 国产91高跟丝袜| 狠狠色噜噜狠狠狠狠色综合久| 国产激情无码一区二区免费| 98超碰在线观看| 成人国产精品视频频| 精品亚洲欧美中文字幕在线看 | 午夜精品福利影院| 国产手机在线小视频免费观看| 日本午夜影院| 中文字幕人妻av一区二区| 久久这里只精品热免费99| www.狠狠| 欧美视频在线第一页| 欧美在线一二区| 国产精品毛片一区| 青青操视频在线| 人妻无码AⅤ中文字| 成人中文在线| 亚洲不卡网| AV熟女乱| 九九热精品免费视频| 99视频在线免费| 国产成人精品18| 国产特级毛片| 在线观看亚洲国产| 狠狠综合久久久久综| 啦啦啦网站在线观看a毛片| 亚洲日韩精品伊甸| 国内视频精品| 无码精品国产dvd在线观看9久| 日本欧美中文字幕精品亚洲| 人人爱天天做夜夜爽| 日韩在线成年视频人网站观看| 一级片免费网站| 国产成人永久免费视频| 亚洲侵犯无码网址在线观看| 免费jjzz在在线播放国产| 欧美另类一区| 香蕉视频在线观看www| 日韩高清在线观看不卡一区二区| 亚洲区一区| 97国产在线视频| 激情视频综合网|