Никакая активность не найдена для обработки намерений {act = android.accounts.accountauthenticator}, хотя у меня есть один

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

  •  01-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь сделать свое приложение отобразить мою активность входа в систему, когда пользователь выбирает "Добавить аккаунт" в "Синхронизация аккаунтов" Или хочет использовать приложение и еще не вошел в систему. Я следовал на примере SampleSyncadapter. Справедливо близко, но не могу заставить его работать и вместо этого получить следующее исключение:

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

Мой сервис AUTH содержит:

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.

Что я делаю неправильно?

РЕДАКТИРОВАТЬ
Я осмотрел приложение C99 по Last.fm, который определяет пользовательские действия и использует намерение на основе этого действия, а не android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT. Отказ Это лучший подход? Есть ли способ сделать его работать с учетными записями и синхронизацией?

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top