Freigeben über


GeolocationProvider Klasse

Definition

Bietet die Möglichkeit, den Standort des Benutzers von einer Remotequelle außer Kraft zu setzen.

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

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
Vererbung
Object Platform::Object IInspectable GeolocationProvider
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 11 Insider Preview (eingeführt in 10.0.23504.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v15.0)
App-Funktionen
runFullTrust

Beispiele

Das Szenario in diesem Codebeispiel umfasst eine serverseitige App für einen Remotezugriffsclient mit diesen APIs, um den Speicherort des Computers außer Kraft zu setzen. In dem Szenario werden Client-Apps auf verschiedenen Betriebssystemen (OSes) (z. B. Windows, MacOS, iOS oder Linux) ausgeführt und stellen regelmäßig (durch Aufrufen dieser APIs) eine Komponente bereit, die als Proxy auf dem Hostcomputer fungiert.

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

Hinweise

Sie sollten auf ein GeolocationProvider--Objekt aus dem Kontext des Benutzers zugreifen, für den standortbezogene Apps außer Kraft gesetzt und bereitgestellt werden sollen. Die Länge einer Standortüberschreibungssitzung wird durch Aufrufe an SetOverridePosition- und ClearOverridePosition-gebunden. Sobald eine Sitzung erfolgreich gestartet wurde, können andere Entitäten die Außerkraftsetzungsfunktionalität erst abrufen, wenn das ursprüngliche Objekt gelöscht wurde.

Konstruktoren

GeolocationProvider()

Erstellt eine neue Instanz von GeolocationProvider.

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

Eigenschaften

IsOverridden

Ruft einen Wert ab, der angibt, ob das besitzende GeolocationProvider- zurzeit überschrieben ist oder nicht. Sie können auf den Wert dieser Eigenschaft im Handler für das GeolocationProvider.IsOverriddenChanged-Ereignis zugreifen.

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

Methoden

ClearOverridePosition()

Löscht (oder setzt) eine Außerkraftsetzungsposition, die zuvor durch einen Aufruf von GeolocationProvider.SetOverridePositionfestgelegt wurde.

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

SetOverridePosition(BasicGeoposition, PositionSource, Double)

Legt eine Außerkraftsetzungsposition für die Position des Benutzers fest. Sie können die Außerkraftsetzungsposition löschen, indem Sie GeolocationProvider.ClearOverridePosition-

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

Ereignisse

IsOverriddenChanged

Ein Ereignis, das ausgelöst wird, wenn sich der Wert des GeolocationProvider.IsOverridden Eigenschaft ändert. Sie können sich registrieren, um dieses Ereignis zu behandeln, und auf den aktuellen Wert von GeolocationProvider.IsOverridden als Antwort zugreifen.

Anmerkung

Um Standortüberschreibungs-APIs aufzurufen, muss eine App die runFullTrusteingeschränkten Funktiondeklarieren.

Wichtig

Die Windows.Devices.Geolocation.Provider-APIs sind Teil eines Features für eingeschränkten Zugriff (siehe LimitedAccessFeatures-Klasse). Weitere Informationen oder zum Anfordern eines Entsperrtokens verwenden Sie bitte das LAF-Zugriffstokenanforderungsformular.

Gilt für: