是否可以为多种帐户类型设置同步适配器? (例如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。
答案 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但引用相同的内容权限?