Как считать SharedPreferences другого приложения ???
Добавлено: 21 апр 2014, 10:03
День добрый.
Возникла необходимость считать данные из SharedPreferences другого приложения из своего.
Нужна именно программная реализация, рут есть.
В принципе мысль такая:
При запуске программы, скопировать файл из /data/data/<package>/shared_pref/preferences.xml в каталог Shared_Pref своей программы
и уже в своей проге считать данные.
вот сам файл:
данные считываются тут:
Теперь вопрос, а как можно скопировать нужный файл ???
Возникла необходимость считать данные из SharedPreferences другого приложения из своего.
Нужна именно программная реализация, рут есть.
В принципе мысль такая:
При запуске программы, скопировать файл из /data/data/<package>/shared_pref/preferences.xml в каталог Shared_Pref своей программы
и уже в своей проге считать данные.
вот сам файл:
Код: Выделить всё
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="server_address">8.8.8.8</string>
<int name="port" value="2222" />
<int name="user_name" value="5555" />
</map>
Код: Выделить всё
public class MainActivity extends Activity {
// описываем переменные
public static final String PREFS_NAME = "preferences.xml";
protected SharedPreferences mSettings = null;
private EditText mServerAddressText;
private EditText mUserNameText;
private EditText mPortText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// связываем переменные с View
this.mServerAddressText = (EditText) findViewById(R.id.settingServerText);
this.mUserNameText = (EditText) findViewById(R.id.settingUserText);
this.mPortText = (EditText) findViewById(R.id.settingBalancePortText);
// получаем сохраненные данные
this.mSettings = getSettings();
this.mServerAddressText.setText(this.mSettings.getString("server_address", "8.8.8.8"));
this.mUserNameText.setText(String.valueOf(this.mSettings.getInt("user name", 5555)));
this.mPortText.setText(String.valueOf(this.mSettings.getInt("port", 2222)));
}
public SharedPreferences getSettings()
{
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
return settings;
}