2012-01-11 54 views
0

亲爱的Android开发者获得位置更新 - 安卓

我收到以下错误,当我尝试使用Android模拟器请求位置更新:

01-11 17:48:51.972: ERROR/LocationManagerService(542): requestUpdates got exception: 
01-11 17:48:51.972: ERROR/LocationManagerService(542): java.lang.IllegalArgumentException: provider=network 
01-11 17:48:51.972: ERROR/LocationManagerService(542):  at com.android.server.LocationManagerService.requestLocationUpdatesLocked(LocationManagerService.java:1000) 
01-11 17:48:51.972: ERROR/LocationManagerService(542):  at com.android.server.LocationManagerService.requestLocationUpdates(LocationManagerService.java:968) 
01-11 17:48:51.972: ERROR/LocationManagerService(542):  at android.location.ILocationManager$Stub.onTransact(ILocationManager.java:96) 
01-11 17:48:51.972: ERROR/LocationManagerService(542):  at android.os.Binder.execTransact(Binder.java:287) 
01-11 17:48:51.972: ERROR/LocationManagerService(542):  at dalvik.system.NativeStart.run(Native Method) 

我使用该工具来获取地点:

lastlocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

欲了解更多信息:我使用Android 1.5,minSDK:3,模拟器是gps启用,这是我的第一个应用程序:一个简单的手机定位器。

回答

0

我不认为你可以从模拟器使用网络提供商获得网络位置。尝试使用GPS提供商,然后在Eclipse的DDMS透视图,您可以通过按下发送按钮“模拟”位置更新(见下文):

enter image description here

希望这有助于。

+0

谢谢John的回复。我已经用GPS试过了,如果GPS开启的话它工作正常(它不会给我错误)。问题是,有时我的GPS被禁用,在这种情况下,我想从网络提供商处获得位置。 – 2012-01-11 23:14:51

+0

你是否认为我不会在真实的Android设备上出现这种错误(即,这是一个问题,因为我使用的模拟器不支持网络位置?) – 2012-01-11 23:24:59

+0

您可能在真实设备上出现“类似”问题例如,某人可能拥有的设备上关闭了GPS。如果你使用getBestProvider,正如Jay所建议的那样,那么你应该得到一些回应。如果你想要准确的位置,那么你可以弹出消息对话框,要求用户打开他们的GPS。 – 2012-01-12 08:52:16