無網(wǎng)絡(luò)情況下,使用Android GPS定位

需求背景:

手機(jī)的wifi連上了物聯(lián)網(wǎng)設(shè)備,只能通信,沒有網(wǎng)絡(luò)數(shù)據(jù)。在這個前提下需要獲得手機(jī)的經(jīng)緯度。

解決辦法:

1.嘗試使用百度地圖并且網(wǎng)絡(luò)請求綁定為移動網(wǎng)絡(luò)。結(jié)果:由于百度把網(wǎng)絡(luò)請求的邏輯封裝起來了,

沒有辦法進(jìn)行綁定操作,失?。。?!

2.嘗試通過跨進(jìn)程通信,開啟一個新的進(jìn)程專門用來進(jìn)行定位請求,由于綁定移動網(wǎng)絡(luò)到該進(jìn)程時沒有生效,所以也失敗了??!

3.使用Android的GPS定位,沒有網(wǎng)絡(luò)也可以獲取經(jīng)緯度。贊一個!只不過在室內(nèi)GPS基本不可行,這個是個弱點。

開發(fā)的思路:

作者的一點小建議:1.在百度這個的時候,看了很多人的分享,有很多是為了寫這個而寫的,也就是寫給自己看的,所以看起來不是很清晰明了,這種要避免掉,不要因為這些而看了沒耐心。2.看代碼要看他的中心,有可能100行代碼只有10行是中心,這個要學(xué)習(xí)觀察,最好梳理一下流程,就像本文的GPS定位一樣,最好梳理一下步驟。下面是我梳理的步驟。

實踐步驟:

1.首先聲明LocationManager變量,如下:

private LocationManager?? lm;

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

2.使用GPS定位,是通過將上面的lm的Provider設(shè)置LocationManager.GPS_PROVIDER。當(dāng)然要在GPS打開的時候才能設(shè)置,否則不行,那么我們先做一個判斷:

lm.isProviderEnabled(LocationManager.GPS_PROVIDER);

表示GPS是否可用。

3.可用的話,可以設(shè)置lm的定位周期,如下

//設(shè)置定位的周期(含義:使用GPS,變化為1秒,1米更新一次)

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1,locationListener);

//順便把LocationListener給寫了,這個使用監(jiān)聽位置信息改變的類。

private LocationListenerlocationListener =new LocationListener() {

@Override

? ? public void onLocationChanged(Location location) {

Toast.makeText(GpsActivity.this,"位置信息正在變化,經(jīng)緯度:" + location.getLongitude() +"/" +

location.getLatitude(), Toast.LENGTH_LONG).show();

}

@Override

? ? public void onStatusChanged(String provider,int status, Bundle extras) {

}

@Override

? ? public void onProviderEnabled(String provider) {

}

@Override

? ? public void onProviderDisabled(String provider) {

Toast.makeText(GpsActivity.this,"定位不可用!", Toast.LENGTH_LONG).show();

}

};

4.可以獲取最新的位置信息

//獲取最新的定位信息

Location location=lm.getLastKnownLocation(locationProvider);


到這里就差不多了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容