Pokaż ustawienia w menu konta i synchronizacja dla aplikacji android

Wdrażam syncadapter dla aplikacji na Androida i chciałbym, aby Ustawienia konta były dostępne w menu "konta i synchronizacja". Widziałem to w aplikacji DropBox( jak pokazano poniżej), ale nie mogłem znaleźć dokumentacji, jak to zrobić. Dodałem konto, chcę tylko dodać link do ustawień konta w tym menu.

Tutaj wpisz opis obrazka

Author: Patrick, 2012-05-18

2 answers

W manifeście Androida powinieneś mieć sekcję taką jak ta, Aby zdefiniować uwierzytelnianie konta:

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

Powyższy znacznik metadanych powinien wskazywać na plik XML, który definiuje Twoje konto, tak:

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

Atrybut android:accountPreferences powyżej wskazuje na plik XML, który definiuje ekran preferencji, w następujący sposób:

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

Powyższy PreferenceScreen uruchomi zamiar wyświetlania ekranu ustawień, ale można również zdefiniować ustawienia bezpośrednio w Plik XML.

 22
Author: c99koder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-20 18:58:52

Jeśli dobrze zrozumiałem, chcesz wyświetlić ekran "konta i ustawienia synchronizacji" z poziomu aplikacji. W tym celu musisz odpalić intencję ustawień. Użyj kodu podanego poniżej:

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);
Mam nadzieję, że to pomogło...
 0
Author: Pargat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-18 20:16:52