Je vérifie de cette façon si le fichier existe, mais je dois aller au-delà, j'ai besoin de savoir s'il y en a un en particulier, y a-t-il un moyen?
File f = new File("/data/data/com.eventrid.scanner/shared_prefs/Eventrid.xml");
if (f.exists()){
}
else{
}
SharedPreferences
a une méthode contains(String key)
, qui peut être utilisée pour vérifier si une entrée avec la clé donnée existe.
http://developer.Android.com/reference/Android/content/SharedPreferences.html
Eh bien, on pourrait faire:
SharedPreferences sharedPrefs = getSharedPreferences("sp_name", MODE_PRIVATE);
SharedPreferences.Editor ed;
if(!sharedPrefs.contains("initialized")){
ed = sharedPrefs.edit();
//Indicate that the default shared prefs have been set
ed.putBoolean("initialized", true);
//Set some default shared pref
ed.putString("myDefString", "wowsaBowsa");
ed.commit();
}
Une autre solution:
Si vous connaissez le nombre exact de préférences dont vous disposez, vous pouvez:
public void isPreferencesSet(Context context){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
return (sharedPreferences.getAll().size() == exactNumberOfPreferences);
}
Cela fonctionne car le fichier de préférences stocké dans /data/data/myApp/shared_prefs/myApp_prefrences.xml contient une paire de valeurs de préférence uniquement si sa valeur a été définie.