Я пытаюсь, чтобы мое приложение отображало мою активность при входе в систему, когда пользователь выбирает "Добавить учетную запись" в "Аккаунты и синхронизация" или хочет использовать приложение и не работает Я еще не вошел. Я довольно близко следовал примеру SampleSyncAdapter , но не могу заставить его работать и вместо этого получаю следующее исключение:
No Activity found to handle Intent { act=android.accounts.AccountAuthenticator }
Мой сервис аутентификации содержит:
public IBinder onBind(Intent intent) {
IBinder ret = null;
if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT)){
ret = getAuthenticator().getIBinder();
}
return ret;
}
Мой 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"
/>
Моя основная деятельность:
startActivity(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT));
Я пытался сделать оба:
Intent svc = new Intent(this, CreazaAuthService.class);
startService(svc);
и:
bindService(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT), null, BIND_AUTO_CREATE);
до вызова startActivity()
, но он все еще не может найти действие для этого намерения. Если я пытаюсь добавить учетную запись через учетные записи и синхронизировать мое приложение вылетает с тем же ActivityNotFoundException
.
Что я делаю не так?
EDIT
Я исследовал приложение last.fm c99, которое определяет настраиваемое действие и использует намерения, основанные на этом действии, а не android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT
. Это лучший подход? Есть ли способ заставить его работать с Аккаунтами и Синхронизацией?