GeolocationProvider Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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 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. |