0

我正在尝试使用该方法获取位置,但我将纬度和经度的值设置为.Tizen.Location.LocatorGetLocation0

我在用:

  • 视觉工作室 2017
  • 可穿戴4.0模拟器
  • 已经授予使用 location 的权限,还在 manifest 文件中添加了 location 功能。

这是我的代码:

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注册的事件,但我也使用示例代码中显示的方式包含了它,但它对我不起作用。

现在想知道我在这里做错了什么。

4

1 回答 1

0

由于电池消耗或通过服务提供商获取位置,您的 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;
    }
}
于 2019-08-04T07:26:00.073 回答