GeolocationProvider Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 runFullTrust
fonctionnalité 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
- 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 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 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 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 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 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 . |