No se encontró actividad de manejar Intención {actuar = android.accounts.AccountAuthenticator} pesar de que tengo uno

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

  •  01-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de tener mi aplicación de visualización de mi actividad de inicio de sesión cuando un usuario selecciona "Añadir cuenta" en "Cuentas y sincronización" o quiere usar la aplicación y no está conectado todavía. He seguido el ejemplo SampleSyncAdapter bastante de cerca, pero no puede conseguir que funcione y recibir la siguiente excepción en su lugar:

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

Mi servicio de autenticación contiene:

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

Mi 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" 
    />

Mi actividad principal:

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

He intentado hacer ambas cosas:

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

y

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

antes de la llamada startActivity(), pero todavía no puede encontrar una actividad para ese propósito. Si trato de agregar una cuenta a través de cuentas y sincronización mis aplicación se bloquea con el mismo ActivityNotFoundException.

¿Qué estoy haciendo mal?

Editar
He examinado la aplicación de last.fm C99, que define una acción personalizada y utiliza los intentos basados ??en que la acción en lugar de android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT. Es que un mejor enfoque? ¿Hay una manera de hacer que funcione con Cuentas y sincronización?

¿Fue útil?

Solución

En su intento <category android:name="android.intent.category.DEFAULT" /> poner filtro

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top