Mostrar configuraciones en Cuentas y Sync Menú para la aplicación Android
-
11-12-2019 - |
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ú.
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 ...