我遇到了android的联系人提供商的奇怪行为.. 这是我的代码:
Uri uri = ContactsContract.StatusUpdates.CONTENT_URI;
String[] columns = new String[]{ ContactsContract.StatusUpdates.STATUS };
String where = ContactsContract.StatusUpdates.PROTOCOL+"="+PROTOCOL_GOOGLE_TALK+
" AND "+ContactsContract.StatusUpdates.IM_HANDLE+"='";
Cursor cursor = c.getContentResolver().query(uri, columns, where+acc+'\'', null, null);
导致以下异常: android.database.sqlite.SQLiteException:没有这样的列:protocol :,编译时:SELECT status FROM view_data_restricted data LEFT OUTER JOIN status_updates ON(status_updates.status_update_data_id = data._id)WHERE(protocol = 5 AND im_handle ='xxx')
当我改变的时候String[] columns = new String[]{ ContactsContract.StatusUpdates.STATUS };
到
{ContactsContract.StatusUpdates.PRESENCE}
它有效。 :○
怎么可能呢?