2013-06-25 2 views
1

Я знаю, что этот вопрос немного глуп, но я не могу найти, где хранятся настройки экрана моих настроек.Где хранятся настройки экрана настроек?

Я использую общие настройки Этот файл находится по адресу /data/data/my.package.name/shared_prefs/common.xml. Однако, когда я что-то меняю, изменения сохраняются. Я даже реализовал пользовательские элементы управления, которые могут хранить их информацию до сих пор. Но я не могу понять, где хранятся настройки. /data/data/my.package.name/ - это только один XML-файл, который не содержит никакой связанной информации. Я также проверял виртуальные каталоги для многопользовательских устройств без везения.

Вот мой XML:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res/my.package.name" 
    android:persistent="true" > 

    <PreferenceCategory android:title="@string/settings_basics_group" > 
     <EditTextPreference 
      android:key="nickname" 
      android:persistent="true" 
      android:positiveButtonText="@string/setting_change_name" 
      android:title="@string/settings_username" /> 
     <my.package.name.controls.EmailPreference 
      android:key="mail" 
      android:title="@string/settings_email" 
      custom:domains="@array/known_email_domains" /> 
     <Preference 
      android:summary="Mars" 
      android:title="@string/settings_current_location" /> 
     <my.package.name.controls.DatePreference 
      android:key="birthday" 
      android:title="@string/settings_birthday" /> 
    </PreferenceCategory> 
</PreferenceScreen> 

я был бы очень рад, если кто-то может объяснить мне, где эти настройки сохраняются.

+0

Пожалуйста, объясните, что «Однако, когда я что-то меняю, изменения сохраняются» - вы имеете в виду «Однако, когда я что-то меняю, изменения ___not___ сохранены ___there___» –

ответ

1

Для более старых версий Android, включая Jelly Bean (API 16) и старше ответ Dalmas правильно. Поэтому не стесняйтесь повышать этот ответ.

Начиная с Jelly Bean MR1 (API 17) существуют новые правила о пути из-за поддержки многопользовательского:

Я понял, что файл настроек находится в /data/user/##/my.package.name/shared_prefs/my.package.name_preferences.xml где ## мой числовой идентификатор пользователя.

Для решения этой проблемы вам необходимо указать ApplicationContext, там вам нужно будет отразить mLoadedAPK и там mDataDir. На данный момент я доволен тем, что могу получить путь от отладчика. Извините за всех, кто хочет использовать фрагмент кода, вы должны сделать это сами.

1

Настройки приложения хранятся в стандартных настройках по умолчанию, которые можно получить с помощью PreferenceManager.getDefaultSharedPreferences().

XML-файл сам по себе находится в /data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

+0

Это действительно полезно знать, что я могу получить доступ к настройкам таким образом , но такого файла нет. Это ** моя проблема. Я также могу исключить, что эти настройки находятся только в памяти. Даже если я сбой или завершение работы моего приложения, эти настройки сохраняются. – rekire

+0

Какая у вас версия для Android? – Dalmas

+0

Я пытаюсь это на устройстве 4.2.2 (API 17). Но на другом устройстве API 10 (2.3.5) есть файл. Странный. – rekire