Nutzer merken

Jeder mag ihn, wenn man sich an seinen Namen erinnert. Eine der einfachsten und wirkungsvollsten Dinge, die Sie tun können, um Ihre App liebenswerter zu machen, besteht darin, sich zu merken, wer Ihr Nutzer ist – insbesondere, wenn der Nutzer ein Upgrade auf ein neues Gerät durchführt oder anfängt, ein Tablet und ein Smartphone bei sich zu tragen. Aber woher wissen Sie, wer Ihre Nutzenden sind? Und wie erkennt man sie auf einem neuen Gerät?

Bei vielen Anwendungen sind die AccountManager-APIs die Antwort. Mit der Berechtigung des Nutzers können Sie den Account Manager verwenden, um die Kontonamen abzurufen, die der Nutzer auf seinem Gerät gespeichert hat.

Durch die Einbindung in die Nutzerkonten können Sie verschiedene Dinge tun, z. B.:

  • Formulare automatisch mit der E-Mail-Adresse des Nutzers ausfüllen lassen.
  • Rufen Sie eine ID ab, die mit einem Nutzer und nicht mit einem Gerät verknüpft ist.

Ist der Account Manager die richtige Wahl für Sie?

Anwendungen versuchen in der Regel, sich an den Nutzer zu erinnern. Dazu werden drei Methoden verwendet:

  1. Bitten Sie den Nutzer, einen Nutzernamen einzugeben.
  2. Eine eindeutige Geräte-ID abrufen, um das Gerät zu speichern
  3. Rufen Sie ein integriertes Konto von AccountManager ab.

Option 1 ist problematisch. Zunächst macht die App weniger attraktiv, wenn Nutzer zur Eingabe aufgefordert werden, bevor sie verwendet werden. Zweitens gibt es keine Garantie, dass der von ihnen ausgewählte Nutzername eindeutig ist.

Option 2 ist weniger aufwendig für den Nutzer, ist aber schwierig, hier die richtige Lösung zu finden. Und was noch wichtiger ist: Sie können sich damit nur auf einem Gerät an den Nutzer erinnern. Stellen Sie sich die Frustration eines Nutzers vor, der ein Upgrade auf ein nagelneues Gerät durchführt und dann feststellt, dass sich Ihre App nicht mehr an ihn erinnert.

Option 3 ist die bevorzugte Methode. Mit dem Account Manager können Sie Informationen zu den Konten abrufen, die auf dem Gerät des Nutzers gespeichert sind. Mit dem Account Manager können Sie sich an den Nutzer erinnern, unabhängig davon, wie viele Geräte er hat. Dazu müssen Sie nur ein paar Extra-Tippaktionen zu Ihrer Benutzeroberfläche hinzufügen.

Entscheiden, welche Art von Konto verwendet werden soll

Android-Geräte können mehrere Konten von vielen verschiedenen Anbietern speichern. Wenn Sie AccountManager nach Kontonamen abfragen, können Sie nach Kontotyp filtern. Der Kontotyp ist ein String, der die Entität eindeutig identifiziert, die das Konto ausgestellt hat. Google-Konten haben beispielsweise den Typ com.google, während Twitter com.twitter.android.auth.login verwendet.

Berechtigung GET_ACCOUNTS anfordern

Zum Abrufen einer Liste der Konten auf dem Gerät benötigt Ihre App die Berechtigung GET_ACCOUNTS. Fügen Sie Ihrer Manifestdatei ein <uses-permission>-Tag hinzu, um diese Berechtigung anzufordern:

<manifest ... >
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    ...
</manifest>

Nutzer informieren und Einwilligung einholen

Sie können die Liste der Nutzerkonten durch Aufrufen von getAccounts() oder getAccountsByType() abrufen. Bedenken Sie jedoch, dass die API personenbezogene und vertrauliche Nutzerdaten zurückgibt. Jedes Mal, wenn Ihre App personenbezogene und sensible Daten nutzt, erhebt, verwendet oder weitergibt, müssen Sie dies für Nutzer deutlich offenlegen. Für Apps, die bei Google Play veröffentlicht wurden, ist gemäß den Richtlinien zum Schutz von Nutzerdaten Folgendes erforderlich:

  1. Nutzern offenlegen, wie die App auf personenbezogene und sensible Daten zugreift, diese erhebt, verwendet oder weitergibt. Weitere Informationen zur akzeptablen Offenlegung und Einwilligung
  2. Gib eine Datenschutzerklärung an, in der beschrieben wird, wie diese Daten auf und außerhalb des Geräts verwendet werden.

Weitere Informationen finden Sie in der Google Play-Richtlinie zu Nutzerdaten.

Account Manager nach einer Liste von Konten abfragen

Nachdem Sie sich für einen Kontotyp entschieden haben, müssen Sie alle Konten dieses Typs abfragen. Rufen Sie durch Aufrufen von AccountManager.get() eine Instanz von AccountManager ab. Verwenden Sie dann diese Instanz, um getAccountsByType() aufzurufen.

Kotlin

val am: AccountManager = AccountManager.get(this) // "this" references the current Context

val accounts: Array<out Account> = am.getAccountsByType("com.google")

Java

AccountManager am = AccountManager.get(this); // "this" references the current Context

Account[] accounts = am.getAccountsByType("com.google");

Dadurch wird ein Array von Account-Objekten zurückgegeben. Wenn das Array mehr als eine Account enthält, blende ein Dialogfeld ein, in dem der Nutzer aufgefordert wird, eine auszuwählen.

Das Kontoobjekt zur Personalisierung deiner App verwenden

Das Objekt Account enthält einen Kontonamen, bei dem es sich bei Google-Konten um eine E-Mail-Adresse handelt. Sie können diese Informationen auf verschiedene Arten verwenden, z. B.:

  • Als Vorschläge in Formularen, damit der Nutzer seine Kontoinformationen nicht selbst eingeben muss.
  • Als Schlüssel für Ihre eigene Onlinedatenbank mit Nutzungs- und Personalisierungsinformationen

Entscheiden, ob ein Kontoname ausreicht

Ein Kontoname ist eine gute Möglichkeit, sich den Nutzer zu merken. Das Account-Objekt selbst schützt jedoch nicht Ihre Daten und gewährt Ihnen außer dem Kontonamen des Nutzers keinen Zugriff. Wenn Ihre Anwendung es dem Nutzer ermöglichen muss, für den Zugriff auf private Daten online zu gehen, benötigen Sie etwas Stärkeres: die Authentifizierung. Informieren Sie sich über die Authentifizierung bei vorhandenen Onlinediensten und das Schreiben einer benutzerdefinierten Authentifizierungsmethode, damit Sie Ihre eigenen Kontotypen installieren können.