Geolocator.GetGeopositionAsync 方法

定义

重载

GetGeopositionAsync()

启动异步操作以检索设备的当前位置。

GetGeopositionAsync(TimeSpan, TimeSpan)

启动异步操作以检索设备的当前位置。

GetGeopositionAsync()

启动异步操作以检索设备的当前位置。

public:
 virtual IAsyncOperation<Geoposition ^> ^ GetGeopositionAsync() = GetGeopositionAsync;
/// [Windows.Foundation.Metadata.Overload("GetGeopositionAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<Geoposition> GetGeopositionAsync();
[Windows.Foundation.Metadata.Overload("GetGeopositionAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<Geoposition> GetGeopositionAsync();
function getGeopositionAsync()
Public Function GetGeopositionAsync () As IAsyncOperation(Of Geoposition)

返回

一个异步操作,完成后返回一个地理 定位 标记找到的位置。

属性

Windows 要求

应用功能
location ID_CAP_LOCATION [Windows Phone]

注解

如果应用没有位置权限或超时且未检索到位置数据,则此方法将引发异常。 因此,应在 try/catch 语句中调用 方法,以便可以处理这些常见的异常情况。

此方法在 60 秒后超时,处于连接待机状态时除外。 在连接待机期间,可以实例化 Geolocator 对象,但 Geolocator 对象找不到任何要聚合的传感器,并且对 GetGeopositionAsync 的调用将在 7 秒后超时。 超时后,将调用一次具有 NoData 状态的 StatusChanged 事件侦听器,并且永远不会调用 PositionChanged 事件侦听器。

用户可通过 “设置” 应用中的 “位置隐私设置” 来设置其位置数据隐私。 应用只有在以下情况下才能访问用户的位置:

  • 此设备的位置...打开 (不适用于Windows 10 移动版)
  • 位置服务设置(位置)已打开
  • “选择可以使用你的位置的应用”下,你的应用已设置为“打开”

重要

从 Windows 10 开始,在访问用户的位置之前调用 RequestAccessAsync 方法。 此时,你的应用必须位于前台,并且 RequestAccessAsync 必须从 UI 线程中进行调用。 然后,应用可以处理无权限情况,而不会引发异常。

另请参阅

适用于

GetGeopositionAsync(TimeSpan, TimeSpan)

启动异步操作以检索设备的当前位置。

public:
 virtual IAsyncOperation<Geoposition ^> ^ GetGeopositionAsync(TimeSpan maximumAge, TimeSpan timeout) = GetGeopositionAsync;
/// [Windows.Foundation.Metadata.Overload("GetGeopositionAsyncWithAgeAndTimeout")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<Geoposition> GetGeopositionAsync(TimeSpan const& maximumAge, TimeSpan const& timeout);
[Windows.Foundation.Metadata.Overload("GetGeopositionAsyncWithAgeAndTimeout")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<Geoposition> GetGeopositionAsync(System.TimeSpan maximumAge, System.TimeSpan timeout);
function getGeopositionAsync(maximumAge, timeout)
Public Function GetGeopositionAsync (maximumAge As TimeSpan, timeout As TimeSpan) As IAsyncOperation(Of Geoposition)

参数

maximumAge
TimeSpan TimeSpan

缓存位置数据的最大可接受期限。 TimeSpan 是一个以 100 纳秒为单位表示的时间段。

timeout
TimeSpan TimeSpan

超时。 TimeSpan 是一个以 100 纳秒为单位表示的时间段。

返回

一个异步操作,完成后返回一个地理 定位 标记找到的位置。

属性

Windows 要求

应用功能
location ID_CAP_LOCATION [Windows Phone]

注解

如果最新位置在可接受的期限内,将立即返回位置。 否则,在下一次更改之前不会返回位置。 在某些情况下,你的应用可能会收到早于指定 maximumAge 值的位置数据。 这是因为会根据所需的准确度设置计算额外的年龄值,并且你的应用将使用两个年龄中较大者中的哪一个。 例如,假设默认精度为 500 米,则表示最大期限为 30 秒。 在这种情况下,即使将 maximumAge 设置为 10 秒,应用也可能收到 20 秒旧数据。

另请参阅

适用于