最近需要对GPS定位信息进行地理位置解析,看到一些文章里面建议使用百度地图API来做,不过考虑到百度地图在国外的使用体验,还是想试试通过Google地图来进行地理位置获取,闲话不多说,上代码。
首先当然需要检查GPS功能模块以及GPS开启状态,同时在使用GPS时需要考虑到GPS权限请求:
/** * check if it has any gps provider * @return boolean */ public boolean isHasGPSModule(){ // TODO Auto-generated method stub LocationManager lmManager = (LocationManager) getSystemService(LOCATION_SERVICE); if (lmManager != null) { List<String> mProviders = lmManager.getAllProviders(); if (mProviders != null && mProviders.contains(LocationManager.GPS_PROVIDER)) { return true; } } return false; }
/** * Check if GPS opened * * @return boolean */ private boolean checkGPSIsOpen() { boolean isOpen; LocationManager locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE); isOpen = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); return isOpen; }
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
确认GPS处于开启使用后,注册位置监听:
if (isHasGPSModule()) { lmManager = (LocationManager) getSystemService(LOCATION_SERVICE);