Не удается найти текущее местоположение в приложении Tizen .Net

Я пытаюсь получить местоположение от Tizen.Location.Locator с помощью GetLocation метод, но я получаю значения широты и долготы, установленные на 0,

Я использую:

  • Visual Studio 2017
  • Эмулятор Носимых 4.0
  • Уже предоставлены привилегии для использования местоположения, также добавлена ​​функция местоположения в файле манифеста.

Вот мой код:

private static Locator locator = new Locator(LocationType.Gps);
try
{
    if (locator != null)
    {
        // Starts the Locator
        locator.Start();

        //Get Location
        Tizen.Location.Location currentLocation = locator.GetLocation();

        //Update xaml view
        latitudeValue.Text = currentLocation.Latitude.ToString();
        longitudeValue.Text = currentLocation.Longitude.ToString();
    }   
}
catch (InvalidOperationException exception)
{
    // Exception handling here
}

нет описания о переменной currentLocation так как это рассматривается как bool там. Когда я пытаюсь получить описание с помощью функции быстрого просмотра Visual Studio (нажав Shift + F9), Я получаю еще одну ошибку, связанную с преобразованием этой переменной bool

базовый тип ссылки на член 'bool' не является структурой или объединением

Приведенный выше код не показывает какой-либо ServiceStateChanged событие зарегистрировано, но я также включил это, используя способ, показанный в примере кода, но у меня это не сработало.

Теперь интересно, что я здесь делаю не так.

1 ответ

Ваш GPS большую часть времени неактивен из-за расхода заряда аккумулятора или определения местоположения через поставщика услуг

или же

Используйте этот плагин для получения текущего местоположения - https://github.com/jamesmontemagno/GeolocatorPlugin

 public async Task<Position> GetCurrentLocation()
{
   public static async Task<Position> GetCurrentPosition()
    {
            Position position = null;
            try
            {
                    var locator = CrossGeolocator.Current;
                    locator.DesiredAccuracy = 100;

                    position = await locator.GetLastKnownLocationAsync();

                    if (position != null)
                    {
                            //got a cahched position, so let's use it.
                            return position;
                    }

                    if (!locator.IsGeolocationAvailable || !locator.IsGeolocationEnabled)
                    {
                            //not available or enabled
                            return null;
                    }

                    position = await locator.GetPositionAsync(TimeSpan.FromSeconds(20), null, true);

            }
            catch (Exception ex)
            {
                    Debug.WriteLine("Unable to get location: " + ex);
            }

            if (position == null)
                    return null;

            var output = string.Format("Time: {0} \nLat: {1} \nLong: {2} \nAltitude: {3} \nAltitude Accuracy: {4} \nAccuracy: {5} \nHeading: {6} \nSpeed: {7}",
                    position.Timestamp, position.Latitude, position.Longitude,
                    position.Altitude, position.AltitudeAccuracy, position.Accuracy, position.Heading, position.Speed);

            Debug.WriteLine(output);

            return position;
    }
}
Другие вопросы по тегам