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 秒後逾時。 逾時時, StatusChanged 事件接聽程式會以 NoData 狀態呼叫一次,而且永遠不會呼叫 PositionChanged 事件接聽程式。

使用者可以使用 [設定] 應用程式中的 [位置隱私權設定] 來設定其位置資料的隱私權。 只有在下列情況下,您的應用程式才能存取使用者的位置:

  • 此裝置的位置...開啟 (不適用於Windows 10 行動裝置版)
  • 已將定位服務設定的 \[位置\] 設為 \[開啟\]
  • 在 \[選擇可以使用您的位置的應用程式\] 底下,將您的 app 設為 \[開啟\]

重要

從 Windows 10 開始,請先呼叫RequestAccessAsync方法,再存取使用者的位置。 此時,您的 app 必須在前景,且 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 秒的舊資料。

另請參閱

適用於