Compartilhar via


GeolocationProvider Classe

Definição

Fornece a capacidade de substituir a localização do usuário de uma fonte remota.

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso 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
Herança
Object Platform::Object IInspectable GeolocationProvider
Atributos

Requisitos do Windows

Família de dispositivos
Windows 11 Insider Preview (introduzida na 10.0.23504.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v15.0)
Funcionalidades do aplicativo
runFullTrust

Exemplos

O cenário neste exemplo de código envolve um aplicativo do lado do servidor para um cliente de acesso remoto usando essas APIs para substituir o local do computador. No cenário, os aplicativos cliente são executados em sistemas operacionais diversos (OSes) (como Windows, MacOS, iOS ou Linux) e postam posições periodicamente (chamando essas APIs) para um componente que atua como um proxy no computador host.

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();
    }
}

Comentários

Você deve acessar um objeto GeolocationProvider do contexto do usuário para o qual o local deve ser substituído e fornecido a aplicativos com reconhecimento de localização. O comprimento de uma sessão de substituição de local é associado por chamadas para SetOverridePosition e ClearOverridePosition. Depois que uma sessão é iniciada com êxito, outras entidades não podem obter a funcionalidade de substituição até que o objeto original seja limpo.

Construtores

GeolocationProvider()

Constrói uma nova instância de GeolocationProvider.

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso LAF.

Propriedades

IsOverridden

Obtém um valor que indica se o GeolocationProvider está atualmente substituído ou não. Você pode acessar o valor dessa propriedade em seu manipulador para o evento GeolocationProvider.IsOverriddenChanged.

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso LAF.

Métodos

ClearOverridePosition()

Limpa (ou redefine) uma posição de substituição que foi definida anteriormente por uma chamada para GeolocationProvider.SetOverridePosition.

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso LAF.

SetOverridePosition(BasicGeoposition, PositionSource, Double)

Define uma posição de substituição para o local do usuário. Você pode limpar a posição de substituição chamando GeolocationProvider.ClearOverridePosition

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso LAF.

Eventos

IsOverriddenChanged

Um evento gerado quando o valor da propriedade GeolocationProvider.IsOverridden é alterado. Você pode se registrar para lidar com esse evento e acessar o valor atual de GeolocationProvider.IsOverridden em resposta.

Nota

Para chamar APIs de substituição de local, um aplicativo deve declarar ade funcionalidade restrita .

Importante

As APIs Windows.Devices.Geolocation.Provider fazem parte de um recurso de acesso limitado (consulte classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o formulário de solicitação de token de acesso LAF.

Aplica-se a