我遵循syncadapter示例創建AccountManager和同步適配器。我想在同一個帳戶下爲不同目的使用兩種不同類型的authtokens(訪問不同的服務 - 同步適配器使用其中一種)。具有多個認證令牌類型的Android AccountManager
事情的工作,但我發現,當我認證(通過getauthtoken)一個authtoken類型,保存它的過程替換其他authtoken類型。我在前後查看了accounts.db文件。在調用authtoken類型爲「B」的令牌之前,accounts.db中的authtoken表具有用於auth類型「A」的authtoken。在調用之後,accounts.db中的authtoken表具有「B」類型的authtoken,但「A」已被刪除。無論訂單如何,帳戶管理員子系統似乎都不會爲我的帳戶類型存儲每個帳戶一個以上的驗證字。
當你有多個authtoken類型時,你需要在某個xml文件中配置什麼特別的東西嗎?
當您保存令牌時,您確定將其保存爲特定類型嗎? – CChi 2014-09-10 21:03:52
我首先想到的可能是,但我沒有看到指定類型的方法。該標記使用AccountAuthenticatorActivity中的繼承的setAccountAuthenticatorResult()方法進行設置。 extras包中的值不指定類型 - 類型是使用getAuthToken()傳遞的。 AccountManager中的任何鍵(例如KEY_ACCOUNT_NAME)都不會引用authtoken類型,除非我錯過了它。 但我看到authtoken類型在accounts.db中設置正確 - 只是刪除了其他authtoken類型記錄。 – BJV 2014-09-10 21:28:18
,您可以指定類型,傳入AccountManager.KEY_ACCOUNT_TYPE作爲關鍵字,並將帳戶類型的字符串表示形式作爲值。 – CChi 2014-09-10 21:30:31