次の方法で共有


GeolocationProvider クラス

定義

リモート ソースからユーザーの場所をオーバーライドする機能を提供します。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

public ref class GeolocationProvider sealed
/// [Windows.Foundation.Metadata.Activatable(983040, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 983040)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class GeolocationProvider final
[Windows.Foundation.Metadata.Activatable(983040, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 983040)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class GeolocationProvider
function GeolocationProvider()
Public NotInheritable Class GeolocationProvider
継承
Object Platform::Object IInspectable GeolocationProvider
属性

Windows の要件

デバイス ファミリ
Windows 11 Insider Preview (10.0.23504.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v15.0 で導入)
アプリの機能
runFullTrust

このコード例のシナリオでは、これらの API を使用してコンピューターの場所をオーバーライドするリモート アクセス クライアント用のサーバー側アプリが含まれます。 このシナリオでは、クライアント アプリはさまざまなオペレーティング システム (Os) (Windows、MacOS、iOS、Linux など) で実行され、ホスト コンピューター上のプロキシとして機能するコンポーネントに (これらの API を呼び出すことによって) 定期的に位置をポストします。

using Windows.Devices.Geolocation;
using Windows.Devices.Geolocation.Provider;

...

public class OverrideLocation
{
    public struct ClientPositionInfo
    {
        public BasicGeoposition geoposition;
        public PositionSource positionSource;
        public double accuracy;
    };

    private GeolocationProvider geolocationProvide = null;

    // When remote desktop connection is established,
    // call this API to initialize.
    public void Initialize()
    {
        geolocationProvider = new GeolocationProvider();
        geolocationProvider.IsOverriddenChanged +=
            new EventHandler<object>(OnIsOverriddenChanged);
    }

    // Uninitialize when remote desktop connection is stopped.
    public void DeInitialize()
    {
        geolocationProvider.IsOverriddenChanged -= OnIsOverriddenChanged;
        geolocationProvide.ClearOverridePosition();
    }

    private void OnIsOverriddenChanged(object sender, object args)
    {
        if (!geolocationProvider.IsOverridden)
        {
            SetPosition();
        }
    }

    // When remote desktop connection established,
    // call this API to set override position.
    public bool SetPosition()
    {
        // Get client location information from client side.
        ClientPositionInfo clientPositionInfo = GetClientLocationInformation();

        LocationOverrideStatus status = geolocationProvider.SetOverridePosition(
            clientPositionInfo.geoposition,
            clientPositionInfo.positionSource,
            clientPositionInfo.accuracy);

        if (status == LocationOverrideStatus.AlreadyStarted)
        {
            // Failed to get override session.
            return false;
        }
        else if (status == LocationOverrideStatus.AccessDenied)
        {
            // Do not have access to override.
            return false;
        }
        else if (status == LocationOverrideStatus.Other)
        {
            // something else caused the failure.
            return false;
        }
        return true;

    }
    public bool UpdatePosition()
    {
        // Update position.
        return SetPosition();
    }
}

注釈

場所をオーバーライドし、場所に対応するアプリに提供するユーザーのコンテキストから、GeolocationProvider オブジェクトにアクセスする必要があります。 場所オーバーライド セッションの長さは、SetOverridePosition と ClearOverridePositionの呼び出しによってバインドされます。 セッションが正常に開始されると、元のオブジェクトがクリアされるまで、他のエンティティはオーバーライド機能を取得できません。

コンストラクター

GeolocationProvider()

GeolocationProviderの新しいインスタンスを構築します。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

プロパティ

IsOverridden

所有 GeolocationProvider が現在オーバーライドされているかどうかを示す値を取得します。 GeolocationProvider.IsOverriddenChanged イベントのハンドラーで、このプロパティの値にアクセスできます。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

メソッド

ClearOverridePosition()

GeolocationProvider.SetOverridePositionの呼び出しによって以前に設定されたオーバーライド位置をクリア (またはリセット) します。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

SetOverridePosition(BasicGeoposition, PositionSource, Double)

ユーザーの場所のオーバーライド位置を設定します。 geolocationProvider.ClearOverridePosition 呼び出すことで、オーバーライド位置をクリアできます。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

イベント

IsOverriddenChanged

GeolocationProvider.IsOverridden プロパティの値が変更されたときに発生するイベント。 このイベントを処理するために登録し、応答で geolocationProvider.IsOverridden 現在の値にアクセスできます。

手記

場所オーバーライド API を呼び出すには、アプリで制限された機能 runFullTrust宣言する必要があります。

大事な

Windows.Devices.Geolocation.Provider API は、制限付きアクセス機能の一部です (LimitedAccessFeatures クラスを参照)。 詳細については、またはロック解除トークンを要求するには、LAF アクセス トークン要求フォームを使用してください。

適用対象