2010-03-05 1 views
1

У меня есть этот код для обновления:Update не работает при использовании ContentResolver для обновления контактных групп

public Boolean update() { 
    try { 
    data.put(ContactsContract.Groups.SHOULD_SYNC, true); 

    ContentResolver cr = ctx.getContentResolver(); 
    Uri uri = ContentUris.withAppendedId(ContactsContract.Groups.CONTENT_URI, Long.parseLong(getId())); 
    int mid = cr.update(uri, data,_ID+"="+getId(), null); 

    // notify registered observers that a row was updated 
    ctx.getContentResolver().notifyChange(
    ContactsContract.Groups.CONTENT_URI, null); 

    if (-1 == mid) 
    return false; 

    return true; 
    } catch (Exception e) { 
    Log.v(TAG(), e.getMessage(), e); 
    return false; 
    } 
} 

У меня есть значения в data, я проверил, и по какой-то причине значения являются гайки выталкивается. Я также провел cur.requery(); и я с

<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission> 

EDIT 1 Одна вещь, чтобы отметить, что мне нужно использовать:

data.put(ContactsContract.Groups.SHOULD_SYNC, 1); 

как true значение там не принято, хотя это возвращается при проверке ContentValues.

ответ

1

Хорошо, я понял его вниз тоже:

SQLiteException: no such column: res_package: , while compiling: UPDATE groups SET sync4=?, sync3=?, sync2=?, group_visible=?, system_id=?, sync1=?, should_sync=?, deleted=?, account_name=?, version=?, title=?, title_res=?, _id=?, res_package=?, sourceid=?, dirty=?, notes=?, account_type=? WHERE _id=20

Странная вещь, что этот столбец возвращается, когда вы запрашиваете контент-провайдера. Я сделал запросы для использования всех возвращенных столбцов, поэтому мне нужно как-то сделать эту работу.

+0

Вы можете перефразировать свой ответ, чтобы он был полезен людям, посетившим этот сайт, пожалуйста? – ataulm

1

Я только что сделал что-то подобное. Вместо

int mid = cr.update(uri, data,_ID+"="+getId(), null); 

использования

int mid = cr.update(uri, data,null, null)

ваши URI уже имеет встроенный идентификационную информацию.

Смежные вопросы