【Android GPS】无法获取Location

oDon 2011-08-10 08:13:37
在Android的GPS开发中,使用location的想光API无法获取用户location,代码如下
locationMgr = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, mLocationListener);
Location lastKnownLocation = locationMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude = lastKnownLocation.getLatitude(); //经度
double longitude = lastKnownLocation.getLongitude(); //纬度
double altitude = lastKnownLocation.getAltitude();
locationMgr.removeUpdates(mLocationListener);

lastKnownLocation 为空

AndroidManifest.xml中
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES"/>


请教
...全文
795 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Howard-Lu 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 odon 的回复:]

已经解决了,
如果有Wifi的环境下可以使用NETWORK__PROVIDER
户外的话使用GPS_PROVIDER

callback第一次大概会有等待一段时间才会有反映,试验机器是HTC Incridble S
[/Quote]
楼主你好,我也在学习gps定位的做法,能不能分享一下你的定位部分的代码?137571735@qq.com,非常感谢
oDon 2011-08-25
  • 打赏
  • 举报
回复
已经解决了,
如果有Wifi的环境下可以使用NETWORK__PROVIDER
户外的话使用GPS_PROVIDER

callback第一次大概会有等待一段时间才会有反映,试验机器是HTC Incridble S
sunly4722 2011-08-25
  • 打赏
  • 举报
回复
GPS不是一次就能取到经纬度的,当它取不到时它会一直在那取直到取到为止,最好是添加上网络定位、基站定位
-droidcoffee- 2011-08-16
  • 打赏
  • 举报
回复
楼主 问题解决了么, 感觉这功能还蛮好玩的 哈哈。。
oDon 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mars0319 的回复:]

provide为GPS时,要靠卫星定位的,需要将手机移到室外
另外lastKnownLocation 是有可能为空的

所以要使用另一种方式
locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, mLocationListener);
设置监听器的方式,但是设置了监听器,也就是mLocatio……
[/Quote]
所以Google Map的定位在室内用的并不是GPS了
儿大不由爷 2011-08-11
  • 打赏
  • 举报
回复
是在模拟器上还是在设备上?设备要到室外才能收到GPS信号的.
zhaoyb0319 2011-08-11
  • 打赏
  • 举报
回复
provide为GPS时,要靠卫星定位的,需要将手机移到室外
另外lastKnownLocation 是有可能为空的

所以要使用另一种方式
locationMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, mLocationListener);
设置监听器的方式,但是设置了监听器,也就是mLocationListener应该会有那三个方法吧,你应该重写了吧
当location变化时,就可以打印location了,一般过程较长,最好是在室外测试,或把手伸到窗外

另外:locationMgr.removeUpdates(mLocationListener);这句这么早调用了,,,还监听什么嘛。。。
oDon 2011-08-11
  • 打赏
  • 举报
回复
是移动设备,在公司开发的。
jacyGmail 2011-08-11
  • 打赏
  • 举报
回复
模拟器 emultor control 传经纬度
移动设备 室外

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧