Где 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.