location 定位

来源:互联网 发布:java开发工程师要求 编辑:程序博客网 时间:2024/05/24 23:14

具体实现代码如下:首先判断GPS模块是否存在或者是开启:

private void openGPSSettings()

{ LocationManager alm = (LocationManager) this .getSystemService(Context.LOCATION_SERVICE);

if (alm .isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) {

 Toast.makeText(this, "GPS模块正常", Toast.LENGTH_SHORT) .show();

 return;} Toast.makeText(this, "请开启GPS!", Toast.LENGTH_SHORT).show();

Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);

startActivityForResult(intent,0); //此为设置完成后返回到获取界面

}

如果开启正常,则会直接进入到显示页面,如果开启不正常,则会进行到GPS设置页面:获取代码如下:

private void getLocation() {

// 获取位置管理服务 LocationManager locationManager; String serviceName = Context.LOCATION_SERVICE;

 locationManager = (LocationManager) this.getSystemService(serviceName);

// 查找到服务信息

 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE);

// 高精度

criteria.setAltitudeRequired(false); criteria.setBearingRequired(false);

 criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW);

// 低功耗

String provider = locationManager.getBestProvider(criteria, true);

 // 获取GPS信息

Location location = locationManager.getLastKnownLocation(provider);

 // 通过GPS获取位置

 updateToNewLocation(location);

 // 设置监听器,自动更新的最小时间为间隔N秒(1秒为1*1000,

这样写主要为了方便)或最小位移变化超过N米

locationManager.requestLocationUpdates(provider, 100 * 1000, 500, locationListener);

 }

到这里就可以获取到地理位置信息了,但是还是要显示出来,那么就用下面的方法进行显示

private void updateToNewLocation(Location location) {

TextView tv1; tv1 = (TextView) this.findViewById(R.id.tv1);

 if (location != null) {

double latitude = location.getLatitude();

double longitude= location.getLongitude();

 tv1.setText("维度:" + latitude+ "\n经度" + longitude);

} else {

 tv1.setText("无法获取地理信息");

 }

 }

原创粉丝点击