資源簡介
LBS獲取城市名稱,根據系統(tǒng)自帶GPS獲取經緯度來判斷所在城市
代碼片段和文件信息
package?com.taoche.qctt.activity;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?java.net.MalformedURLException;
import?java.net.URL;
import?java.net.URLConnection;
import?java.util.List;
import?android.content.Context;
import?android.location.Address;
import?android.location.Criteria;
import?android.location.Geocoder;
import?android.location.Location;
import?android.location.LocationListener;
import?android.location.LocationManager;
import?android.os.Bundle;
public?class?LBS?{
????
????//public?static?String?cityName?=?“深圳“;??//城市名????
????public?static?String?cityName?;??//城市名????
????????
????private?static?Geocoder?geocoder;???//此對象能通過經緯度來獲取相應的城市等信息????
????????
????/**??
?????*?通過地理坐標獲取城市名??其中CN分別是city和name的首字母縮寫??
?????*?@param?context??
?????*/????
????public?static?void?getCNBylocation(Context?context){????
????????????
????????geocoder?=?new?Geocoder(context);????
????????//用于獲取Location對象,以及其他????
????????LocationManager?locationManager;?????
????????String?serviceName?=?Context.LOCATION_SERVICE;????
????????//實例化一個LocationManager對象????
????????locationManager?=?(LocationManager)context.getSystemService(serviceName);????
????????//provider的類型????
????????String?provider?=?LocationManager.NETWORK_PROVIDER;????
????
????????Criteria?criteria?=?new?Criteria();????
????????criteria.setAccuracy(Criteria.ACCURACY_FINE);???//高精度????
????????criteria.setAltitudeRequired(false);????//不要求海拔????
????????criteria.setBearingRequired(false);?//不要求方位????
????????criteria.setCostAllowed(false);?//不允許有話費????
????????criteria.setPowerRequirement(Criteria.POWER_LOW);???//低功耗????
????????????
????????//通過最后一次的地理位置來獲得Location對象????
????????Location?location?=?locationManager.getLastKnownLocation(provider);????
????????????
????????String?queryed_name?=?updateWithNewLocation(location);????
????????if((queryed_name?!=?null)?&&?(0?!=?queryed_name.length())){????
????????????????
????????????cityName?=?queryed_name;????
????????}????
????????????
????????/*??
?????????*?第二個參數表示更新的周期,單位為毫秒;第三個參數的含義表示最小距離間隔,單位是米??
?????????*?設定每30秒進行一次自動定位??
?????????*/????
????????locationManager.requestLocationUpdates(provider?30000?50????
????????????????locationListener);????
????????//移除監(jiān)聽器,在只有一個widget的時候,這個還是適用的????
????????locationManager.removeUpdates(locationListener);????
????}????
????????
????/**??
?????*?方位改變時觸發(fā),進行調用??
?????*/????
????private?final?static?LocationListener?locationListener?=?new?LocationListener()?{????
????????String?tempCityName;????
????????public?void?onLocationchanged(Location?location)?{????
????????????????
????????????tempCityName?=?updateWithNewLocation(location);????
????????????if((tempCityName?!=?null)?&&?(tempCityName.length()?!=?0)){????
????????????????????
????????????????cityName?=?tempCityName;????
????????????}????
????????}????
????
- 上一篇:Android課程設計之視頻播放器
- 下一篇:servlet+jsp的購物車案例
評論
共有 條評論