Inhaltsverzeichnis:
Android 6.0 Marshmallow ist technisch eine ganze Woche alt. (Vermutlich weniger, wenn Sie das Datum des Code-Ablegens zählen.) Aber es befindet sich seit Monaten im Entwicklervorschau-Status, und Entwickler konnten Apps einreichen, die die neue API-Ebene (und damit die neuen Berechtigungen) für a verwenden wenig jetzt.
Wenn Sie also Marshmallow auf einem Nexus-Telefon ausführen (und das sollten Sie auch), werden Sie mit dem neuen Berechtigungsschema konfrontiert, wenn Apps aktualisiert werden. Eines meiner ersten Beispiele war Twitter. (Und ein großes Lob an Twitter als einer der frühen.)
Wie Twitter es macht …
Betrachten Sie diesen Screenshot, den Sie sehen, wenn Sie Twitter zum ersten Mal öffnen. Twitter möchte meinen aktuellen Standort verwenden, um meine Erfahrung anzupassen. OK warum nicht. Ich mag meinen Standort und ich mag bessere Erfahrungen. Ich werde es zulassen.
Dann tritt die neue Erlaubnis in Marshmallow in Kraft. Möchte ich Twitter Zugang zu dem Ding geben, von dem ich sagte, dass ich ihm Zugang gewähren wollte? Ja, ich will. Deshalb habe ich das erste Mal auf OK geklickt.
Die Sache ist, dass das erste Dialogfeld von Twitter eigentlich nichts damit zu tun hat, die Erlaubnis für meinen Standort zu erteilen. Es wird nur der Systemdialog ausgelöst. Aber es ist ein bisschen freundlicher formuliert als der Android-Berechtigungsdialog.
Erwägen:
Twitter: "Twitter möchte Ihren aktuellen Standort nutzen, um Ihre Erfahrung anzupassen."
Android: "Twitter den Zugriff auf den Standort dieses Geräts erlauben?"
Zwei berechtigungsähnliche Fragen, die dieselbe Frage stellen - aber nur eine erlaubt tatsächlich etwas.
Ersteres sagt mir, was es tun möchte - und was noch wichtiger ist, warum es es tun möchte. Letzteres ist größtenteils dieselbe Art einfacher, aber unbestimmter Erlaubnissprache, die wir von Android verabscheuen. Und es muss so sein, nehme ich an. Aber hier wird die App, die um die Erlaubnis bittet - das erste Dialogfeld von Twitter - noch wichtiger. Anstatt mir sofort die Option "Nicht zulassen / OK" zu geben, sollte Twitter einen weiteren Satz verwenden, um mir mitzuteilen, was als Nächstes kommt. "Twitter möchte Ihren aktuellen Standort nutzen, um Ihre Erfahrung anzupassen. Wenn Sie damit einverstanden sind, klicken Sie im nächsten Bildschirm auf " Zulassen "." Oder so etwas. Dann haben Sie einen besseren Kontext für die Berechtigungsanforderung, und der Benutzer ist auf die bevorstehenden Aufgaben vorbereitet - und es ist nicht so repetitiv.
Das sind zwei harte Stopps für den Benutzer, und das ist hart. Aber es ist ein einmaliger Schmerzpunkt. Und ich denke, es lohnt sich, uns ein wenig mehr auf die gefährlichen (das ist der technische Begriff) Berechtigungen zu konzentrieren, die Apps möglicherweise benötigen. Andererseits können Ikonografie und Kontext bedeuten, dass Sie mir nicht mitteilen müssen, dass Sie um Erlaubnis für die Kamera bitten werden, da ich gerade auf das Kamerasymbol getippt habe.
So bringt es Google auf den Punkt:
Unter bestimmten Umständen möchten Sie dem Benutzer möglicherweise erklären, warum für Ihre App eine Berechtigung erforderlich ist. Wenn ein Benutzer beispielsweise eine Foto-App startet, wird der Benutzer wahrscheinlich nicht überrascht sein, dass die App um Erlaubnis zur Verwendung der Kamera bittet, der Benutzer versteht jedoch möglicherweise nicht, warum die App Zugriff auf den Standort oder die Kontakte des Benutzers wünscht. Bevor Sie eine Berechtigung anfordern, sollten Sie erwägen, dem Benutzer eine Erklärung bereitzustellen. Denken Sie daran, dass Sie den Benutzer nicht mit Erklärungen überfordern möchten. Wenn Sie zu viele Erklärungen eingeben, kann es sein, dass der Benutzer die App als frustrierend empfindet und sie entfernt.
Wie Facebook es macht …
Werfen wir einen Blick darauf, wie Facebook - eine andere App, die bereits für die neuen Berechtigungen aktualisiert wurde.
Ahhhh, die seltene doppelte Erlaubnisanfrage. Dies ist, was Sie von Facebook erhalten, wenn Sie auf das Kamerasymbol für eine neue Statusaktualisierung klicken. OK, ich habe ein wenig geschummelt - Sie erhalten diese doppelte Benachrichtigung, wenn Sie die Speichererlaubnis zum ersten Mal verweigern, wenn versucht wird, die Miniaturansichten der Inhalte in Ihrer Galerie zu füllen. Aber es ist schön gemacht. Facebook sagt dir, was es will und warum es es will.
Und dann kannst du dich wieder wiederholen. Ja, ich möchte, dass Facebook die Erlaubnis hat, mein Handy zu bitten, etwas zu tun.
Aber es ist wieder die erste Schaltfläche "Zulassen", mit der ich ein Problem habe. Es erlaubt eigentlich nichts anderem als dem Systemdialog, Sie genau dasselbe noch einmal zu fragen. Und du musst es nur einmal tun.
Wie funktioniert Hangouts?
Hier ist ein weiteres Beispiel, diesmal in Google Hangouts. Wenn Sie in einer Unterhaltung auf die Kamera- oder Galerie-Symbole tippen, wird nur der Systemdialog ausgelöst. Vor der tatsächlichen Anforderung, die die Berechtigungen erteilt, ist keine überflüssige Anforderung vorhanden. (Und wieder würde ich behaupten, dass das in Ordnung ist. Wenn ich auf ein Kamerasymbol tippe, hat das Abrufen einer Anforderung für die Kameraerlaubnis bereits Kontext.)
Ich denke, dass Google wirklich gute Arbeit geleistet hat, war, dass dieser erste Erklärer die Kontakterlaubnis erteilte, die erforderlich ist, damit die App überhaupt funktioniert. Zunächst wird angegeben, warum Zugriff auf Ihre Kontakte erforderlich ist. Wenn Sie auf "Weiter" klicken, wird die Systemberechtigungsanforderung angezeigt. Daß dort "Weiter" und nicht "Zulassen" steht, ist das, was wirklich wichtig ist. Einer fließt in den anderen. Offensichtlich möchten Sie nicht jede Erlaubnisanfrage im Vollbildmodus ausführen. Aber für etwas, das wichtig genug ist, um auf Anhieb präsentiert zu werden, ist es sehr gut gemacht.
Die Umstellung auf Laufzeitberechtigungen ist sehr wichtig. Aber sie können ein kleiner Lernprozess sein.
Ich mache hier zugegebenermaßen ein Stück Berg aus einem Maulwurfshügel. Sie müssen dies nur das erste Mal für eine App durchgehen. Berechtigungen sind jedoch wichtig. (Und ich denke, der Wechsel zu Laufzeitberechtigungen ist gut.) Eine Erklärung der Berechtigungen ist gut. Sogar der Doppelstopp kann übersehen werden, wenn es darum geht, dass Sie schauen, bevor Sie springen. Erläutern Sie dem Benutzer die Berechtigung. Lassen Sie ihn nur nicht glauben, dass er sie bereits einmal zugelassen hat, sondern lassen Sie ihn dies erst einen Schritt später in der Systemanforderung tun. Ich mag es einfach nicht, mich selbst zu wiederholen.
Und wie immer können Sie Berechtigungen jederzeit widerrufen. In diesem Fall bittet die App Sie erneut um Erlaubnis, wenn Sie das nächste Mal versuchen, diese Funktion zu verwenden.
Der Punkt ist, dass wir als Benutzer hier etwas Neues zu gewöhnen haben. Aber auch App-Entwickler.
Update: Wenn Sie sich das alles genauer ansehen möchten - und im Übrigen bestätigen möchten, dass die Vorgehensweise von Facebook und Twitter nicht optimal ist -, schauen Sie sich Episode 33 des Podcasts für Android-Entwickler auf der Backstage an.