【发布时间】:2023-01-15 19:49:13
【问题描述】:
我的应用程序与具有大量自定义属性的自定义服务器同步联系人。因此,它有一个内置的联系人编辑器,用于自己的联系人,我不希望本机联系人应用程序允许编辑这些联系人。我认为在 sync-adapter xml 中设置 android:supportsUploading="false" 会做我想做的事,但事实并非如此。这是完整的 XML 文件:
<sync-adapter
xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.myapp.ContactSync"
android:contentAuthority="com.android.contacts"
android:userVisible="false"
android:supportsUploading="false"
android:allowParallelSyncs="false"
android:isAlwaysSyncable="false"
/>
我在 Google Pixel 6 (Android 12) 和运行 Android 5.0 的旧平板电脑上试过这个,结果是一样的——如果我在本机联系人应用程序中打开我的一个“自定义”联系人,它允许用户编辑它。但它使用默认的联系人字段集(如拼音名字、中间名和姓氏等),我的服务器不支持这些字段。因此,如果用户实际上在这些字段中输入了任何数据,我的同步适配器就会看到联系人已更改,并尝试将其同步回服务器。
正如我所说,我的目标是只允许在我的应用程序中编辑这些联系人。那可以吗?
编辑:澄清一下,我已经排除了这是联系人聚合的某种错误的可能性。我在多个设备上测试了这个,没有加载其他联系人,只有我的应用程序添加的联系人。我也尝试为每个联系人设置AGGREGATION_MODE_DISABLED,e edited,但这并没有解决问题。
【问题讨论】:
标签: android android-contacts android-syncadapter