我想使用Android的內置AccountManager來處理我們的原生Android應用程序的帳戶。但是,我們有一個特殊的需求。如何讓AccountManager爲每個用戶名處理多個帳戶?
看起來,Android的帳戶概念是名稱(即[email protected])和類型(即com.example)的組合。名稱是您登錄的用戶名。類型與您的應用程序或公司相關聯。
但是,我們的REST後端允許單個用戶擁有多個賬戶,並且每個賬戶必須通過與一個用戶名和一個賬號(除了類型)的組合相連的自己唯一的哈希來訪問。
我已經擁有AccountAuthenticator,AuthenticationService和AccountAuthenticatorActivity,可以爲單個用戶使用單個帳號和單個存儲的散列。有什麼方法可以實現我的AccountAuthenticator來處理具有相同用戶名下的多個賬戶的用戶,每個賬戶都需要一個哈希值?是否可以附加一個分隔符到用戶名並在每次使用時將它分成用戶名和帳號?
如果我找不到解決這個問題的方法,那麼在AbstractAccountAuthenticator.getAuthToken期間應該如何優雅地回退?將散列設置爲特殊標誌值併爲該用戶使用傳統登錄方法是否有意義?或者是太多的黑客?
感謝您的幫助!
這是非常相似,我的思路,不同的是我會存儲每個用戶的帳號而不是散列。 此外,我決定使用@作爲分隔符來序列化信息,因爲它是唯一不能出現在電子郵件地址的用戶名部分中的分隔符。例如:MazerRackham @ example.com @ 123456。我正在採取措施,當我得到很好的實施時,我可能會回答自己的問題。 – colintheshots