Где Android Account Manager хранит определенные настройки учетной записи?

Мне удалось создать различные аутентификаторы / сервисы учетных записей, каждый из которых имеет собственный preference.xml. Эти предпочтения постоянны, но я не знаю, где на телефоне они хранятся. Я искал телефон с помощью adb, но не могу найти файлы *.db или "shared_prefs", которые соответствуют настройкам для моих конкретных учетных записей.

Кто-нибудь имеет опыт работы с этим?

3 ответа

Меня удивило то же самое, когда я искал, где Android хранит "дополнения" Bundle с учетной записью.

Он находится в базе данных SQLite (чтобы извлечь и просмотреть его, вам нужно получить root права на свой телефон):

/data/system/users/0/accounts.db

Вам нужно найти свой аккаунт для своего приложения:

sqlite> select * from accounts;
24|john.doe|com.evernote|

Затем используйте идентификатор, чтобы найти дополнения:

sqlite> select * from extras where accounts_id = 24;
70|24|userId|8305749

Насколько я могу судить, /data/system/users/0/accounts.db больше не используется в текущих версиях Android.

Я нашел все данные своей учетной записи в /data/system_de/0/accounts_de.db.

Кроме того, довольно много информации об аутентификации Google, похоже, кешируется в /data/system_ce/0/accounts_ce.db

Скорее всего, нет, потому что обычно вам не нужно заботиться о том, где Android хранит общие настройки.

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

    <manifest package="com.my.app.account" ... >

Настройки хранятся в

    /data/data/com.my.app.account/shared_prefs/com.my.package.account_preferences.xml

Эти результаты взяты из эмулятора Android 2.3.

Другие вопросы по тегам