我想從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