Pregunta

Estoy implementando un SyncAdapter para una aplicación de Android y desea realizar la configuración de la cuenta disponible en el menú "Cuentas y sincronización".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 hacerlo.Tengo la contabilidad agregada, solo quiero agregar un enlace a la configuración de la cuenta en este menú.

ingrese la descripción de la imagen aquí

¿Fue útil?

Solución

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

<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>

La etiqueta de meta-datos anterior debe apuntar a un archivo XML que define su cuenta, como este:

<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"/>

El Android: Attributo de ACTHEPREFERENCES ANTERIOR PUNTOS A UN FILO XML que define la pantalla de su preferencia, como SO:

<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>

Las preferencias anteriores se iniciarán una intención de mostrar una pantalla de configuración, pero también puede definir la configuración directamente en el archivo XML.

Otros consejos

Si entendí correctamente, desea mostrar la pantalla "Configuración de cuentas y sincronización" desde su solicitud.Para esto tienes que disparar una intención de configuraciones.Usa el código dado 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 haya ayudado ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top