Syncadapter适用于多种帐户类型

时间:2012-05-28 14:47:22

标签: android android-manifest accountmanager android-syncadapter

是否可以为多种帐户类型设置同步适配器? (例如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" />

我希望为我的用户提供多种帐户选项,例如google,facebook和twitter。

1 个答案:

答案 0 :(得分: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但引用相同的内容权限?