android 定位服务 耗电吗,关于Android的定位服务
今天因為工作須要,把以前編寫的一個GPS測試法度榜樣拿出來從新修改了一下。這個法度榜樣說起來竽暌剮些汗青了,是我11年編寫的,那時刻學(xué)了Android開辟沒多久,算是一個實驗性的作品。如今工作須要,從新拿出來修整。同時發(fā)明我對android的GPS辦事懂得并不深,所以今天特意瀏覽了有關(guān)GPS辦事的一些材料,把相干常識點記錄下來。
本人做了GPS相干的嵌入式軟件已經(jīng)幾年了,所以說起要做個測試GPS定位模塊的法度榜樣,第一反竽暌功就是串口攫取GPS模塊的數(shù)據(jù),然后解析GPS的NMEA格局?jǐn)?shù)據(jù)。NMEA是一種標(biāo)準(zhǔn)化數(shù)據(jù)格局,不僅僅GPS上應(yīng)用了,其他一些工業(yè)通信也是應(yīng)用這種標(biāo)準(zhǔn)化數(shù)據(jù)格局。解析相干數(shù)據(jù)然后顯示出來,就完成了一個根本的GPS定位測試功能。
查了一下才發(fā)明Android上做GPS相干定位辦事,不須要攫取NMEA數(shù)據(jù)分析,Android已經(jīng)封裝好了相干辦事,你要做的就是調(diào)用API。這個不知道應(yīng)當(dāng)認(rèn)為爽照樣認(rèn)為糾結(jié)。(Android也供給了攫取NMEA接口,下面會說到)
下面我們先來看看Android有關(guān)定位辦事供給的支撐:
Android定位辦事都是位于location下,膳綾擎都有相干解釋,這里就不具體解析。有一點有須要說說的是:GpsStatus.NmeaListener 官方的說法是可以攫取NMEA數(shù)據(jù),然則我這里測試發(fā)明,并沒有攫取到NMEA的數(shù)據(jù)。查閱過一些材料,說是google在底層并沒有實現(xiàn)數(shù)據(jù)反饋的功能。有時光,須要查看一下源碼。
2、LocationManager定位
1、Android 定位辦事//獲取定位辦事
LocationManager?locationManager?=?(LocationManager)?this.getSystemService(Context.LOCATION_SERVICE);
//斷定是否已經(jīng)打開GPS模塊
if?(locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER))?{
//GPS模塊打開,可以定位操作
}
//?經(jīng)由過程GPS定位
String?LocateType?=?locationManager.GPS_PROVIDER;
Location?location?=?locationManager.getLastKnownLocation(LocateType);
//?設(shè)置監(jiān)聽器,設(shè)置主動更新舅鏊歿里設(shè)置1000ms,移動距離:0米。
locationManager.requestLocationUpdates(provider,?1000,?0,?locationListener);
//?設(shè)置狀況監(jiān)聽回調(diào)函數(shù)。statusListener是監(jiān)聽的回調(diào)函數(shù)。
locationManager.addGpsStatusListener(statusListener);
//別的給出?經(jīng)由過程network定位設(shè)置
String?LocateType?=?locationManager.NETWORK_PROVIDER;
Location?location?=?locationManager.getLastKnownLocation(LocateType);
3、GpsStatus監(jiān)聽器
膳綾擎給出了定位辦事的初始化設(shè)置步調(diào),但我們都知道GPS衛(wèi)星是按期廣播數(shù)據(jù)的,也就是說會按期收到衛(wèi)星的GPS數(shù)據(jù)。我們并不克不及跟衛(wèi)星主動申請數(shù)據(jù),只能被動吸法術(shù)據(jù)。(中國的北斗2倒是可以發(fā)送衛(wèi)星報文給衛(wèi)星)是以我們須要注冊一個監(jiān)聽器來處理衛(wèi)星返回的數(shù)據(jù)。private?final?GpsStatus.Listener?statusListener?=?new?GpsStatus.Listener()?{
publicvoid?onGpsStatusChanged(intevent)?{
//?GPS狀況變更時的回調(diào),獲取當(dāng)緇ご態(tài)
GpsStatus?status?=?locationManager.getGpsStatus(null);
//本身編寫的辦法,獲取衛(wèi)星狀況相干數(shù)據(jù)
GetGPSStatus(event,?status);
}
};
4、獲取搜刮到的衛(wèi)星private?void?GetGPSStatus(intevent,?GpsStatus?status)?{
Log.d(TAG,?"enter?the?updateGpsStatus()");
if?(status?==?null)?{
}
推薦閱讀
【51CTO.com原創(chuàng)稿件】作為“聰明科技”的代名詞,無人店同夏末高溫一樣火熱不退。無人店,顧名思義就是借助RFID、智能付出、圖像辨認(rèn)等高科技手段實現(xiàn)店內(nèi)無人經(jīng)營的狀況,如許>>>詳細(xì)閱讀
地址:http://www.17bianji.com/lsqh/37106.html
總結(jié)
以上是生活随笔為你收集整理的android 定位服务 耗电吗,关于Android的定位服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 英文帮助文档地址,使用a
- 下一篇: android 4.4从图库选择图片,安