[android] 保存聯系人到系統通訊錄


對應着讀聯系人,把數據寫進去,市場上的社交類應用經常會有這樣的功能

  1. raw_contacts表中添加一個id
  2. data表里面添加對應的數據

獲取ContentResolver對象,通過getContentResolver()方法

調用ContentResolver對象的query()方法,查詢raw_contacts表,得到Cursor對象

調用Cursor對象的moveToLast()方法,游標移動到最后一行

獲取到最后一行記錄的contact_id,新的id就是它加上1

調用ContentResolver對象的insert(uri,values)方法,參數:valuesContentValues對象把新的id put()進去

 

獲取到ContentResolver對象后調用insert(uri,values)方法,參數:Uri應該是data表的Uri規則,ContentValues對象的,put(key,value)”raw_contact_id”=>上面的id”mimetype”=>”vnd.android.cursor.item/phone_v2”,”data1”=>”電話號碼”

 

然后添加姓名,和上面一樣只不過在ContentValues對象里面,

Put “mimietype”=>”vnd.android.cursor.item/name”鍵值對

 

    public void writeContacts(View v){
        ContentResolver resolver=getContentResolver();
        Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
        Uri dataUri=Uri.parse("content://com.android.contacts/data");
        //查出最后一個id
        Cursor cursor=resolver.query(uri, new String[]{"_id"}, null, null, null);
        cursor.moveToLast();
        int lastId=cursor.getInt(0);
        int newId=lastId+1;
        //插入一個聯系人id
        ContentValues values=new ContentValues();
        values.put("contact_id", newId);
        resolver.insert(uri, values);
        //插入電話數據
        ContentValues dataValues=new ContentValues();
        dataValues.put("raw_contact_id", newId);
        dataValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
        dataValues.put("data1", "110");
        resolver.insert(dataUri, dataValues);
        //插入姓名數據
        ContentValues data1Values=new ContentValues();
        data1Values.put("raw_contact_id", newId);
        data1Values.put("mimetype", "vnd.android.cursor.item/name");
        data1Values.put("data1", "police1");
        resolver.insert(dataUri, data1Values);
        
        Toast.makeText(this, "寫聯系人成功", 0).show();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM