首页 > 系统 > Android > 正文

Android三种GSM手机定位技术分析

2019-10-24 21:10:07
字体:
来源:转载
供稿:网友
本文将详细介绍Android三种GSM手机定位技术比较差别,有感兴趣的朋友可以参考下
 
复制代码代码如下:

// 声明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(""); 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表