Android LocationManager.getLastKnownLocation() returns null

前端 未结 2 1603
醉酒成梦
醉酒成梦 2020-11-29 04:13

So I\'m trying to sample the gps coordinates just once in an application. I don\'t want to create a LocationListener object to constantly get gps updates. I want to wait u

相关标签:
2条回答
  • 2020-11-29 04:51

    The call to request update for a location is not blocking, hence it wont wait there. Also the provider in emulator may not have been started.

    A possible check could be to see if the settings in it disable gps provider ? then send geo fix.

    However, I would use Location Listener, it would be ideal in your case since you need a geo fix to proceed further.Location Listener is Used for receiving notifications from the LocationManager when the location has changed. You can unregister the listener after first geofix.

    Note: It can take some time on device to get current location, and even on device this can return null.

    0 讨论(0)
  • 2020-11-29 04:54

    Try using the MyLocationOverlay , create a runnable that does what you need to do with that GPS location, and pass it to

    boolean     runOnFirstFix(java.lang.Runnable runnable)
              Queues a runnable to be executed as soon as we have a location fix.
    

    and then disable the location updates for the MyLocationOverlay.

    Edit: The reason the location is null is because at the time that code is run, no geofix has been received.

    0 讨论(0)
提交回复
热议问题