- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在 ContactsContract 中创建一个用户配置文件...因为没有,我需要一个用于测试。我没有真实的 Android 设备,只有用于测试的 AVD 模拟器。
这是我正在使用的代码块:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, Profile.CONTENT_RAW_CONTACTS_URI)
.withValue(Profile.IS_USER_PROFILE, 1)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, name)
.build());
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
如果删除使该条目成为用户配置文件的行,它可以正常工作(即,将插入名称)。但是,我不知道如何使用 IS_USER_PROFILE 标志设置条目。
您可以从应用程序创建用户配置文件吗?如果是这样,关于为什么这行不通有什么想法吗?
非常感谢!斯科特
最佳答案
@ozmank 给出了一个很好的指示 - 考虑从面向 API 级别 15-23 的应用中添加一个更新的工作示例
我主要在 Samsung 设备上遇到此问题 - 配置文件不存在,存在时可以将其删除。
为 WRITE_PROFILE 添加到 AndroidManifest.xml uses-permission
<uses-permission android:name="android.permission.WRITE_PROFILE"/>
创建属于配置文件的空原始联系人 - 这将生成配置文件条目
ContentValues values = new ContentValues();
context.getContentResolver().insert(Profile.CONTENT_RAW_CONTACTS_URI, values);
从返回的 Uri 中,您可以查询原始联系人条目。
注意 - 这不会将信息添加到个人资料中,因此如果您要查询个人资料中的信息,请使用
Uri uri = Uri.withAppendedPath(Profile.CONTENT_URI, Contacts.Data.CONTENT_DIRECTORY);
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
结果光标将为空,也许如果您决定再次运行 #2 中的代码并进入股票联系人应用程序,您会在我的个人资料 下看到多个空条目 -所以我的建议是尽可能保持我的个人资料干净,并跟踪您创建的原始联系人并检查它是否仍然有效 - 在创建新的原始联系人之前。
Uri uri = Uri.withAppendedPath(Profile.CONTENT_RAW_CONTACTS_URI, String.valueOf(lastLocalProfileManualRawId));
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
if (cursor != null && cursor.getCount() > 0){
// The profile exists
} else {
// Create a new raw contact
}
关于android - 如何在 ContactsContract 中创建用户配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12806954/
在how to retrieve the list of contacts in android我看到代码允许您使用 ContactsContract.CommonDataKinds.Phone.CO
我可以使用下面的查询选择所有联系人 cr = mActivity.getContentResolver(); String selection = ContactsContract.C
我试图将隐式意图发送给我的联系人应用程序,以供用户选择联系人。然后,我的应用程序将提取该联系人的姓名和电话号码,以便在该应用程序中使用。 (注意:我在BigNerdRanch的Android书籍的第2
任何人都可以帮助我在地址簿中添加新联系人并使用新的 ContactsContract API 批量应用它们吗?我找不到合适的教程。 我可以添加一个联系人。但是批量更新失败,添加了未知联系人。 目前我在
我想把我手机里的所有联系人放到一个数组中。我正在使用下面的代码,但将它们全部放入数组需要 3-4 秒。为了加快这个过程,我只收集那些有电话号码的联系人。这会产生一个包含 163 个元素的数组。 fin
我正在通过查询联系人 private Cursor cursor; private static final String SORT_ORDER = ContactsContract.Contacts
ContactsContract.Contacts 默认是空的吗?如果是这样,我如何向其中添加一些测试数据? 否则,我一定是做错了什么/遗漏了什么,因为这个 Activity 显示完全是空的。 pub
很抱歉,如果这可能是一个重复的问题,我整个晚上都在努力解决这个问题,而且我似乎找不到其他可能对此有所启发的帖子,所以我希望多几双眼睛可能会发现一些东西。 我对 ContactsContract.Dat
在我的应用程序中,我想调用联系人编辑器以允许用户添加新联系人。我想找到一种方法让应用程序将要使用的帐户传递给编辑器。如何做到这一点? 我还没有找到任何关于如何执行此操作的文档。我确实在 github
我想获取本地联系人的电话号码,但是有问题。例如,如果我选择 A,那么显示的号码是 B 的。这是代码。 //the button_click public void testM(View v) {
我尝试使用获取联系人 ID 和图片 URI 的函数更新 ContactsContract 中的照片,但它似乎不起作用(我的函数返回 true)。 我真的不明白,因为代码看起来不错。 当联系人已经有照片
是否可以对 ContactsContract 进行一次查询以获取一组与显示名称、电话号码或电子邮件地址匹配的联系人? 这本质上是联系人和数据“表”的连接(在引号中,因为它们只是通过界面看起来像表,但可
是否有一个有效的查询来查找特定帐户名称和类型的所有聚合联系人? ContactsContract.Contacts 表有 IN_VISIBLE_GROUP 列,它对联系人组成员身份有效。因此,如果用户
除了 android 站点上的简短文章:- http://developer.android.com/resources/articles/contacts.html 我还没有看到任何关于使用新的 C
我们如何使用隐式连接通过 ContactsContract API 获取 displayname 和 organization.data,以便我可以在一个游标中同时获取这两个值? 最佳答案 您可以使用
我正在使用 ContactsContract 通过将用户发送到“新联系人” Intent 来插入新联系人。我使用的代码是: Intent i = new Intent(Intent.ACTION_IN
我可以使用 ContactsContract 添加联系人到用户的一个帐户(这本身就是一项艰巨的任务!),但我仍然无法将其添加到将显示的组中。我知道用户可以转到他们的联系人选项并选中他们帐户中的“显示所
我试图从 ContactsContract 获取电子邮件地址,但我只得到一个空字符串!姓名和电话号码可以正常使用,但电子邮件地址不行! 我很困惑,几天来一直在尝试解决这个问题,但我不知道出了什么问题,
我正在尝试在 ContactsContract 中创建一个用户配置文件...因为没有,我需要一个用于测试。我没有真实的 Android 设备,只有用于测试的 AVD 模拟器。 这是我正在使用的代码块:
我需要创建一个包含在设备上找到的所有电话号码的列表。所以我所做的是查询 ContactsContract.Data.CONTENT_URI,如下所示: Uri uri = Da
我是一名优秀的程序员,十分优秀!