在布局布局文件中只要定义两个按钮,分别是读取联系人的和添加联系人的
在MainActivity中:
public class MainActivity extends Activity {
ContentResolver mContent;//因为要读取手机的数据库,所以要用到接受者
private Uri dataUri = Uri.parse("content://com.android.contacts/data");
private Uri contactUri = Uri
.parse("content://com.android.contacts/raw_contacts");
//这两个URI分别在Android源码中获取,读取信息和该信息的id编号
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContent = getContentResolver();
}
public void readContacts(View v) {
Cursor contactcursor = mContent.query(contactUri,
new String[] { "contact_id" }, null, null, null);//获取id编号,因为id编号和数据是分开的
while (contactcursor.moveToNext()) {
int contact_id = contactcursor.getInt(0);
//mimetype是数据类型,如电话,姓名等,不同的数据类型对应不同的INT值
Cursor datacursor = mContent.query(dataUri, new String[] {
"mimetype", "data1" }, "raw_contact_id=?",
new String[] { contact_id + "" }, null);//读取数据
while (datacursor.moveToNext()) {
System.out.println(datacursor.getString(0) + "---"
+ datacursor.getString(1));
}
}
}
public void writeContacts(View v) {
Cursor contactcursor = mContent.query(contactUri,
new String[] { "contact_id" }, null, null, null);
if(contactcursor != null)
{
contactcursor.moveToLast();
}
int contact_id=contactcursor.getInt(0);
ContentValues values = new ContentValues();
values.put("contact_id", contact_id+1);
mContent.insert(contactUri, values);
ContentValues cv = new ContentValues();
cv.put("mimetype", "vnd.android.cursor.item/phone_v2");
cv.put("data1", "134567890");
cv.put("raw_contact_id",contact_id+1);
mContent.insert(dataUri, cv);
ContentValues cv2=new ContentValues();
cv2.put("mimetype", "vnd.android.cursor.item/name");
cv2.put("raw_contact_id", contact_id+1);
cv2.put("data1", "Tom");
mContent.insert(dataUri, cv2);
contactcursor.close();
Toast.makeText(this, "添加成功", 0).show();
}
}