<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editProvider(); ContentResolver cr = getContentResolver(); Cursor c = cr.query(ContactsContract.Contacts.CONTENT_URI, new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }, null, null, null); if (c != null) { while (c.moveToNext()) { int id = c.getInt(c.getColumnIndex("_id")); Log.i("info", "_id:" + id); Log.i("info", "name:" + c.getString(c.getColumnIndex("display_name"))); Cursor c1 = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE }, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + id, null, null); // 根据联系人ID查询出联系人的电话号码 if (c1 != null) { while (c1.moveToNext()) { int type = c1.getInt(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); if (type == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) { Log.i("info", "家庭电话:" + c1.getString(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) { Log.i("info", "手机:" + c1.getString(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); } } c1.close(); } // 根据联系人的ID去查询出联系人的邮箱地址 Cursor c2 = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[] { ContactsContract.CommonDataKinds.Email.DATA, ContactsContract.CommonDataKinds.Email.TYPE }, ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + id, null, null); if (c2 != null) { while (c2.moveToNext()) { int type = c2.getInt(c2.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); if (type == ContactsContract.CommonDataKinds.Email.TYPE_WORK) { Log.i("info", "工作邮箱:" + c2.getString(c2.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA))); } } c2.close(); } } c.close(); } } public void editProvider(){ ContentResolver contentResolver = getContentResolver(); //向联系人中插入数据 ContentValues values = new ContentValues(); Uri uri = contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI, values); Long raw_contact_id = ContentUris.parseId(uri); values.clear(); //插入人名 values.put(ContactsContract.CommonDataKinds.StructuredName.RAW_CONTACT_ID, raw_contact_id); values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "添加人"); values.put(ContactsContract.CommonDataKinds.StructuredName.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE); uri = contentResolver.insert(ContactsContract.Data.CONTENT_URI, values); //插入电话信息 values.clear(); values.put(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID,raw_contact_id); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER,"110"); values.put(ContactsContract.CommonDataKinds.Phone.MIMETYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE); uri = contentResolver.insert(ContactsContract.Data.CONTENT_URI, values); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }