Richtlinien für Geräte, die auf persönliche Daten zugreifen

Applies to Windows and Windows Phone

Mikrofone, Kameras, Standortanbieter und Textnachrichtendienste können auf die persönlichen Daten des Benutzers zugreifen oder für diesen Kosten verursachen und gelten deshalb als sensible Geräte. Windows Store-Apps verfügen über Features, mit denen der Benutzer steuern kann, welche Apps auf diese sensiblen Geräte zugreifen können. Dieses Thema enthält Richtlinien dazu, wie Windows Store-Apps so konzipiert werden können, dass der Benutzer den Gerätezugriff aktivieren und deaktivieren kann.

Beispiele

Die Berechtigungen zur Verwendung sensibler Geräte werden für Windows Store-Apps pro App und pro Benutzer gesteuert. Benutzer steuern die Berechtigungen über die Zustimmungsaufforderung oder über den Charm „Einstellungen“. Die folgenden Abbildungen zeigen die Benutzeroberfläche bezüglich Zustimmungsaufforderungen und Abschnitt Berechtigungen des Einstellungsbereichs.

Die Zustimmungsaufforderung

Hier sehen Sie die Zustimmungsaufforderung in einer Windows Store-App. Diese Aufforderung wird angezeigt, wenn eine App zum ersten Mal versucht, auf ein sensibles Gerät zuzugreifen. Hier kann der Benutzer den Zugriff der App auf die Gerätefunktionen sperren oder zulassen. Windows merkt sich die Antwort, sodass der Benutzer für dieselbe App nicht erneut zur Zustimmung aufgefordert wird.

Zustimmungsaufforderung in Windows Store-Apps

Der Charm "Einstellungen"

Der Zugriff auf sensible Geräte kann auch für jede App einzeln über den Charm „Einstellungen“ festgelegt werden. Der Benutzer tippt auf den Charm „Einstellungen“, um den Einstellungsbereich (SettingsPane) zu öffnen. Der Charm „Einstellungen“ wird hier auf der rechten Seite der App angezeigt:

Charm "Einstellungen"

Windows stellt standardmäßig für jede Windows Store-App das Flyout „Berechtigungen“ bereit. Das Flyout „Berechtigungen“ wird angezeigt, wenn ein Benutzer im Einstellungsbereich auf „Berechtigungen“ klickt. In dem Flyout können Benutzer den Zugriff auf sensible Geräte für die App aktivieren und deaktivieren. Hier sehen Sie das Flyout „Berechtigungen“ für eine Wetter-App:

Einstellungsflyout mit Standorteinstellungen für die App

Empfohlene und nicht empfohlene Vorgehensweisen

  • Der erste Aufruf zum Starten eines sensiblen Geräts muss im Hauptthread der Benutzeroberfläche vorgenommen werden, sodass dem Benutzer die Zustimmungsaufforderung angezeigt werden kann. Benutzer können den Gerätezugriff für die App erst gewähren, wenn die Zustimmungsaufforderung angezeigt wird. Stellen Sie Folgendes sicher:
    • Ihre App nutzt für die erste Verwendung des Geräts keine Hintergrundaufgabe.
    • In Ihrer App mit JavaScript und HTML erfolgt die erste Verwendung des Objekts, das auf das Gerät zugreift, nicht im Aktivierungshandler für die App.
    • In Ihrer App mit C#/VB/C++ und XAML erfolgt die erste Verwendung des Objekts, das auf das Gerät zugreift in MainPage.xaml.cs, nicht in App.xaml.cs.
  • Wenn die Verwendung des sensiblen Geräts nicht für alle Aufgaben in der App zwingend erforderlich ist, sollte der Zugriff erst erfolgen, wenn der Benutzer den Zugriff zum Durchführen einer Aufgabe tatsächlich benötigt. Beispiel: Eine App für ein soziales Netzwerk mit Schaltflächen wie "Mit meinem Standort anmelden" und "Profilbild aufnehmen" sollte erst dann auf den Standort bzw. die Kamera zugreifen, wenn der Benutzer auf die entsprechende Schaltfläche klickt.
  • Wenn der Zugriff auf sensible Geräte für die Hauptfunktion der App erforderlich ist, kann der Zugriff bereits beim Start der App erfolgen. Beispiel: Eine App für das Aufnehmen von Live-Videos benötigt Zugriff auf die Kamera, um die Hauptfunktion der App zu erfüllen. In diesem Fall sollte der Gerätezugriff sofort beim Start angefordert werden.
  • Versuchen Sie nicht, die Seite Berechtigungen im Einstellungsbereich programmgesteuert zu starten.

Wenn der Zugriff auf ein Gerät deaktiviert ist

Der Zugriff auf ein Gerät kann auf drei verschiedene Arten deaktiviert werden: Der Benutzer lehnt die Zustimmungsaufforderung ab, der Benutzer sperrt den Zugriff über das Flyout „Berechtigungen„ im Einstellungsbereich oder das Gerät ist nicht im System vorhanden. Beachten Sie folgende Empfehlungen, wenn Ihre App nicht auf sensible Geräte zugreifen kann:

  • Benachrichtigen Sie Benutzer, wenn sie versuchen, eine nicht verfügbare Gerätefunktion zu nutzen. Der Benutzer sollte auf den Funktionalitätsverlust aufmerksam gemacht werden.
  • Sorgen Sie dafür, dass die Meldung zum deaktivierten Gerät für die Benutzer deutlich sichtbar ist.
  • Verwenden Sie ein Flyout oder Inlinetext, um Benutzer zu informieren, wenn die Funktion für die Hauptfunktionalität der App nicht unbedingt notwendig ist.
  • Behandeln Sie den API-Fehler, der auftritt, wenn Ihre App versucht, auf eine deaktivierte Gerätefunktion zuzugreifen. Im Abschnitt Referenz dieses Themas finden Sie weitere Informationen zu den Methodenaufrufen, die unter Umständen Fehler zurückgeben, welche darauf hindeuten, dass die App nicht auf ein Gerät zugreifen kann.
  • Zeigen Sie Benutzern eine Meldung an, aus der hervorgeht, dass die Gerätefunktion deaktiviert ist. Beschreiben Sie in der Meldung außerdem, wie die Funktion über das Flyout „Berechtigungen“ im Einstellungsbereich wieder aktiviert werden kann. Ein Beispiel für eine Meldung bezüglich eines deaktivierten Geräts finden Sie unter Weitere Hinweise zur Verwendung.
  • Stellen Sie ein Benutzeroberflächenelement für den Benutzer bereit, damit dieser den Zugriff auf das Gerät neu initiieren kann, wenn dieses wieder aktiviert wurde. Instanziieren oder initialisieren Sie das Objekt, das auf das Gerät zugreift, mithilfe dieses Benutzeroberflächenelements neu. So kann beispielsweise in einer Karten-App eine Schaltfläche zum Aktualisieren der aktuellen Position bereitgestellt werden. Die Schaltfläche muss ein neues Geolocator-Objekt instanziieren.
  • Verwenden Sie keine Benachrichtigungen, um Benutzer über die Nichtverfügbarkeit von Gerätefunktionen zu informieren.
  • Zeigen Sie keine Fehlermeldung für eine Gerätefunktion an, die vom Benutzer noch nicht angefordert wurde. Wenn beispielsweise eine Website für soziales Netzwerken über eine Option zum Einschließen der Position beim Veröffentlichen von Nachrichten verfügt und der Benutzer sich entschieden hat, seine Position nicht zu teilen, zeigen Sie beim Veröffentlichen von Nachrichten keine Fehlermeldung an.

Weitere Hinweise zur Verwendung

Beispiele für Fehlermeldungen

Ursache für die Deaktivierung des GerätsBeispielformat für die Fehlermeldung

Der Benutzer hat den Zugriff über die Zustimmungsaufforderung oder über den Charm "Einstellungen" gesperrt.

"Ihre <device capability> ist derzeit deaktiviert. Öffnen Sie zum Ändern der <device capability>-Einstellung den Charm "Einstellungen", und tippen Sie auf "Berechtigungen". Führen Sie anschließend <enable action> aus, um <device capability> wieder verwenden zu können. "

  • Ersetzen Sie <device capability> durch "Webcam", "Mikrofon", "Position" oder "SMS".
  • Ersetzen Sie <enable action> durch die Aktion, die der Benutzer auf der Benutzeroberfläche ausführen muss, um den Zugriff auf die Funktion neu zu initialisieren (beispielsweise ein Klick auf eine Schaltfläche).

Die Gerätefunktion ist im System nicht vorhanden.

“Die erforderliche <device capability> ist im System nicht vorhanden.”

 

Mit welchem Benutzeroberflächenelement Sie die Meldung über eine deaktivierte Gerätefunktion präsentieren, hängt davon ab, wie wichtig die Gerätefunktion für die App ist. In den folgenden Beispielen wird das Anzeigen von Gerätefunktionsmeldungen dargestellt.

Anzeigen eines Flyouts oder Inlinetexts, wenn das Gerät nicht wichtig ist

Wenn das sensible Gerät für Ihre App nicht von zentraler Bedeutung ist, zeigen Sie die Meldung zum Zeitpunk des Aufrufs in einem Flyout oder einem unaufdringlichen Inlinetext an.

Besitzt eine Karten-App beispielsweise eine Schaltfläche zum Anzeigen der aktuellen Position und klickt der Benutzer auf diese Schaltfläche, obwohl die erforderliche Gerätefunktion deaktiviert ist, sollte die entsprechende Fehlermeldung in einem Flyout in der Nähe der Schaltfläche oder als Inlinetext angezeigt werden.

Der folgende Screenshot zeigt eine App, die eine Fehlermeldung in einem Flyout anzeigt. Meldung: "Ihre Position wurde nicht gefunden. Ändern Sie die Berechtigungen in den Einstellungen, um Maps den Zugriff auf Ihre Position zu erlauben. Starten Sie anschließend die App neu."

Zustimmungsaufforderung in Windows Store-Apps

Anzeigen eines Dialogfelds, wenn die Gerätefunktion wichtig ist

Wenn für die Hauptfunktion einer App Gerätezugriff erforderlich ist, zeigen Sie den Fehler in einem MessageDialog an. Ein vollständiges Beispiel finden Sie unter Meldungsdialogfeld – Beispiel.

Im folgenden Screenshot ist für die Kamera-App Zugriff auf die Webcam- und Mikrofonfunktionen für die Hauptfunktion erforderlich. Daher wird die Anweisung angezeigt, die Kamerafunktionen zu aktivieren.

Meldung an den Benutzer, dass die Standortbestimmung aktiviert werden sollte

Referenz

Diese Tabelle enthält API-Informationen zum Deaktivieren und erneuten Aktivieren von sensiblen Gerätefunktionen.

FunktionInformationen zum Aktivieren und Deaktivieren
Position

Die GetGeopositionAsync-Methode oder ein Ereignishandler für das PositionChanged-Ereignis löst eine Zustimmungsaufforderung aus.

Weitere Informationen zum Behandeln der Deaktivierung und der erneuten Aktivierung der Position in Ihrer App durch Benutzer finden Sie unter Guidelines for location-aware apps.

Schrittanleitungen und Codebeispiele finden Sie unter Erkennen des geografischen Standorts (Windows Store-Apps mit JavaScript und HTML) und Erkennen des geografischen Standorts (Windows Store-Apps mit C#/VB/C++ und XAML).

Webcam oder Mikrofon

Beachten Sie bei Apps, die Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync verwenden, um Fotos oder Videos mit einer Kamera aufzunehmen, Folgendes:

  • Durch Aufrufen von Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync wird eine Zustimmungsaufforderung ausgelöst, wenn die App zum ersten Mal ausgeführt wird. Windows.Media.Capture.CameraCaptureUI.CaptureFileAsync gibt keinen Fehler zurück, wenn die Webcamfunktion deaktiviert ist. Stattdessen zeigt die Kameraaufnahme-UI eine Meldung an, dass die Webcamfunktion deaktiviert ist.

Beachten Sie bei Apps, die mit Windows.Media.Capture.MediaCapture Audio, Video oder Fotos als Vorschau anzeigen oder erfassen, Folgendes:

  • Die Fehlerhandler für die asynchronen Methoden von MediaCapture empfangen den Fehler "E_ACCESSDENIED", wenn Benutzer die Zustimmung nicht erteilt haben, und "HRESULT_FROM_WIN32(ERROR_FILE_HANDLE_REVOKED)", wenn die Zustimmung widerrufen wurde.
  • Rufen Sie erneut InitializeAsync auf, um auf die Kamera zuzugreifen, wenn Benutzer den Zugriff auf die Webcam nach dem Sperren erneut aktivieren. Beispiel: Der Fehlerhandler für den Fehler "HRESULT_FROM_WIN32(ERROR_FILE_HANDLE_REVOKED)" weist Benutzer an, die Webcam über den Charm "Einstellungen" erneut zu aktivieren und dann auf eine Schaltfläche zu tippen, um eine Videovorschau neu zu starten. Der Code hinter der Schaltfläche sollte InitializeAsync aufrufen, bevor andere Aufrufe ausgeführt werden.

Lernprogramme zur Verwendung von „Windows.Media.Capture“ finden Sie unter Hinzufügen von Multimedia (Windows Store-Apps mit JavaScript und HTML) und Hinzufügen von Multimedia (Windows Store-Apps mit C#/VB/C++ und XAML).

Bei Apps, die die IAudioClient2-Schnittstelle verwenden, sollte berücksichtigt werden, dass ein Aufruf von ActivateAudioInterfaceAsync eine Zustimmungsaufforderung auslöst.

 

Verwandte Themen

Für Entwickler (HTML)
DeviceCapability
MessageDialog
Deklaration der App-Funktionen
So wird's gemacht: Manuelles Angeben von Gerätefunktionen in einem Paketmanifest
Quickstart: Adding a flyout
Für Entwickler (XAML)
DeviceCapability
MessageDialog
Deklaration der App-Funktionen
So wird's gemacht: Manuelles Angeben von Gerätefunktionen in einem Paketmanifest
Hinzufügen von Flyouts und Menüs
Beispiele
Meldungsdialogfeld – Beispiel

 

 

Anzeigen:
© 2014 Microsoft