android102 查詢,插入連絡人

來源:互聯網
上載者:User

標籤:

package com.itheima.getcontacts;import com.itheima.getcontacts.domain.Contact;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {    /*    #連絡人資料庫    * raw\_contacts表:        * contact_id:連絡人id    * data表:連絡人的具體資訊,一個資訊佔一行        * data1:資訊的具體內容        * raw\_contact_id:連絡人id,描述資訊屬於哪個連絡人        * mimetype_id:描述資訊是屬於什麼類型    * mimetypes表:通過mimetype_id到該表查看具體類型        */        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //查詢連絡人    public void click(View v){        //通過內容提供者訪問連絡人資料庫        ContentResolver cr = getContentResolver();        //先查詢raw\_contacts表拿到連絡人id,com.android.contacts是連絡人的內容提供者主機名稱,new String[]{"contact_id"}是查詢的欄位id,        Cursor cursorContactId = cr.query(Uri.parse("content://com.android.contacts/raw_contacts"), new String[]{"contact_id"}, null, null, null);        while(cursorContactId.moveToNext()){            //擷取連絡人id            String contactId = cursorContactId.getString(0);            //* 然後拿著連絡人id去data表查詢屬於該連絡人的資訊,new String[]{"data1", "mimetype"}是查詢的欄位,new String[]{contactId}是查詢條件            Cursor cursorData =  cr.query(Uri.parse("content://com.android.contacts/data"), new String[]{"data1", "mimetype"},                     "raw_contact_id = ?", new String[]{contactId}, null);            //擷取所有欄位的名字            String[] names = cursorData.getColumnNames();            for (String string : names) {                System.out.println(string);            }            Contact con = new Contact();//Contact自訂的連絡人javabean            //* 得到data1欄位的值,就是連絡人的資訊,通過mimetype判斷是什麼類型的資訊            while(cursorData.moveToNext()){                String data1 = cursorData.getString(0);                String mimetype = cursorData.getString(1);                //通過mimetype的判斷,把data1存入對應的屬性                if("vnd.android.cursor.item/email_v2".equals(mimetype)){                    con.setEmail(data1);                }                else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){                    con.setPhone(data1);                }                else if("vnd.android.cursor.item/name".equals(mimetype)){                    con.setName(data1);                }            }            System.out.println(con.toString());        }    }    }//<uses-permission android:name="android.permission.READ_CONTACTS"/>
package com.itheima.insertcontact;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.ContentResolver;import android.content.ContentValues;import android.database.Cursor;import android.view.Menu;import android.view.View;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //插入連絡人    public void click(View v){        ContentResolver cr = getContentResolver();        //先查詢raw_contacts表,擷取最新連絡人的主鍵,然後主鍵+1,就是要插入的連絡人的id        Cursor cursorContactId = cr.query(Uri.parse("content://com.android.contacts/raw_contacts"), new String[]{"_id"}, null, null, null);        //預設連絡人id就是1        int contact_id = 1;        if(cursorContactId.moveToLast()){            //拿到主鍵            int _id = cursorContactId.getInt(0);            //主鍵+1,就是要插入的連絡人id            contact_id = ++_id;        }                ContentValues values = new ContentValues();        values.put("contact_id", contact_id);        //把連絡人id插入raw_contacts資料庫        cr.insert(Uri.parse("content://com.android.contacts/raw_contacts"), values);                values.clear();        values.put("data1", "二bi");        values.put("mimetype", "vnd.android.cursor.item/name");        values.put("raw_contact_id", contact_id);        cr.insert(Uri.parse("content://com.android.contacts/data"), values);                values.clear();        values.put("data1", "1344567");        values.put("mimetype", "vnd.android.cursor.item/phone_v2");        values.put("raw_contact_id", contact_id);        cr.insert(Uri.parse("content://com.android.contacts/data"), values);    }    }//<uses-permission android:name="android.permission.WRITE_CONTACTS"/>//<uses-permission android:name="android.permission.READ_CONTACTS"/>

 

android102 查詢,插入連絡人

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.