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" />

我想为我的用户提供多个帐户选项,例如 google、facebook 和 twitter。

4

1 回答 1

0

虽然AbstractThreadedSyncAdapter的文档使用复数(强调添加),请参阅

android:contentAuthority 和 android:accountType 属性指示此同步适配器服务的内容授权和帐户类型。

我不认为它支持这一点。我不完全确定,但看起来这是同步适配器 xml 的解析方式的代码。如果它支持的话,我希望有一些循环将 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,但引用相同的内容权限?

于 2012-05-28T15:10:17.560 回答