Keine Aktivität gefunden Intent zu handhaben {act = android.accounts.AccountAuthenticator} obwohl ich eine haben
-
01-10-2019 - |
Frage
Ich versuche, meine Anwendung haben die Anmeldungs ??Aktivität angezeigt wird, wenn ein Benutzer „Konto hinzufügen“ in „Konten & Synchronisierung“ oder will die Anwendung verwenden und ist noch nicht angemeldet. Ich habe das Beispiel gefolgt SampleSyncAdapter ziemlich eng, aber nicht kann bekommen sie zur Arbeit und erhalten die folgende Ausnahme statt:
No Activity found to handle Intent { act=android.accounts.AccountAuthenticator }
Mein Auth Service enthält:
public IBinder onBind(Intent intent) {
IBinder ret = null;
if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT)){
ret = getAuthenticator().getIBinder();
}
return ret;
}
Meine 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"
/>
Meine Haupttätigkeit:
startActivity(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT));
Ich habe beide versucht zu tun:
Intent svc = new Intent(this, CreazaAuthService.class);
startService(svc);
und
bindService(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT), null, BIND_AUTO_CREATE);
vor dem startActivity()
Ruf, aber es kann immer noch keine Aktivität für diese Absicht finden. Wenn ich versuche, ein Konto über Konten & Synchronisierung meiner Anwendung abstürzt mit dem gleichen ActivityNotFoundException
hinzuzufügen.
Was mache ich falsch?
Bearbeiten
Ich habe c99 der last.fm App, untersucht, die eine benutzerdefinierte Aktion definiert und verwendet Absichten auf der Grundlage dieser Aktion statt android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT
. Ist das ein besserer Ansatz? Gibt es eine Möglichkeit, es funktioniert mit Konten und Synchronisierung zu machen?
Lösung
Ihre Absicht Filter put <category android:name="android.intent.category.DEFAULT" />