2015-10-29 11 views
6

Ho implementato il "vecchio" l'attuazione GCM in cui il codice di esempio ha avuto il seguente:Escludi chiave sharedpreference specifico con il backup 6.0 Android Auto

public static final String PROPERTY_REG_ID = "registration_id"; 
private SharedPreferences getGCMPreferences(Context context) { 
    return context.getSharedPreferences(SampleApp.class.getSimpleName(), 
      Context.MODE_PRIVATE); 
} 
... 
String registrationId = prefs.getString(PROPERTY_REG_ID, ""); 

Con il nuovo sistema di backup in Android 6.0 si dice che si dovrebbe escludere questo chiave, ma la escludere docs formato: http://developer.android.com/training/backup/autosyncapi.html

in realtà non sembrano indicare come si può escludere uno sharedpreference tranne dicendo che:

sharedpref: specifica un oggetto SharedPreferences che restituisce il metodo getSharedPreferences().

Non c'è un getSharedPreferences() senza parametri per quanto ne so?

ho provato:

<?xml version="1.0" encoding="utf-8"?> 
<full-backup-content> 
    <exclude domain="sharedpref" path="registration_id"/> 
</full-backup-content> 

Ma questo non sembra funzionare, naturalmente, visto che non ho indicato quale file sharedpreference dovrebbe escludere dalla. Qualcuno ha implementato con successo questo?

risposta

9

L'esclusione è per un file di preferenze condivise, non una singola chiave all'interno del file.

(Nel tuo esempio, il nome del file è ottenuto tramite SampleApp.class.getSimpleName().)

Come il commento fa notare, è necessario specificare un nome di file completo, quindi ricordatevi di includere l'estensione ".xml" quando si mette la nome nell'istruzione di esclusione.

+3

Voglio solo aggiungere che per me non era abbastanza. Ho dovuto aggiungere l'estensione ".xml" alla fine per farlo funzionare. Per esempio per escludere context.getSharedPreferences ("test", Context.MODE_PRIVATE), ho dovuto scrivere Esteam

+0

@Esteam La stessa cosa fornita in [questo commento] (https://code.google.com/p/android-developer-preview/issues/detail?id=2569#c1), cerca di escludere il file di riferimento condiviso 'gcm' e aggiunge' gcm.xml' come percorso . – Mohammad

Problemi correlati