我在应用程序中使用AccountAuthenticator和SyncAdapter,对于存储在AccountManager中的帐户,我使用自己的ACCOUN_TYPE和服务器特定标识符作为ACCOUNT_NAME(让我们说" com.example.account_type"和" xxx-long-hashed-id"分别)。 我必须使用此标识来保持该帐户与另一个帐户不同,因为据我所知,AccountManager使用类型和名称来确保帐户唯一性。
问题是,当我打开我的应用程序的系统设置 - >帐户页面时,我看到这个丑陋的标识符作为名称,但我想把那个与此身份相关联的用户名(我也在联系人应用程序中看到这个 - 我导出联系人那里)。如果我开始使用用户名作为ACCOUNT_NAME,那么每当我在我的应用中更改用户名时,我会在那里看到另一个帐户,尽管它应该是相同的。是否有任何方法或解决方法可以将标识用作名称,但是为系统提供用户可读的名称?
答案 0 :(得分:0)
不,Android中的帐户没有别名机制。使用实际用户名是创建帐户的预期方式。如果您需要更改帐户名称,则必须删除并重新添加帐户。对于API级别21+,有一种名为AccountManager.renameAccount(...)的方法,但它的作用基本相同。由您的应用程序将旧帐户中的任何数据迁移到新帐户,Android不会为您执行此操作。
关于帐户的唯一性,只要帐户名称在您帐户类型的所有帐户中都是唯一的就足够了。因此,如果您服务的所有用户都拥有唯一的用户名,则无需担心。