Pergunta

Estou implementando um adaptador de sincronização para um aplicativo Android e gostaria de disponibilizar as configurações da conta no menu "Contas e sincronização".Já vi isso ser feito no aplicativo DropBox (conforme mostrado abaixo), mas não consegui encontrar documentação sobre como fazer isso.Adicionei a conta, só quero adicionar um link para as configurações da conta neste menu.

enter image description here

Foi útil?

Solução

No seu manifesto do Android, você deve ter uma seção como esta para definir o autenticador da sua conta:

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

A tag de metadados acima deve apontar para um arquivo XML que define sua conta, assim:

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

O atributo android:accountPreferences acima aponta para um arquivo XML que define sua tela de preferências, assim:

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

O PreferenceScreen acima iniciará uma intenção de exibir uma tela de configurações, mas você também pode definir as configurações diretamente no arquivo XML.

Outras dicas

Se bem entendi, você deseja exibir a tela "Contas e configurações de sincronização" no seu aplicativo.Para isso você deve disparar um intent para configurações.Use o código fornecido abaixo:

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 isso tenha ajudado ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top