0

是否可以爲多個帳戶類型擁有同步適配器? (如com.google和com.facebook.auth.login)適用於多個帳戶類型的同步適配器

看來syncadapter.xml只接受像一個單一的值:

<?xml version="1.0" encoding="utf-8"?> 
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" 
    android:contentAuthority="com.foo" 
    android:accountType="com.google" 
    android:supportsUploading="true" 
    android:userVisible="true" /> 

我希望有適合我的用戶喜歡幾個帳戶選項谷歌,臉譜和推特。

+0

我沒有明白。爲什麼你嘗試使用幾種賬戶類型?帳戶類型與服務器地址無關。你能解釋一下嗎? – azad

回答

0

雖然AbstractThreadedSyncAdapter的文檔使用複數(強調),見

了Android:contentAuthority和android:ACCOUNTTYPE屬性指出哪些內容管理局和佔類型此同步適配器提供。

我不認爲它支持。我不完全確定,但它看起來像this is the code for how the sync-adapter xml is parsed。我預計一些循環到ACCOUNTTYPE屬性分成多種類型,如果它有這種支持:

79  static class MySerializer implements XmlSerializerAndParser<SyncAdapterType> { 
80   public void writeAsXml(SyncAdapterType item, XmlSerializer out) throws IOException { 
81    out.attribute(null, "authority", item.authority); 
82    out.attribute(null, "accountType", item.accountType); 
83   } 
84 
85   public SyncAdapterType createFromXml(XmlPullParser parser) 
86     throws IOException, XmlPullParserException { 
87    final String authority = parser.getAttributeValue(null, "authority"); 
88    final String accountType = parser.getAttributeValue(null, "accountType"); 
89    return SyncAdapterType.newKey(authority, accountType); 
90   } 

然而,也許是可以添加一個XML支持你,但指的是同一內容的權威每個賬戶類型?

+0

,因爲元數據標籤包含在AndroidManifest.xml的service-tag中,所以需要多個服務。 –

+0

確實。查看initializeSyncAdapter的代碼我懷疑Android是爲處理這種情況而設計的。它似乎假定SyncAdapter與特定的帳戶類型具有一對一的關係。也許您最好的選擇是創建自定義帳戶類型並使用OAuth讓用戶在OAuth服務提供商處重複使用他們的帳戶。 – andyandy

相關問題