有人可以向我解释为什么在创建我的组时会忽略此参数GROUP_IS_READ_ONLY(设置为0)和GROUP_VISIBLE(设置为false)吗?
我仍然可以在其中看到群组和联系人,也可以在其中删除/修改我的群组和联系人。
编辑
这是我创建群组的方式:
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ops.add(ContentProviderOperation.newInsert(Groups.CONTENT_URI)
.withValue(Groups.TITLE, groupName)
.withValue(Groups.ACCOUNT_NAME, accountName)
.withValue(Groups.ACCOUNT_TYPE, AccountGeneral.ACCOUNT_TYPE)
.withValue(Groups.GROUP_VISIBLE, false)
.withValue(Groups.GROUP_IS_READ_ONLY, 1)
.build());
mContentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
这就是Android开发人员官方页面所说的:
GROUP_VISIBLE -标记,指示是否应在任何用户界面中看到属于该组的联系人。
GROUP_IS_READ_ONLY -“只读”标志:默认情况下为“ 0”,如果该行只能通过同步适配器进行修改或删除,则为“ 1”。请参阅ContactsContract.CALLER_IS_SYNCADAPTER。
谢谢!
答案 0 :(得分:1)
因此,从注释部分继续,答案是您的输入值还可以,并且可以按要求保存。
但是,“联系人”应用程序(或任何其他读取联系人的应用程序)可以忽略GROUP_VISIBLE
上的值,并在电话上显示所有联系人。
通常,应用程序会为用户提供一些过滤功能,因此用户可以选择只查看可见组中的联系人,手机上的所有联系人还是特定组。
如果使用IN_VISIBLE_GROUP选择来查询联系人,那么您不应在光标响应中获得在您的组下创建的联系人。