Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Show settings under accounts & sync menu for android app

I am implementing a syncadapter for an android app and would like to make the settings for the account available under the "Accounts & sync" menu. I have seen this done in the DropBox app(as shown below), but I have not been able to find documentation on how to do this. I have the accounted added, just want to add a link to the account settings in this menu.

enter image description here

like image 618
Patrick Avatar asked May 18 '12 19:05

Patrick


People also ask

Where are account settings?

The Accounts tab in Settings holds the keys to all of the online accounts on your phone. Under the Personal tab in Settings, you'll find an option for Accounts. This is separate from the tab, where you'll find a lot of preferences related to how your account operates on your device.

How do I get to my Settings menu?

From the Home screen, tap Apps > the Apps tab (if necessary) > Settings . From the Home screen, tap the Menu key > Settings. Select a setting category and configure the desired settings.

What is account Settings page?

The Account Settings page will show you a summary of your user and store account information. This page will also allow you to perform simple account functions such as: Setting up/Updating your 2-Step Authentication. View/Add/Update your store's Administrator Access options. View/Update your Billing and Plan ...


1 Answers

In your Android Manifest, you should have a section like this to define your account authenticator:

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

The meta-data tag above should point to an XML file that defines your account, like this:

<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 android:accountPreferences attribute above points to an XML file that defines your preferences screen, like 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>

The above PreferenceScreen will launch an intent to display a settings screen, but you can also define the settings directly in the XML file.

like image 74
c99koder Avatar answered Oct 12 '22 13:10

c99koder