Atualizar contato

Boa noite pessoal, preciso editar o contato com a banco de dados nativo, ou seja, tenho dois campos (nome e número). Para recuperar o ID, utilizo:

Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] projection = { PhoneLookup._ID };
Cursor cursor = null;

try {
    cursor = contactHelper.query(contactUri, projection, null, null,
            null);

    if (cursor.moveToFirst()) {
        int personID = cursor.getColumnIndex(PhoneLookup._ID);
        return cursor.getLong(personID);
    }

    return -1;

} catch (Exception e) {
    e.printStackTrace();

} finally {
    if (cursor != null) {
        cursor.close();
        cursor = null;
    }
}

return -1;

E para editar contato existente:

 ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String[] args = new String[] { String.valueOf(pegarIDdosContatos(contactHelper, numero)) };

ops.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
        .withSelection(RawContacts.CONTACT_ID + "=?", args).build());
try {
    contactHelper.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
    e.printStackTrace();
} catch (OperationApplicationException e) {
    e.printStackTrace();
}

Mas ocorre erro ao executar a activity.