2016-11-09 65 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中增加了一些值。然後,我按照你的建議嘗試,沒有得到任何回報。 –

相關問題