Partager via


GeolocationProvider Classe

Définition

Permet de remplacer l’emplacement de l’utilisateur à partir d’une source distante.

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès 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
Héritage
Object Platform::Object IInspectable GeolocationProvider
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 11 Insider Preview (introduit dans 10.0.23504.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v15.0)
Fonctionnalités de l’application
runFullTrust

Exemples

Le scénario de cet exemple de code implique une application côté serveur pour un client d’accès à distance à l’aide de ces API pour remplacer l’emplacement de l’ordinateur. Dans le scénario, les applications clientes s’exécutent sur différents systèmes d’exploitation (SSE) (tels que Windows, MacOS, iOS ou Linux) et publient régulièrement des positions (en appelant ces API) à un composant qui agit en tant que proxy sur l’ordinateur hôte.

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

Remarques

Vous devez accéder à un objet GeolocationProvider à partir du contexte de l’utilisateur pour lequel l’emplacement doit être remplacé et fourni aux applications prenant en charge l’emplacement. La longueur d’une session de remplacement d’emplacement est liée par des appels à SetOverridePosition et ClearOverridePosition. Une fois qu’une session démarre correctement, d’autres entités ne peuvent pas obtenir de fonctionnalité de remplacement tant que l’objet d’origine n’est pas effacé.

Constructeurs

GeolocationProvider()

Construit une nouvelle instance de GeolocationProvider.

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès LAF .

Propriétés

IsOverridden

Obtient une valeur indiquant si le propriétaire GeolocationProvider est actuellement substitué ou non. Vous pouvez accéder à la valeur de cette propriété dans votre gestionnaire pour l’événement GeolocationProvider.IsOverriddenChanged.

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès LAF .

Méthodes

ClearOverridePosition()

Efface (ou réinitialise) une position de remplacement définie précédemment par un appel à GeolocationProvider.SetOverridePosition.

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès LAF .

SetOverridePosition(BasicGeoposition, PositionSource, Double)

Définit une position de remplacement pour l’emplacement de l’utilisateur. Vous pouvez effacer la position de remplacement en appelant GeolocationProvider.ClearOverridePosition

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès LAF .

Événements

IsOverriddenChanged

Événement déclenché lorsque la valeur de la propriété GeolocationProvider.IsOverridden change. Vous pouvez vous inscrire pour gérer cet événement et accéder à la valeur actuelle de GeolocationProvider.IsOverridden en réponse.

Note

Pour appeler des API de remplacement d’emplacement, une application doit déclarer la runFullTrustfonctionnalité restreinte.

Important

Les API Windows.Devices.Geolocation.Provider font partie d’une fonctionnalité d’accès limité (voir classe LimitedAccessFeatures). Pour plus d’informations ou pour demander un jeton de déverrouillage, utilisez le formulaire de demande de jeton d’accès LAF .

S’applique à