12

嗨,我正在尝试将电话号码添加到 android 2.1 上的现有联系人。我目前使用:

ContentValues values = new ContentValues();
values.put(Phone.RAW_CONTACT_ID,cursor.getColumnIndex(Phone.CONTACT_ID));
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null, selection, null,ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC");
if (cursor.getCount() > 0) {
    cursor.moveToPosition(oldcontactid);
    contactid = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    values.put(Phone.RAW_CONTACT_ID,cursor.getColumnIndex(Phone.CONTACT_ID));
    if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",new String[]{contactid}, null);
        while (pCur.moveToNext()) {
            values.put(Phone.NUMBER,pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
            values.put(Phone.TYPE, Phone.TYPE_MOBILE);
        }
        pCur.close();
    }
}
Uri uri = getContentResolver().insert(Phone.CONTENT_URI, values);

但我得到一个错误:

java.lang.UnsupportedOperationException: Unknown uri: content://com.android.contacts/data/phones

我将如何解决这个问题?

感谢您的帮助,ng93

4

4 回答 4

3

插入Data.CONTENT_URI而不是Phone.CONTENT_URI也插入Data.MIMETYPE带有 的列Phone.CONTENT_ITEM_TYPE

于 2010-10-02T04:47:00.773 回答
1

您可能还想检查已安装的应用程序与程序内存。我的 Droid Eris 在联系人和几乎所有联系人感知应用程序中都能正常工作。

直到我超过了某个内存负载点。VZW支持1级对我没有好处,我必须坚持2级支持。终于得到知道他菠菜的人的回答。他告诉我,我的手机上有太多应用程序,这是一个已知问题。
仍然没有减少我的工作集以使联系人编辑工作:-(

/s/ BezantSoft

于 2010-09-16T09:06:26.707 回答
1

您是否在 AndroidManifest.xml 中设置了正确的权限?据我所知,对个人信息(联系人)的访问默认受到限制。

有关 android 中权限系统的更多信息,请参见此处

于 2010-07-06T16:57:32.340 回答