2016-07-07 62 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不會爲您做到這一點。

關於賬戶的唯一性,如果賬戶名稱在您的賬戶類型的所有賬戶中是唯一的就足夠了。因此,如果您的服務的所有用戶都擁有唯一的用戶名,則無需擔心。