1. 程式人生 > >Android選擇聯絡人

Android選擇聯絡人

其實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);        
            }            
  }
 }