Shared Preferences Path не существует на некоторых телефонах? - PullRequest
0 голосов
/ 04 мая 2011

Путь общих настроек по умолчанию на Android:

/data/data/package_name/shared_prefs/package_name_preferences.xml

В моем приложении есть возможность сделать резервную копию этого файла на SD-карту.Но на телефоне Samsung Galaxy S, кажется, нет пути или файла, как

/data/data/package_name/..

Пользователь сообщил мне, что он получает ошибку при резервном копировании.

Если я проверяюя вижу ошибку:

/data/data/xxx.xxxx.xxxx/shared_prefs/xxx.xxxx.xxxx_preferences.xml (No such file or directory)

Как это может произойти?

Вот мой код для создания пути:

Environment.getDataDirectory().toString() + "/data/xxx.xxxx.xxxx/shared_pref/xxx.xxxx.xxxxx_preferences.xml"

Ответы [ 3 ]

0 голосов
/ 04 мая 2011

Вы не должны использовать абсолютные пути к файлам в своем приложении, потому что не во всех установках Android используются одинаковые пути.

Попробуйте использовать: SharedPreferences settings = getSharedPreferences (xxx.xxxx.xxxx_preferences.xml, 0);

Это позволит получить доступ к вашим общим настройкам с использованием относительной адресации, а не абсолютной адресации, и должно решить вашу проблему.

0 голосов
/ 02 февраля 2012

Я только что попытался найти путь к общим настройкам ниже, вот так. Это работа для меня.

File f = getDatabasePath("MyPrefsFile.xml");

if (f != null)
    Log.i("TAG", f.getAbsolutePath());
0 голосов
/ 04 мая 2011

Рассматривали ли вы повторную реализацию с помощью Android Cloud Backup, чтобы резервная копия отправлялась в облако вместо SD-карты?

http://developer.android.com/guide/topics/data/backup.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...