0

我正在尝试获取用户的最后一个已知位置,我正在使用 getLastKnownLocation 方法,因为我只想读取一次位置,我在模拟器中测试应用程序而不是真正的手机,但位置为空,我的代码

locMgr = (LocationManager) getSystemService(LOCATION_SERVICE); 
Location myLoc = locMgr.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
if(myLoc != null)
{}
else 
{
 Toast.makeText(getApplicationContext(), "coudn't get your location", Toast.LENGTH_LONG).show();
}

问题是我不知道何时将位置(从 DDMS)发送到模拟器(我尝试在打开应用程序之前和之后发送它,有时它可以工作)

我可以通过 imlemting LocationListener 获取位置并执行以下操作:

mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE); 
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 3, this); 

并覆盖工作正常的 onLocationChanged() 方法,但每次位置更改时它都会告诉我,我只需要读取一次位置。那么如何一次获取用户的当前位置呢?

4

1 回答 1

0

为什么不创建一个可以在位置确定后回调的服务或线程呢?这样你就可以经常检查。

于 2012-06-21T19:39:59.410 回答