AndroidのgetLastKnown Locationがnullを返す場合.


概要
位置情報を利用したおもちゃのプロジェクトをしています.getLastKnownLocation()はnullを返し続けます.
前回更新した場所を返しますが、保存されていないのでnullを返すようです.
解決する
Androidでは、Location ProviderはGPSを提供せず、ネットワークも提供しています.
ネットワークの精度が低下しているため、アシストロールとして使用する必要があります.
// GPS로 캐싱된 위치가 없다면 Network로 가져옴
val location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) ?: locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
GPS PROVIDERがnullの場合、これをNETWORK PROVIDERに変換します.
精度は下がったが、ないよりはましだ.
ニワトリの代わりに鶏を使う
まずネットワークにインポートし、次にonLocationChanged()コールバック
GPS位置を更新して持って来れば、補強できるはずです.