studio sobre programacion para herramientas desarrollo con avanzado aplicaciones android account android-syncadapter

sobre - manual de programacion android



Ocultar cuenta ficticia para el adaptador de sincronización de la configuración (2)

He creado un adaptador de sincronización con una cuenta ficticia y no quiero que aparezca en la lista de cuentas en la aplicación de configuración, ni cuando un usuario presiona el botón Agregar cuenta en la configuración. He intentado android: userVisible = "false" en mi definición de adaptador de sincronización, pero sigue apareciendo la cuenta. He intentado esto en un emulador y 3 dispositivos físicos. Todo funciona correctamente en el sentido de que sincroniza todos los datos que necesito, lo único incorrecto es que veo la cuenta en la lista y no quiero hacerlo.

Mi authenticator.xml es:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="net.astagor.android.hhp.account" android:icon="@drawable/ic_launcher" android:smallIcon="@drawable/ic_launcher" android:label="@string/app_name" />

Mi syncadapter.xml es:

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" android:contentAuthority="net.astagor.android.hhp" android:accountType="net.astagor.android.hhp.account" android:userVisible="false" android:supportsUploading="true" android:allowParallelSyncs="false" android:isAlwaysSyncable="true" />

Y añado mi adpater así:

Account account = AuthenticatorService.GetAccount(); AccountManager accountManager = (AccountManager) context .getSystemService(Context.ACCOUNT_SERVICE); if (accountManager.addAccountExplicitly(account, null, null)) { ContentResolver.setIsSyncable(account, StubProvider.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, StubProvider.AUTHORITY, true); ContentResolver.addPeriodicSync(account, StubProvider.AUTHORITY, new Bundle(), SYNC_FREQUENCY); }

Y obtengo la cuenta en la lista de cuentas y en la lista de agregar cuentas.

¡Ayuda por favor! :)


Encontré la solución. Este es el aspecto de authenticator.xml:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="net.astagor.android.hhp.account" />

No debes tener estas líneas:

android:icon="@drawable/ic_launcher" android:smallIcon="@drawable/ic_launcher" android:label="@string/app_name"

Si los pones, la cuenta estará visible donde sea que configures android: userVisible = "false" o no.


Esta no es una respuesta real, pero si elimina la etiqueta del authenticator.xml, no se muestra en la lista de cuentas agregadas, pero el icono aparece sin etiqueta en la lista después de hacer clic en Agregar cuenta. Feo y probablemente no sea una buena idea. (este método oculta la cuenta al menos en mi nexus 4 con 4.4 - todavía no he comprobado otros dispositivos).

Creo que la marca visible del usuario en el adaptador de sincronización solo afecta la visualización de la parte de sincronización después de seleccionar una cuenta, donde puede ver la última hora de sincronización, establecer la configuración de sincronización automática y la sincronización de activación.

Me encantaría saber esto también. Debe ser posible, ya que no veo mi lista de cuentas llena de cuentas ficticias. Entonces, ¿hay alguna manera o casi ninguna de mis aplicaciones instaladas está molestando con los adaptadores de sincronización?