У меня есть кнопка, каждый раз, когда пользователь нажимает на нее, я вызываю javascriptinterface getLocation()
, если службы определения местоположения отключены, пользователь вводит настройки, чтобы пользователь включил его.местоположение доступно через несколько секунд после включения служб определения местоположения
Я нахожусь по адресу onConnected
и onLocationChanged
. Каждый раз, когда я открываю свое приложение, onConnected
получает увольнение и получит его. Но я заметил, что, когда я включаю настройки местоположения из настроек и сразу прихожу к приложению, onConnected
уволен, но местоположение по-прежнему null
. Похоже, есть задержка или что-то в этом роде. До тех пор, пока примерно через 3 секунды, я попробую еще раз, он будет работать и получить место для меня.
Вот мой родственный код:
Android сторона:
protected Location location;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.web_view);
webView = (WebView) findViewById(R.id.webview);
......
}
// JavaScript Interface for location on Pick Listing Page
public class LocationInterface
{
@JavascriptInterface
public String getLocation() throws JSONException
{
JSONObject json = new JSONObject();
if (location != null)
{
json.put("lat", location.getLatitude());
json.put("lon", location.getLongitude());
return(json.toString());
}
else
{
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
return(null);
}
}
......//many override lifecycle methods here
@Override
public void onConnected(Bundle connectionHint)
{
location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
}
@Override
public void onLocationChanged(Location newLocation)
{
location = newLocation;
}
Мой вопрос, как я могу получить место без задержки.
добавить следующее: 'LocationServices.FusedLocationApi.requestLocationUpdates (GoogleApiClient, locationRequest, это);'? –
похоже не работает. Он убивает приложение. –
Не могли бы вы поделиться своим выходом logcat? –