Share via


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의 새 instance 생성합니다.

참고

위치 재정의 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 액세스 토큰 요청 양식을 사용하세요.

적용 대상