Geolocator.GetGeopositionAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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)
参数
返回
一个异步操作,完成后返回一个地理 定位 标记找到的位置。
- 属性
Windows 要求
应用功能 |
location
ID_CAP_LOCATION [Windows Phone]
|
注解
如果最新位置在可接受的期限内,将立即返回位置。 否则,在下一次更改之前不会返回位置。 在某些情况下,你的应用可能会收到早于指定 maximumAge 值的位置数据。 这是因为会根据所需的准确度设置计算额外的年龄值,并且你的应用将使用两个年龄中较大者中的哪一个。 例如,假设默认精度为 500 米,则表示最大期限为 30 秒。 在这种情况下,即使将 maximumAge 设置为 10 秒,应用也可能收到 20 秒旧数据。