2012-11-15 19 views
34

Google hat Android 4.2 veröffentlicht, das die Unterstützung mehrerer Benutzerprofile auf einem einzigen Gerät enthält: http://developer.android.com/about/versions/android-4.2.html#MultipleUsers.Auswirkungen der Android-Unterstützung für mehrere Benutzer (neu in 4.2) für serverseitiges Datenmodell (z. B. Android-ID)

Google sagt, dass dies für Apps transparent sein wird, aber ich denke, es könnte sich auf das Datenmodell auswirken, das zum Identifizieren von Geräten, Benutzern und Installationen verwendet wird.

Ein Problem ist die Verwendung von android_id. Der Hinweis auf der oben verlinkten Seite schlägt vor, ein Gerät mit einer anderen Methode als android_id zu identifizieren, aber ich glaube, dass android_id für diesen Zweck sehr weit verbreitet ist.

Meine Hauptfrage ist - hat jedes Benutzerprofil seine eigene android_id, und was sind die Auswirkungen?

Eine neue android_id wird generiert, wenn ein neues Betriebssystem installiert wird oder wenn ein Hard-Reset durchgeführt wird - vielleicht wird ein neues erstellt, wenn ein neues Benutzerprofil erstellt wird (Frage # 1)? Ich denke wahrscheinlich nicht, also könnte eine App mehrfach für die gleiche android_id installiert werden - ich denke das könnte bei einigen Apps mit dem serverseitigen Datenmodell misten.

So oder so, je nachdem, wie Sie ein Gerät identifizieren, können Sie jetzt feststellen, dass eine bestimmte App mehrere Installationen auf einem einzigen Gerät haben kann.

Ein weiteres Problem ist der Benutzer. Vermutlich kann jedes Profil eine beliebige Anzahl von Google-Konten haben, aber in jedem Profil muss ein einzelnes Google-Konto mit dem Play Store verknüpft sein. Ich denke, es ist auch möglich, dass Ihre App mehrere gleichzeitige Installationen mit demselben Gerät (von android_id) UND demselben Benutzer haben könnte. Ich denke, dass eine gemeinsame Nutzung der Funktion für mehrere Profile darin besteht, dass ein einzelner Nutzer auf seinem Telefon Heim- und Arbeitsprofile hat - normalerweise mit verschiedenen Google-Konten, aber in einigen Fällen könnten sie dasselbe Google-Konto in jedem Profil haben sie müssen nichts zweimal bezahlen).

Side Hinweis
Here is a similar discussion von ANDROID_ID auf die neue ARC-Plattform (Android auf Chrome). Passen Sie auf - das Verhalten auf ARC ist nicht dasselbe wie auf Android.

Antwort

32

(Niemand meine Frage beantwortet, aber ich habe jetzt eine Chance, mit 4.2 selbst zu testen.)

Die Antwort ist, dass jedes Profil eine eigene android_id hat.

Wenn ich darüber nachdenke, macht dies wahrscheinlich den meisten Sinn und verursacht die wenigsten Probleme. Dies sollte dazu führen, dass die meisten Systeme die verschiedenen Profile auf einem Gerät als unterschiedliche Geräte sehen - was eigentlich kein Problem sein sollte. Das einzige Problem wären Systeme, die ein Gerät, z. basierend auf wifi oder bt mac adresse oder serialnummer oder IMEI, und dann erwartet, dass mehrere android_ids auf diesem einzelnen gerät sequentielle betriebssystem installationen auf diesem gerät. (Eher pervers ist es sicherer, falsch zu liegen.)

+3

Jemand hat darauf hingewiesen, dass die Dokumente dem Verhalten von 4.2.1 auf N7 widersprechen. Sie haben ein [Problem hier] erstellt (http://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=Build.serial&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby= & sort = & id = 42523). – Tom

+0

Entschuldigung, können Sie klären, ob das Profil benutzerbasiert ist? Wenn ja, wissen Sie, ob der gleiche Benutzer auf einem anderen Gerät die gleiche ANDROID_ID produzieren würde? –

+0

Es ist nicht benutzerbasiert - jedes 'Profil' kann mehrere Benutzerkonten haben. Und nein, Sie sollten nicht die gleiche ANDROID_ID auf zwei verschiedenen Geräten bekommen. – Tom

8

Ja, jedes Benutzerprofil hat seine eigene ANDROID_ID. Dies wird nun here dokumentiert:

Hinweis: Wenn ein Gerät hat multiple users (auf bestimmte Geräten mit Android 4.2 oder höher), wobei jeder Benutzer erscheint als völlig separates Gerät, so dass der ANDROID_ID Wert ist einzigartig für jeden Benutzer.

Beachten Sie, dass Hersteller bekannt sind, ihre Implementierung von ANDROID_ID zu verpfuschen. Zum Beispiel, das Motorola Droid2 returned the same ANDROID_ID value for every device. Aus diesem Grund verlassen Sie sich auf die ANDROID_ID, um Benutzerprofile oder Geräte may be unreliable eindeutig zu identifizieren.