Android Smart Lock für Passwörter und mögliche Fallstricke

Android Smart Lock für Passwörter & seine Tücken: Eine Dokumentation und ein Leitfaden für Entwickler.

Über den Android Smart Lock für Passwörter und seine Fallstricke.

Vor kurzem haben wir einen unserer Kunden davon überzeugt, dass Smart Lock für Passwörter ein nettes Feature für seine App sein würde.

Warum? Im Moment müssen Benutzer ihre Zugangsdaten bei jedem Login und jedem neuen Gerät eingeben. Wir könnten und sollten die Kundenzufriedenheit erhöhen, indem wir einen nahtlosen Übergang von einer Installation zur anderen anbieten.

Smart Lock für Passwörter ist ein Passwortmanagementsystem, das Google im Jahr 2015 eingeführt hat. Es speichert die Anmeldeinformationen von Drittanbietern in seinem Safe und bietet sie Benutzern an, die sich über Google, Facebook, Twitter oder andere Konten authentifizieren. Smart-Lock ist also eine Alternative zu Dashlane, Kaspersky Password Manager, LastPass und anderen Passwortmanagern.

Wir sprechen hier nicht von dem Smart Lock, der intelligenten Bildschirmsperre, die ab Version 5.0 in das Android-Betriebssystem integriert wurde.

Bei der Implementierung von Smart Lock für Passwörter stießen wir auf mehrere Probleme mit dem Container, den Google Play Services.

Dieser Blogbeitrag dient sowohl als Dokumentation als auch als Leitfaden für andere Entwickler, die auf die gleichen Probleme stoßen könnten.

Google Play Service 11.8.0 und ProGuard
Das Upgrade von Version 11.6.2 auf 11.8.0 ist mit Vorsicht zu genießen: Änderungen am Standard-Shrinker führen zu Build-Breaks mit einem ProGuard Configuration Parser-Fehler. Die Lösung besteht darin, auf die Version 11.6.2 (mehr dazu später) downzugraden oder ProGuard für Debug-Builds zu aktivieren – minifyEnabled setzen und ProGuard auf true setzen – erhöhte Buildzeiten inklusive (Instant Run to the rescue). Mehr erfahren

Android O und AutoFill
AutoFill teilt sich den gleichen Schlüsselspeicher wie Smart Lock für Passwörter. Es ist daher die Standardmethode für die Passwortkontrolle auf Geräten mit Android O und höher. Dies kollidiert mit Smart Lock für Passwörter. Die Google Play Services 11.8.0 brachten forceEnableSaveDialog() dazu, dieses Standardverhalten zu deaktivieren. Leider gibt es keine bekannte Methode, dieses Flag auf niedrigeren Versionen zu setzen, außer der Verwendung von Reflexion oder anderen schmutzigen Hacks. Mehr erfahren

Am Ende haben wir uns entschieden, bei Smart Lock zu bleiben, bis Android O ein breiteres Publikum erreicht (ab Januar 2018 liegt die Verbreitungsrate unter einem Prozent). Da wir uns mit AutoFill befassen müssen, haben wir auf die Google Play Services 11.8.0 aktualisiert und ProGuard für den Debug-Build aktiviert. AutoFill steht immer noch auf unserer ToDo-Liste, aber im Moment haben wir beschlossen, es für die App zu deaktivieren, indem wir setImportantForAutofill setzen.