Android: lee las preferencias establecidas en authenticator xml

Quiero leer en mis preferencias de código que he establecido a través del archivo xml autenticador. Encontré No se puede acceder a las preferencias establecidas en cuenta-autenticador en Android y ¿Cómo puedo acceder a las preferencias establecidas en la cuenta-autenticador en Android uno está completamente sin respuesta y el otro dice que tengo que crear mi propia actividad. Esto realmente suena extraño ya que eso significaría que las preferencias que puedo configurar a través de xml son inútiles porque nunca puedo volver a leerlas. Eso no puede ser. ¿Alguien sabe más sobre él? Si realmente tengo que crear una actividad propia, ¿cómo haría esto en el caso del autenticador?

De la documentación de AbstractAccountAuthenticator :

El atributo de preferencias apunta a una jerarquía xml de PreferenceScreen que contiene una lista de PreferenceScreens que se pueden invocar para administrar el autenticador. Un ejemplo es:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="@string/title_fmt"/> <PreferenceScreen android:key="key1" android:title="@string/key1_action" android:summary="@string/key1_summary"> <intent android:action="key1.ACTION" android:targetPackage="key1.package" android:targetClass="key1.class"/> </PreferenceScreen> </PreferenceScreen> 

Por lo tanto, parece que a pesar de que es posible poner las preferencias individuales en account_preferences.xml no se pretende que se haga por lo que los valores no son accesibles.

Consulte esta pregunta y la respuesta para obtener detalles sobre cómo configurar y manejar la intención de PreferenceScreen.

EDITAR

Para un ejemplo de trabajo muy básico, puede descargar la aplicación de ejemplo de los documentos de formación del adaptador de sincronización y editarlo de la siguiente manera.

Crear res/xml/account_preferences.xml que se parece a esto

 <?xml version="1.0" encoding="UTF-8" ?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Category"/> <PreferenceScreen android:key="key1" android:title="@string/app_name" android:summary="@string/account_name"> <intent android:targetPackage="com.example.android.network.sync.basicsyncadapter" android:targetClass="com.example.android.network.sync.basicsyncadapter.EntryListActivity"/> </PreferenceScreen> </PreferenceScreen> 

Añadir android:accountPreferences="@xml/account_preferences" a la etiqueta account-authenticator de authenticator.xml .

Este ejemplo inicia una actividad existente en el ejemplo, pero podría iniciar fácilmente una PreferenceActivity (o cualquier otra actividad que desee). Consulte la Guía de configuración para obtener detalles sobre cómo configurar PreferenceActivity.

Para ver un ejemplo del mundo real desde una aplicación básica de Android, consulta la implementación de la aplicación Correo electrónico aquí .

  • AccountAuthenticatorActivity y fragmentos
  • Autenticador de cuenta de Android editar Identidad de correo electrónico
  • Permisos de concesión de API de GMail antes de la excepción UserRecoverableAuthUIE
  • Compartir AccountAuthenticator personalizado entre aplicaciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.