Estoy desarrollando una aplicación que necesita una cuenta de Google para ciertas opciones. Las opciones están deshabilitadas cuando no se detecta una cuenta, pero le presento al usuario que agregue una preguntando mediante una ventana emergente; si el usuario hace clic en sí, la actividad debería comenzar. Está funcionando bien para mostrar la página global "Agregar cuenta", pero quiero omitir ese paso extra sin llamar. Después de todo, por qué presentar a alguien con la opción de agregar una cuenta de Exchange si se necesita una cuenta de Google, eso es simplemente confuso. Por lo tanto, quiero establecer de forma predeterminada la nueva página de configuración de la cuenta de Google.Iniciando programáticamente la actividad 'Agregar cuenta de Google' en Android
Java
try {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.google.android.gsf", "com.google.android.gsf.login.AccountIntroActivity");
//if(getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
getApplicationContext().startActivity(intent);
//} else {
//getApplicationContext().startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
//}
} catch (ActivityNotFoundException e) {
e.printStackTrace();
}
Cuando ejecuto esto, el siguiente exeception se lanza:
05-29 18: 24: 50.741: W/System.err (10875): android.content .ActivityNotFoundException: no se puede encontrar la clase de actividad explícita {com.google.android.gsf/com.google.android.gsf.login.AccountIntroActivity}; ¿Has declarado esta actividad en tu AndroidManifest.xml?
AndroidManifest.xml
<activity
android:name="com.google.android.gsf.login.AccountIntroActivity"/>
PREGUNTA: lo que me estoy perdiendo aquí?
EDIT:
me trataron de una manera diferente usando addAccount, esto no funciona, no pasa nada, no hay errores se tiran, ninguna nueva actividad comienza a agregar la cuenta de Google. Por cierto, todo el bloque try catch en la versión original está en un AlertDialog/listener.
AccountManager acm = AccountManager.get();
acm.addAccount("com.google", null, null, null, null, null, null);
Me siento como un idiota, pero supongo que tengo que marcar mi propia respuesta como respondí ahora. Gracias por toda su paciencia y ayuda @Nikolay Elenkov! – slinden77
¿Es "thisclassname" una clase real? –