Question

Je cherche la réponse depuis le début de la journée et je ne sais toujours pas quoi faire! Pour expliquer le problème: mon application utilise l'API GTASKS. Pour ce faire, l'utilisateur doit avoir un compte Google. J'ai deux façons de vérifier cela:

  1. J'instance un gestionnaire de compte et je cherche des comptes "com.google" s'il n'y a pas de tels comptes
  2. Je lance un webview sur lequel l'utilisateur se connecte sur Google et accepte d'utiliser l'API.

Ensuite, je dois synchroniser mon application avec gtask. À partir des informations extraites du WebView, j'ai essayé de créer un compte "com.google" en utilisant le AccountManager mais j'ai toujours l'erreur "L'appelant UID est différent ...". Je sais que le problème devrait provenir de "Compte-Authenticator" parce que le "AccountType" doit être le même dans le fichier XML et dans l'application mais je pense que ce n'est pas le cas parce que lorsque j'utilise un type de compte différent, cela fonctionne parfaitement (mais je ne peux pas obtenir un authtoken de gtask).

Alors, voici mon 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"
 />

Définition du type de compte:

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

Comment je l'utilise dans ma classe:

 AccountManager manager = AccountManager.get(activity);

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

Lorsque j'utilise "com.plop" ou anaything d'autre au lieu de "com.google", cela fonctionne très bien.

Donc, mes deux questions sont: 1. Puis-je utiliser le type de compte "com.google"? 2. Est-ce normal que je ne puisse pas obtenir mon authtoken en utilisant autre chose que "com.google" (sachant que le compte utilisé est toujours un compte Google, il n'est tout simplement pas défini comme ça sur Android)?

Merci à l'avance pour votre aide et, s'il vous plaît, pardonnez-moi si la réponse était sur le site!

Était-ce utile?

La solution

J'ai répondu à ma propre question: ce n'est pas possible comme je le voulais. Vous devez utiliser la fonction "addAccount" à l'aide d'un type de compte "com.google". Cela se traduira par la mise en œuvre de l'activité de création de compte utilisée par le système Android. Ensuite, tout va bien en utilisant l'API GTASKS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top