Android三种GSM手机定位技术分析_安卓软件开发教程-查字典教程网
Android三种GSM手机定位技术分析
Android三种GSM手机定位技术分析
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下://声明LocationManager对象LocationManagerloctionManager;//通过系统服务,取...

复制代码 代码如下:

// 声明LocationManager对象

LocationManager loctionManager;

// 通过系统服务,取得LocationManager对象

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

方式一:

复制代码 代码如下:

// 通过GPS位置提供器获得位置

String providerGPS = LocationManager.GPS_PROVIDER;

Location location = loctionManager.getLastKnownLocation(providerGPS);

方式二:

复制代码 代码如下:

// 通过基站位置提供器获得位置

String providerNetwork = LocationManager.NETWORK_PROVIDER;

Location location = loctionManager.getLastKnownLocation(providerNetwork);

方式三:

复制代码 代码如下:

// 使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置

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 = loctionManager.getBestProvider(criteria, true);

// 获得最后一次变化的位置

Location location = loctionManager.getLastKnownLocation(provider);

处理:

复制代码 代码如下:

// 显示在EditText中

updateWithNewLocation(location);

// 监听位置变化,2秒一次,距离10米以上

loctionManager.requestLocationUpdates(provider, 1000, 1, locationListener);

监听器及显示:

复制代码 代码如下:

// 位置监听器

private final LocationListener locationListener = new LocationListener() {

@Override

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

}

@Override

public void onProviderEnabled(String provider) {

}

@Override

public void onProviderDisabled(String provider) {

}

// 当位置变化时触发

@Override

public void onLocationChanged(Location location) {

// 使用新的location更新TextView显示

updateWithNewLocation(location);

}

};

private void updateWithNewLocation(Location location) {

if (location != null) {

double lat = location.getLatitude();

double lng = location.getLongitude();

latStr = format.format(lat);

lonStr = format.format(lng);

txtLat.setText(latStr);

txtLon.setText(lonStr);

} else {

txtLat.setText("");

txtLon.setText("");

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类