2016-11-09 73 views
3

我想为我的项目制作一个库/模块,它将显示应用程序的所有SharedPreferences。在Android中获取应用的SharedPreferences?

一种方式让所有的SharedPreferences是:

Map<String,?> keys = prefs.getAll(); // app sharedPreference 

for(Map.Entry<String,?> entry : keys.entrySet()){ 
    Log.d("map values",entry.getKey() + ": " + entry.getValue().toString()); 
} 

现在我试图让一个应用程序的所有喜好无需了解应用程序的首选项。

Map<String,?> keys = prefs.getAll(); // app sharedPreference (without knowing prefs) 

这可能吗?

+1

,可以是一个安全问题,如果应用程序是存储共享偏好的重要信息 –

+0

最好的办法就是尝试。从文档看来,它是可能的。 – Flummox

回答

0

那么,它应该工作,如果有什么......只是测试以下,并没有得到任何回报。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Map<String,?> keys = prefs.getAll(); // app sharedPreference 

Log.d("- Starting -", "Printing"); 
for(Map.Entry<String,?> entry : keys.entrySet()){ 
    Log.d("map values",entry.getKey() + ": " + entry.getValue().toString()); 
} 
Log.d("--- End ---", "Printing"); 

我用我自己存储sharedPreffs的内容如下所示。如果有些人使用它,那么你将很难获得数据。

context.getSharedPreferences(SETTINGS_FILE, Context.MODE_PRIVATE); 

欲了解更多信息,并很好地利用sharedPreferences的请看here.

+0

我在sharedPreference中增加了一些值。然后,我按照你的建议尝试,没有得到任何回报。 –

相关问题