Aucune activité trouvée pour traiter intention {= agir android.accounts.AccountAuthenticator} même si j'ai une

StackOverflow https://stackoverflow.com/questions/3133887

  •  01-10-2019
  •  | 
  •  

Question

Je suis en train d'avoir mon application afficher mon activité de connexion lorsqu'un utilisateur sélectionne « Ajouter un compte » « Comptes et synchronisation » ou veut utiliser l'application et est pas encore connecté. Je l'ai suivi l'exemple SampleSyncAdapter assez près, mais ne peut pas obtenir au travail et l'exception suivante au lieu:

No Activity found to handle Intent { act=android.accounts.AccountAuthenticator }

Mon service auth contient:

public IBinder onBind(Intent intent) {
    IBinder ret = null;
    if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT)){
        ret = getAuthenticator().getIBinder();
    }
    return ret;
}

Mon AndroidManifest.xml:

<service android:name=".auth.MyAuthService"
         android:exported="true" 
         android:process=":auth">
    <intent-filter>
        <action android:name="android.accounts.AccountAuthenticator" />
    </intent-filter>

    <meta-data android:name="android.accounts.AccountAuthenticator"
               android:resource="@xml/authenticator" 
    />

Mon activité principale:

startActivity(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT));

Je l'ai essayé de faire les deux:

Intent svc = new Intent(this, CreazaAuthService.class);
startService(svc);

et

bindService(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT), null, BIND_AUTO_CREATE);

avant l'appel startActivity(), mais il ne peut toujours pas trouver une activité pour cette intention. Si je tente d'ajouter un compte via la synchronisation des comptes et mes application se bloque avec le même ActivityNotFoundException.

Qu'est-ce que je fais mal?

EDIT Je l'ai examiné l'application last.fm de C99, qui définit une action personnalisée et utilise des intentions fondées sur cette action plutôt que android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT. Est-ce une meilleure approche? Est-il un moyen de le faire fonctionner avec Comptes et Sync?

Était-ce utile?

La solution

Dans votre <category android:name="android.intent.category.DEFAULT" /> PUT filtre intention

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