我想从BroadcastReceiver获取位置。BroadcastReceiver中的locationManager
我在我的服务中有这个,它运作良好。
locationManager = (LocationManager) getBaseContext().getSystemService(LOCATION_SERVICE);
但现在我想在BroadcastReceiver中使用它。我应该如何改变它?
我想从BroadcastReceiver获取位置。BroadcastReceiver中的locationManager
我在我的服务中有这个,它运作良好。
locationManager = (LocationManager) getBaseContext().getSystemService(LOCATION_SERVICE);
但现在我想在BroadcastReceiver中使用它。我应该如何改变它?
我想从BroadcastReceiver获取位置。
这是不太可能的,除了getLastKnownLocation()
,它可以很容易地返回null
。对于其他任何事情,你需要一个长寿命的组件,一个可以坚持足够长的时间来获得定位。如果您想通过广播找到位置触发,那很好,但您可能需要Service
来实际获得位置修正并对其执行某些操作。
我有这个在我的服务,它运作良好。
请删除电话getBaseContext()
。你不需要它,我相当怀疑你知道它做了什么。请致电getSystemService()
本身Service
。
但是现在我想在BroadcastReceiver中使用它。我应该如何改变它?
如果你想调用getLastKnownLocation()
上LocationManager
,您可以在Context
调用getSystemService()
。您通过Context
传入您的BroadcastReceiver
的onReceive()
方法。
我正在尝试获取GPS位置。我有我的代码服务,它运作良好,但我想要得到我的位置,即使电话被锁定,这就是为什么我选择BroadcastReceiver。 – 2015-03-18 23:21:39
@BohumilKulhanek:在设备被锁定时获取位置与您使用“BroadcastReceiver”或“Service”获取位置修正无关。 – CommonsWare 2015-03-18 23:28:00