2012-05-18 20 views
14

Estoy implementando un adaptador syncadapter para una aplicación de Android y me gustaría que la configuración de la cuenta esté disponible en el menú "Cuentas & sincronizar". He visto esto hecho en la aplicación DropBox (como se muestra a continuación), pero no he podido encontrar documentación sobre cómo hacer esto. Tengo el agregado agregado, solo quiero agregar un enlace a la configuración de la cuenta en este menú.Mostrar configuraciones en el menú de cuentas y sincronización para la aplicación Android

enter image description here

Respuesta

22

En su manifiesto de Android, usted debe tener una sección como esta para definir su cuenta autenticador:

<service android:name="AccountAuthenticatorService" 
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" /> 
</service> 

El meta- La etiqueta de datos anterior debe apuntar a un archivo XML que define su cuenta, así:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accountType="fm.last.android.account" 
    android:icon="@drawable/icon" 
    android:smallIcon="@drawable/icon" 
    android:label="@string/app_name" 
    android:accountPreferences="@xml/account_preferences"/> 

The androi d: accountPreferences atribuyen puntos por encima de un archivo XML que define la pantalla de preferencias, así:

<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <PreferenceCategory 
      android:title="General Settings" /> 

    <PreferenceScreen 
     android:key="account_settings" 
     android:title="Account Settings" 
     android:summary="Sync frequency, notifications, etc."> 
     <intent 
      android:action="fm.last.android.activity.Preferences.ACCOUNT_SETUP" 
      android:targetPackage="fm.last.android" 
      android:targetClass="fm.last.android.activity.Preferences" /> 
    </PreferenceScreen> 
</PreferenceScreen> 

Lo anterior PREFERENCE pondrá en marcha un intento de mostrar una pantalla de configuración, pero también se pueden definir los ajustes directamente en el XML archivo.

+0

¡Gracias por la respuesta! – Patrick

+0

Este viejo qsn! pero * Intent intennt = new Intent (Settings.ACTION_SYNC_SETTINGS); // ACTION_SETTINGS startActivity (intent); * ¡no se inicia la pantalla de preferencias! –

0

Si he entendido bien, ¿Quieres aparecer "cuentas & configuración de sincronización" de pantalla desde su aplicación. Para esto debes disparar un intento de configuración. Use el código que figura a continuación:

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setComponent(new ComponentName("com.android.providers.subscribedfeeds","com.android.settings.ManageAccountsSettings")); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

Espero que esto ayudó ...

+0

No, esto no es lo que estoy tratando de hacer (aunque es bueno saber esto). Estoy tratando de agregar la "configuración general" en el menú de cuentas como se muestra en la imagen anterior – Patrick

Cuestiones relacionadas