【发布时间】:2012-01-29 13:00:58
【问题描述】:
我想向联系人添加自定义字段,它会告诉我该联系人是否在我的应用程序中被标记。 首先,我想创建一个函数,将我的自定义数据设置为与给定 ID 联系,但我尝试使用的代码无法正常工作。
public static final String MIMETYPE_EMPLOYEE = "vnd.android.cursor.item/employee";
public void addEmployee(String id){
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
Uri newContactUri = null;
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data._ID + "=?", new String[]{id})
.withValue(ContactsContract.Data.MIMETYPE, MIMETYPE_EMPLOYEE)
.withValue(ContactsContract.Data.DATA1, "yes")
.build());
try{
ContentProviderResult[] res = act.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
if (res!=null && res[0]!=null) {
newContactUri = res[0].uri;
Log.d(LOG_TAG, "URI added contact:"+ newContactUri); //here it says that it's null :(
}
else Log.e(LOG_TAG, "Contact not added.");
} catch (RemoteException e) {
// error
Log.e(LOG_TAG, "Error (1) adding contact.");
newContactUri = null;
} catch (OperationApplicationException e) {
// error
Log.e(LOG_TAG, "Error (2) adding contact.");
newContactUri = null;
}
Log.d(LOG_TAG, "Contact added to system contacts.");
if (newContactUri == null) {
Log.e(LOG_TAG, "Error creating contact");
}
}
我也尝试使用插入而不是更新,但是当我尝试检索“newContactUri = res[0].uri;”时,我的应用程序崩溃了 我已经搜索过类似的解决方案,但对我没有任何帮助:/
【问题讨论】:
-
请试试这个自定义联系人:例如:[[点击]][1] [1]:stackoverflow.com/questions/6853799/…