Не найдена активность для обработки Intent {act = android.accounts.AccountAuthenticator}, хотя у меня есть такая - PullRequest
3 голосов
/ 28 июня 2010

Я пытаюсь, чтобы мое приложение отображало мою активность при входе в систему, когда пользователь выбирает "Добавить учетную запись" в "Аккаунты и синхронизация" или хочет использовать приложение и не работает Я еще не вошел. Я довольно близко следовал примеру 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. Это лучший подход? Есть ли способ заставить его работать с Аккаунтами и Синхронизацией?

1 Ответ

12 голосов
/ 29 июня 2010

В вашем намерении фильтр положен <category android:name="android.intent.category.DEFAULT" />

...