Frage

Ich suche seit Beginn des Tages nach einer Antwort und weiß immer noch nicht, was ich tun soll! Um das Problem zu erklären: Meine Anwendung verwendet die GTasks-API. Dazu MUSS der Nutzer ein Google-Konto haben. Ich habe zwei Möglichkeiten, dies zu überprüfen:

  1. Ich instanziiere einen Account Manager und suche nach "com.google" -Konten, wenn es keine solchen Konten gibt.
  2. Ich starte eine Webansicht, in der sich der Nutzer bei Google anmeldet und die Verwendung der API akzeptiert.

    Dann muss ich meine Anwendung mit GTask synchronisieren. Aus den aus der Webansicht extrahierten Informationen habe ich versucht, mit dem AccountManager ein "com.google" -Konto zu erstellen, aber ich habe immer den Fehler "Anrufer-UID ist anders ...". Ich weiß, dass das Problem vom "Kontoauthentifizierer" herrühren sollte, da der "Kontotyp" in der XML-Datei und in der App identisch sein muss, aber ich denke, dass dies nicht der Fall ist, da es perfekt funktioniert, wenn ich einen anderen Kontotyp verwende (aber ich kann kein authToken von GTask erhalten).

    Also, hier ist mein Code:

    Authenticator.xml:

    <account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
        android:accountType="com.google"
        android:icon="@drawable/miniicon"
        android:smallIcon="@drawable/miniicon"
        android:label="@string/app_name"
        android:accountPreferences="@xml/preferences"
     />
    

    Definition des Kontotyps:

     public class AuthenticationService extends Service {
         public static final String ACCOUNT_TYPE = "com.google";
    

    Wie ich es in meiner Klasse benutze:

     AccountManager manager = AccountManager.get(activity);
    
     final Account account = new Account(login, AuthenticationService.ACCOUNT_TYPE);
     manager.addAccountExplicitly(account, password, new Bundle());
    

    Wenn ich "com.plop" oder etwas anderes anstelle von "com.google" verwende, funktioniert es wirklich gut.

    Meine beiden Fragen sind also: 1. Kann ich den Kontotyp "com.google" verwenden? 2. Ist es normal, dass ich mein authToken nicht mit etwas anderem als "com.google" erhalten kann (da ich weiß, dass das verwendete Konto immer noch ein Google-Konto ist, ist es unter Android einfach nicht so eingestellt)?

    Vielen Dank im Voraus für Ihre Hilfe und bitte verzeihen Sie mir, wenn die Antwort auf der Website war!

War es hilfreich?

Lösung

Ich habe meine eigene Frage beantwortet: Das ist nicht so möglich, wie ich es wollte.Sie müssen die Funktion "addAccount" mit einem Kontotyp "com.google" verwenden.Dies führt dazu, dass die vom Android-System verwendete Kontoerstellungsaktivität gelöscht wird.Dann ist mit der GTasks-API alles in Ordnung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top