如何更新电子邮件,地址,昵称等在Android中接触的? [英] How to update E-mail, Address, Nickname, etc of a contact in Android?

查看:108
本文介绍了如何更新电子邮件,地址,昵称等在Android中接触的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道该怎么做?甚至连一些教程会有所帮助。

我使用的设备与Android 2.1。

解决方案

 我发现我自己..谢谢大家...


公共无效updateContact(字符串名称,字符串电话,ContentResolver的CR,活动一)
    {

    的String [] ARR = {DISPLAY_NAME,MIMETYPE,类型};

    字符串,其中= ContactsContract.Data.DISPLAY_NAME +=?AND+
                ContactsContract.Data.MIMETYPE +=?和+
                将String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE)+=?;
    的String [] PARAMS =新的String [] {名,
            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
            将String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_HOME)};

   光标phoneCur = a.managedQuery(ContactsContract.Data.CONTENT_URI,NULL,NULL,NULL,NULL);
   的for(int i = 0; I< phoneCur.getColumnCount() -  1;我++)
   {
       如果(phoneCur.moveToNext())
       {
           字符串s = phoneCur.getString(phoneCur.getColumnIndex(Data.DISPLAY_NAME));
           字符串S1 = phoneCur.getString(phoneCur.getColumnIndex(Data.MIMETYPE));
           字符串s2 = phoneCur.getString(phoneCur.getColumnIndex(Phone.TYPE));
           如果(S!= NULL)
           {
               Log.e(@@@@@@@@@@@@ #############,多个);
           }
           如果(S1!= NULL)
           {
               Log.e(111111111111 #############,S1);
           }
           如果(S2!= NULL)
           {
               Log.e(2222222222222 #############,S2);
           }
       }
   }

    ArrayList的< ContentProviderOperation> OPS =新的ArrayList< ContentProviderOperation>();


        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(其中,PARAMS)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,5657)
               // .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,样品名称21)
                。建立());
        字符串where1 = ContactsContract.Data.DISPLAY_NAME +=?AND+
        ContactsContract.Data.MIMETYPE +=;
        的String [] params1 =新的String [] {名,vnd.android.cursor.item /名称};
        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(where1,params1)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,样品名称)
                。建立());


        的String [] params2 =新的String [] {名,vnd.android.cursor.item / email_v2};
        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(where1,params2)
                .withValue(ContactsContract.CommonDataKinds.Email.DATA,您好)
                。建立());
   // phoneCur.close();

    尝试 {
        cr.applyBatch(ContactsContract.AUTHORITY,OPS);
    }赶上(RemoteException的E){
        // TODO自动生成的catch块
        e.printStackTrace();
    }赶上(OperationApplicationException E){
        // TODO自动生成的catch块
        e.printStackTrace();
    }



}
 

Does anyone know how to do that? Even links to some tutorials would help.

I'm using a device with Android 2.1.

解决方案

i found it myself.. thanks everyone...  


public void updateContact(String name, String phone,ContentResolver cr,Activity a) 
    {

    String[] arr = {"DISPLAY_NAME","MIMETYPE","TYPE"};

    String where = ContactsContract.Data.DISPLAY_NAME + " = ? AND " + 
                ContactsContract.Data.MIMETYPE + " = ? AND " +
                String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? ";
    String[] params = new String[] {name,
            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
            String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_HOME)};

   Cursor phoneCur = a.managedQuery(ContactsContract.Data.CONTENT_URI, null, null, null, null);
   for(int i = 0; i<phoneCur.getColumnCount()-1;i++)
   {
       if(phoneCur.moveToNext())
       {
           String s = phoneCur.getString(phoneCur.getColumnIndex(Data.DISPLAY_NAME));
           String s1 = phoneCur.getString(phoneCur.getColumnIndex(Data.MIMETYPE));
           String s2 = phoneCur.getString(phoneCur.getColumnIndex(Phone.TYPE));
           if(s!=null)
           {
               Log.e("@@@@@@@@@@@@#############",s);
           }
           if(s1!=null)
           {
               Log.e("111111111111#############",s1);
           }
           if(s2!=null)
           {
               Log.e("2222222222222#############",s2);
           }
       }
   }

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();


        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(where, params)
                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "5657")
               // .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "Sample Name 21")
                .build());
        String where1 = ContactsContract.Data.DISPLAY_NAME + " = ? AND " + 
        ContactsContract.Data.MIMETYPE + " = ?";
        String[] params1 = new String[] {name,"vnd.android.cursor.item/name"};
        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(where1, params1)
                .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "Sample Name")
                .build());


        String[] params2 = new String[] {name,"vnd.android.cursor.item/email_v2"};
        ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                .withSelection(where1, params2)
                .withValue(ContactsContract.CommonDataKinds.Email.DATA, "Hi There")
                .build());
   // phoneCur.close();

    try {
        cr.applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (RemoteException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (OperationApplicationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



}

这篇关于如何更新电子邮件,地址,昵称等在Android中接触的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆