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 秒後逾時。 逾時時, 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)
參數
傳回
完成時,非同步作業會傳回標示找到位置的 地理位置 。
- 屬性
Windows 需求
應用程式功能 |
location
ID_CAP_LOCATION [Windows Phone]
|
備註
如果最新的位置在可接受的年齡內,將會立即傳回位置。 否則,在下次變更之前,將不會傳回位置。 在某些情況下,您的應用程式可能會接收早于指定 maximumAge 值的位置資料。 這是因為會根據所需的精確度設定來計算額外的年齡值,而您的應用程式會使用兩個年齡較大的值。 例如,假設預設精確度為 500 公尺,對應至最長存留期 30 秒。 在此情況下,即使您將 maximumAge 設定為 10 秒,您的應用程式仍會收到 20 秒的舊資料。