Android選擇聯絡人
阿新 • • 發佈:2019-02-17
其實android裡沒有難的技術,看它的文件就可了。下面算是直接從它的文件裡抄的例子,稍微加點東西。
發出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); EditText textNumber = (EditText)findViewById(R.id.text_number); textNumber.setText("\"" + displayName + "\"" + phoneNumber); } } }