发出action请求Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers startActivityForResult(pickContactIntent, 11);接收回复 protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 11 && resultCode == RESULT_OK) { Uri contactUri = data.getData(); // We only need the NUMBER column, because there will be only one row in the result
String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER }; //String[] projection = {Phone.NUMBER}; // Perform the query on the contact to get the NUMBER column // We don"t need a selection or sort order (there"s only one result for the given URI) // CAUTION: The query() method should be called from a separate thread to avoid blocking // your app"s UI thread. (For simplicity of the sample, this code doesn"t do that.) // Consider using CursorLoader to perform the query. Cursor cursor = getContentResolver() .query(contactUri, projection, null, null, null); cursor.moveToFirst(); // Retrieve the phone number from the NUMBER column int indexPhoneNumber = cursor.getColumnIndex(Phone.NUMBER); int indexDisplayName = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME); String phoneNumber = cursor.getString(indexPhoneNumber); String displayName = cursor.getString(indexDisplayName); if(phoneNumber != null && displayName != null) { if(phoneNumber.startsWith("+86")) phoneNumber = phoneNumber.substring(3);