Cre*_*ale 1 android contactscontract rawcontacts
我成功地将联系人插入到地址簿中,我需要在我的应用程序中保存联系人的参考.我认为保存引用的最佳方法是获取RawContacts ID本身.
有没有办法让我在插入新联系人后立即从地址簿中取回ID?或者我是否必须获取所有记录并将其与我的数据进行比较以获取RawContacts ID?
我使用此代码执行插入操作:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED)
.build());
Run Code Online (Sandbox Code Playgroud)
我感谢任何输入,无论是变通方法还是API.谢谢!
小智 8
你可以使用从getContentResolver()返回的信息(你无论如何都要调用它来向DB添加操作.getContentResolver()需要有一个try,catch环境.
...
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
...
Uri myContactUri = res[0].uri;
int lastSlash = myContactUri.toString().lastIndexOf("/");
int length = myContactUri.toString().length();
int contactID = Integer.parseInt((String) myContactUri.toString().subSequence(lastSlash+1, length));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1772 次 |
| 最近记录: |