2012-05-18 5 views
14

Sto implementando un syncadapter per un'app per Android e vorrei rendere disponibili le impostazioni per l'account nel menu "Account & sync". Ho visto questo fatto nell'app DropBox (come mostrato sotto), ma non sono stato in grado di trovare la documentazione su come farlo. Ho aggiunto il conto, voglio solo aggiungere un link alle impostazioni dell'account in questo menu.Mostra impostazioni in Account e menu di sincronizzazione per app Android

enter image description here

risposta

22

Nel vostro Android Manifest, si dovrebbe avere una sezione come questo per definire il tuo account autenticatore:

<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 meta- il tag dei dati sopra dovrebbe puntare a un file XML che definisce il tuo account, in questo modo:

<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 androi D: accountPreferences attribuiscono punti di cui sopra in un file XML che definisce la vostra schermata delle preferenze, in questo modo:

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

È possibile che questo PREFERENCE lancerà l'intento di visualizzare una schermata delle impostazioni, ma si può anche definire le impostazioni direttamente in XML file.

+0

Grazie per la risposta! – Patrick

+0

Questo vecchio qsn! ma * Intent intent = new Intent (Settings.ACTION_SYNC_SETTINGS); // ACTION_SETTINGS startActivity (intent); * non avvia la schermata delle preferenze !! –

0

se ho capito bene, Si vuole mostrare "conti & impostazioni di sincronizzazione" schermo dall'interno dell'applicazione. Per questo devi sparare un intento per le impostazioni. Usa il codice indicato di seguito:

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

Spero che questo ha aiutato ...

+0

No, non è quello che sto cercando di fare (anche se è bello saperlo). Sto cercando di aggiungere le "impostazioni generali" nel menu.accounts come mostrato nella foto sopra – Patrick