Luk*_* Vo 7 backup android sharedpreferences
我正在制作备份程序,将手机SharedPreferences数据保存到我自己的结构文件中.但我不知道如何列出所有这些,我需要:
例如,2个程序用名称"Program A"和保存了它们的SharedPreferences "Program B".我需要获取thay String数组包含这两个名字.然后,我使用getSharedPreferences"程序A",我需要获得程序保存的所有键.
真的有可能吗?
编辑1:我不知道手机上的节目/活动.我希望得到所有keys节目保存的所有内容.就像您备份所有手机数据一样,但只备份SharedPreferences值.
例如:您的手机有10个程序,每个程序创建一个名为SharedPreferences Program 1到Program 10(当然,他们想要的任何名称).我想获得所有这些Program 1对Program 10字符串.然后,如果Program 1有5个按键叫Key 1到Key 5,我想要获得这些密钥的名字.
编辑2:根据NikolaMKD指南,这是我到目前为止所做的,但列表返回所有程序,在所有行都有"无首选项",即使在第一行,我保存了SharedPreferences我的活动:
public class Test extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences preferences = getSharedPreferences("Test", 1);
// No matter what name is: Test or the package name
Editor editor = preferences.edit();
editor.putInt("TestKey", 0);
editor.commit();
List<ResolveInfo> Temp =
getPackageManager().queryIntentActivities(
new Intent(Intent.ACTION_MAIN, null)
.addCategory(Intent.CATEGORY_LAUNCHER), 0);
String[] App = new String[Temp.size()];
for (int i = 0; i < Temp.size(); i++) {
App[i] = Temp.get(i).activityInfo.name;
FileReader reader = null;
try {
reader = new FileReader("/data/data/"
+ App[i] + "/shared_prefs/" + App[i] + "_preferences.xml");
} catch (FileNotFoundException e) {
reader = null;
}
if (reader != null)
App[i] += " (Have Prefereces)";
else
App[i] += " (No Prefereces)";
}
setListAdapter(new ArrayAdapter<String>(this, R.layout.main, App));
}
}
Run Code Online (Sandbox Code Playgroud)
Nik*_*ski 10
从中获取所有_preferences.xml
/data/data/(package)/shared_prefs/(package)_preferences.xml
解析XML,在XML中有每个键的名称.我可能会误解你的问题
小智 6
尝试这个:
Map<String, ?> allPrefs = prefs.getAll(); //your sharedPreference
Set<String> set = allPrefs.keySet();
for(String s : set){
LOG.d(TAG, s + "<" + allPrefs.get(s).getClass().getSimpleName() +"> = "
+ allPrefs.get(s).toString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12281 次 |
| 最近记录: |