2016-07-07 6 views
0

Я использую AccountAuthenticator и SyncAdapter в приложении для учетных записей, хранящихся в AccountManager. Я использую собственный ACCOUN_TYPE и идентификатор сервера как ACCOUNT_NAME (скажем, «com.example.account_type» и «xxx-long- hashed-id "соответственно). Я должен использовать это удостоверение, чтобы сохранить эту учетную запись отличной от другой, поскольку, насколько я понимаю, AccountManager использует как тип, так и имя для обеспечения уникальности учетной записи.Идентификатор учетной записи Android AccountManager для имени

Проблема заключается в том, что при открытии системы Настройки-> Страница учетной записи для моего приложения Я вижу этот уродливый идентификатор в качестве имени, но я хотел поставить там имя пользователя, связанное с этим удостоверением (я также вижу это в приложении «Контакты» - я экспортирую контакты там). Если я начал использовать имя пользователя в качестве ACCOUNT_NAME, при каждом изменении имени пользователя в моем приложении, я бы увидел там еще одну учетную запись, хотя она должна быть одинаковой. Есть ли способ или обходной путь для использования идентификатора в качестве имени, но предоставить пользователю понятное имя?

ответ

0

Нет, нет механизма псевдонимов для учетных записей в Android. Использование фактического имени пользователя - это способ создания учетных записей. Если вам нужно изменить имя учетной записи, вам необходимо удалить и повторно добавить учетную запись. Для уровня API 21+ существует метод, называемый AccountManager.renameAccount(...), но он по существу тот же. Это приложение для переноса любых данных из старой учетной записи в новую, Android не сделает этого для вас.

Что касается уникальности учетных записей, достаточно, чтобы имя учетной записи было уникальным среди всех учетных записей вашего типа учетной записи. Поэтому, учитывая, что у всех пользователей вашего сервиса есть уникальные имена пользователей, беспокоиться не о чем.

Смежные вопросы