Поделиться через


GeolocationProvider Класс

Определение

Предоставляет возможность переопределить расположение пользователя из удаленного источника.

Заметка

Чтобы вызвать API-интерфейсы переопределения расположения, приложение должно объявить runFullTrustограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса 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 для переопределения расположения компьютера. В сценарии клиентские приложения выполняются в различных операционных системах (таких как 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ограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса LimitedAccessFeatures). Дополнительные сведения или запрос маркера разблокировки см. в форме запроса маркера доступа LAF.

Свойства

IsOverridden

Возвращает значение, указывающее, переопределяется ли GeolocationProvider. Вы можете получить доступ к значению этого свойства в обработчике для события GeolocationProvider.IsOverriddenChanged.

Заметка

Чтобы вызвать API-интерфейсы переопределения расположения, приложение должно объявить runFullTrustограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса LimitedAccessFeatures). Дополнительные сведения или запрос маркера разблокировки см. в форме запроса маркера доступа LAF.

Методы

ClearOverridePosition()

Очищает (или сбрасывает) переопределенную позицию, которая была задана ранее вызовом GeolocationProvider.SetOverridePosition.

Заметка

Чтобы вызвать API-интерфейсы переопределения расположения, приложение должно объявить runFullTrustограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса LimitedAccessFeatures). Дополнительные сведения или запрос маркера разблокировки см. в форме запроса маркера доступа LAF.

SetOverridePosition(BasicGeoposition, PositionSource, Double)

Задает переопределение позиции для расположения пользователя. Вы можете очистить позицию переопределения, вызвав GeolocationProvider.ClearOverridePosition

Заметка

Чтобы вызвать API-интерфейсы переопределения расположения, приложение должно объявить runFullTrustограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса LimitedAccessFeatures). Дополнительные сведения или запрос маркера разблокировки см. в форме запроса маркера доступа LAF.

События

IsOverriddenChanged

Событие, возникающее при изменении значения свойства GeolocationProvider.IsOverridden. Вы можете зарегистрировать для обработки этого события и получить доступ к текущему значению GeolocationProvider.IsOverridden в ответе.

Заметка

Чтобы вызвать API-интерфейсы переопределения расположения, приложение должно объявить runFullTrustограниченные возможности.

Важный

API-интерфейсы Windows.Devices.Geolocation.Provider являются частью функции ограниченного доступа (см.класса LimitedAccessFeatures). Дополнительные сведения или запрос маркера разблокировки см. в форме запроса маркера доступа LAF.

Применяется к