java android错误将异常写入包裹

标签 java android

请帮助我想更新电话号码,但出现错误

06-25 17:43:57.559:错误/DatabaseUtils(97):向包裹写入异常 06-25 17:43:57.559:错误/DatabaseUtils(97):java.lang.UnsupportedOperationException:未知uri:content://com.android.contacts/contacts/1/phones


import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.provider.ContactsContract;

@SuppressWarnings("deprecation")
public class ChangeContacts extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
            String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));
        String name = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        System.out.println(name);

        if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {





            Cursor pCur = cr.query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                    null, 
                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                    new String[]{id}, null);
            Uri PersonUri=null;
            Uri PhoneUri = null;
            ContentValues values = new ContentValues();
                    while (pCur.moveToNext()) {
                        String phhoneNumber=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        String contactId=pCur.getString(pCur.getColumnIndex(ContactsContract.Contacts._ID));
                        System.out.println(contactId);



 PersonUri=ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,Long.valueOf(contactId));
PhoneUri = Uri.withAppendedPath(PersonUri, People.Phones.CONTENT_DIRECTORY);


values.clear();

values.put(People.Phones.TYPE,People.Phones.TYPE_MOBILE);
values.put(People.Phones.NUMBER,"123456789");


 int upv=getContentResolver().update(PhoneUri,values, null, null); 
                        System.out.println(upv);
                    System.out.println(phhoneNumber);
                    } 
                    pCur.close();





            }
            }
    }




    }


}

最佳答案

问题解决了我写了这个函数来更新联系人手机号码

phoneId - 电话Id(我们要更改此值)


private void updateRecord(int phoneId,String number) {
    Uri uri = ContentUris.withAppendedId(Phones.CONTENT_URI, phoneId);
        values = new ContentValues();
        values.put(People.Phones.TYPE,People.Phones.TYPE_MOBILE);
        values.put(People.Phones.NUMBER, number);
        getContentResolver().update(uri, values, null, null);
    }

关于java android错误将异常写入包裹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477962/

相关文章:

Android ListView 背景颜色总是显示灰色

java - Java 中的二叉树静态方法

java - 如何配置向导页面?

android 从图库中选择图像(现在 startActivityForResult 已贬值)

android - 需要APK版本的帮助

android - 找不到参数multiDexEnabled()的方法[true]

android - 如何将 MoPub 集成到 Android Studio 的共享库中

java - Eclipse 不显示来自外部 JAR 文件的类

java - I/O 异常 : Received fatal alert: protocol_version - Coldfusion + Authorize. 网络

java - 将 ArrayFixture 与包含嵌套非原始对象的对象列表一起使用