AccountManager: Cómo permitir que el usuario seleccione una cuenta utilizando un cuadro de diálogo

En el tutorial de AccountManager Recordando a su usuario , se recomienda:

Si hay más de una Account en la matriz, debe presentar un diálogo pidiendo al usuario que seleccione una.

¿Cuál es la mejor manera de hacer esto? Tengo una solución en mente, pero si hay otros buenos ejemplos de la comunidad, parece que este es el tipo de código que podría ser compartido y fácilmente reutilizado por otros.

Desde Android 4.0 (API nivel 14) en adelante, el lanzamiento de una actividad con una intención mostrada a continuación muestra el selector de cuenta.

 Intent intent = AccountManager.newChooseAccountIntent(null, null, new String[] { acc_type }, true, null, null, null, null); startActivityForResult(intent, CHOOSE_ACCOUNT); 

Para dispositivos anteriores a 4.0,
utilice https://github.com/frakbot/Android-AccountChooser

Yo uso este código. Muestra un diálogo, por lo que el usuario final puede elegir uno de la cuenta de google.

 ArrayList<String> gUsernameList = new ArrayList<String>(); AccountManager accountManager = AccountManager.get(this); Account[] accounts = accountManager.getAccountsByType("com.google"); gUsernameList.clear(); //loop for (Account account : accounts) { gUsernameList.add(account.name); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Choose you gmail-account"); ListView lv = new ListView(this); ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.simple_list_item_1, android.R.id.text1, gUsernameList); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent,View view,int position,long id) { Log.d("You-select-gmail-account", gUsernameList.get(position)) ); } }); builder.setView(lv); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }); final Dialog dialog = builder.create(); dialog.show(); 
  • Personalizar el diálogo al eliminar la cuenta de accountmanager android
  • Implementación de OAuth2 con AccountManager, Retrofit y Dagger
  • ¿Por qué no se llama AccountAuthenticator # getAuthToken ()?
  • AccountManager.addAccountExplicitamente devuelve false en Algunos teléfonos Android
  • Administrador de cuentas: la aplicación de Android no aparece en la pestaña Cuentas de Configuración,
  • ¿Un buen tutorial para usar AccountManager en Android?
  • Cómo revocar el permiso que mi aplicación recibe del usuario google gmail AccountManager.getAuthToken (
  • No se puede agregar nueva cuenta personalizada desde una aplicación diferente con el mismo autenticador
  • Utilizando AccountManager addAccountExplicitamente toma mucho tiempo para la primera sincronización
  • AccountManagerFuture.getResult () da como resultado la pantalla "No se puede iniciar sesión"
  • Autenticador de cuenta de Android editar Identidad de correo electrónico
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.