Android三种GSM手机定位技术分析
程序员文章站
2023-12-05 17:12:04
复制代码 代码如下: // 声明locationmanager对象 locationmanager loctionmanager; // 通过系统服务,取得location...
复制代码 代码如下:
// 声明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("");
}
}
上一篇: java编程abstract类和方法详解
下一篇: Photoshop快速打造作逼真的热气球