Android GPS定位 获取经纬度 Android 应用服务器 Eclipse 移动 是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息。

获取位置信息分为三步:
1. 添加系统权限,来支持对LBS硬件的访问
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>

2. 得到系统服务 的LocationManager 对象
LocationManager loctionManager;
String contextService=Context.LOCATION_SERVICE;
//通过系统服务,取得LocationManager对象
loctionManager=(LocationManager) getSystemService(contextService);

3. 得到位置提供器,通过位置提供器,得到位置信息,可以指定具体的位置提供器,也可以提供一个标准集合,让系统根据 标准匹配最适合的位置提供器,位置信息是由位置提供其提供的。
a. 通过GPS位置提供器获得位置(指定具体的位置提供器)
String provider=LocationManager.GPS_PROVIDER;
Location location = loctionManager.getLastKnownLocation(provider);

b. 使用标准集合,让系统自动选择可用的最佳位置提供器,提供位置
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);

最后将位置信息显示在TextView中,如图:


监听位置的变化
//监听位置变化,2秒一次,距离10米以上
loctionManager.requestLocationUpdates(provider, 2000, 10, 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);
}
};

通过改变位置经纬度,程序会自动更新TextView显示的位置信息

  • 大小: 17.5 KB
  • 大小: 7.3 KB
  • 大小: 7.8 KB
  • 大小: 17.5 KB
  • WhereAmI.rar (42 KB)
  • 下载次数: 2206
  • 查看图片附件
分享到: 如何使用搜索技巧来成为一名高效的程序员( ... | LBS(Location Based Service,基于位置的服 ...
  • 2010-12-26 15:50
  • 浏览 25576
  • 评论(31)
  • 分类:移动开发
  • 相关推荐
评论
31 楼 mvpstevenlin 2013-08-26 LoveZhou 写道 mvpstevenlin 写道 我在模拟器上运行,没有内容。
请问博主,应该怎么用?
到设置中把gps定位打开试试
谢谢 博主 30 楼 LoveZhou 2013-05-06 pimkle 写道 2.3.3报错
google 可能已经不支持这种方式定位了,现在我在公司的项目里,用的是百度定位 29 楼 pimkle 2013-05-04 2.3.3报错 28 楼 czltx224 2013-04-28 不行啊,獲取不到 27 楼 LoveZhou 2013-03-25 xiexinjing 写道 附件不是源代码 是源代码,这个demo是很久以前的了,当时测试可以获取,现在google定位可能获取不到位置了,我在公司用百度的开放sdk获取的位置
26 楼 xiexinjing 2013-03-21 附件不是源代码 25 楼 yaoguanyuan 2013-02-08 我用这代码得到的数值怎么跟你上面的数据是一模一样的,为什么不是我当地的经纬度值 24 楼 zhaomingshen 2012-12-19 真个是没得结果,测试环境,三星PAD N8000,Android4.0,开启GPS,开启WLAN,插上手机卡,信号肯定是有的,有朋友晓得是怎么回事不呢? 23 楼 liangzedong 2012-12-17 获取经纬度两个数字,请问这两个数字有什么用呢?可以怎么用? 22 楼 zhouxiangang123 2012-11-22 很不错,我的也不能定位~

21 楼 min_you1314 2012-08-23 很不错,好像 不能定位
20 楼 LoveZhou 2012-05-03 mvpstevenlin 写道 我在模拟器上运行,没有内容。
请问博主,应该怎么用?
到设置中把gps定位打开试试 19 楼 mvpstevenlin 2012-05-02 我在模拟器上运行,没有内容。
请问博主,应该怎么用? 18 楼 wf1023 2012-04-05 感谢分享... 17 楼 LoveZhou 2012-03-16 han0917 写道 LoveZhou 写道 JACKDG2010 写道 location 在真机上运行是null。
在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置
那如何实现精确定位啊???另外在室内测试为什么获取不到啊?
在室内有取不到的情况,还不太清楚如何精确定位,看很多软件,定位也都是定大体位置,都不精确 16 楼 han0917 2012-03-15 LoveZhou 写道 JACKDG2010 写道 location 在真机上运行是null。
在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置
那如何实现精确定位啊???另外在室内测试为什么获取不到啊? 15 楼 LoveZhou 2012-01-16 335062868 写道 这个是用百度定位还是Google定位的呢?
google 14 楼 335062868 2012-01-16 这个是用百度定位还是Google定位的呢? 13 楼 LoveZhou 2012-01-13 JACKDG2010 写道 location 在真机上运行是null。
在真机上有可能是null,有获取不到的情况,gps定位不到,需要用network定位,network定位,位置不入gps准确,但是只要手机有信号就能定到,经常是很大一个范围内的手机显示都在同一个位置 12 楼 JACKDG2010 2012-01-13 location 在真机上运行是null。

更多相关文章

  1. android 获取当前设备的ip地址 mac地址 设备号 手机号 运营商信
  2. Android基础篇——创建一个Android工程
  3. android系统的优缺点
  4. 【Android测试工具】02. Android抓包解析全过程
  5. Android(安卓)编程下设置 Activity 切换动画
  6. 【移动开发】WIFI热点通信(一)
  7. Android——简介
  8. (转帖)Android重力感应Demo
  9. Android(安卓)studio如何用真机调试,只需两步

随机推荐

  1. LinearLayout布局中将一个控件放在屏幕的
  2. Android(安卓)之 国际化与资源自适应
  3. Android(安卓)Activity跳转学习笔记
  4. Android(安卓)4.1 Jelly Bean adds Offli
  5. Android: PLEASE DO NOT USE A WAKE LOCK
  6. Android(安卓)内存管理工具
  7. Android(安卓)如何设置网关和路由
  8. Android(安卓)5.0WebView选择本地文件
  9. Android(安卓)UI布局练习1(垂直分布)
  10. Android(安卓)Intents and Intent Filter