Search This Blog

Thursday, 23 June 2011

Add Contact from Contact Picker

1). Add permission in to the Menifest.xml
              <uses-permission android:name="android.permission.READ_CONTACTS"/>

2). Pass Intent in on click method

    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
   startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);

3). Add method onActivityResult()

   @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (resultCode == RESULT_OK) {
       switch (requestCode) {
       case CONTACT_PICKER_RESULT:
//            final EditText phoneInput = (EditText) findViewById(R.id.phoneNumberInput);
           Cursor cursor = null;
           String phoneNumber = "";
           List<String> allNumbers = new ArrayList<String>();
           int phoneIdx = 0;
           try {
               Uri result = data.getData();
               String id = result.getLastPathSegment();
               cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
               phoneIdx = cursor.getColumnIndex(Phone.DATA);
               if (cursor.moveToFirst()) {
                   while (cursor.isAfterLast() == false) {
                       phoneNumber = cursor.getString(phoneIdx);
                       allNumbers.add(phoneNumber);
                       cursor.moveToNext();
                   }
               } else {
                   //no results actions
               }
           } catch (Exception e) {
              //error actions
           } finally {
               if (cursor != null) {
                   cursor.close();
               }

               final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]);
               AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity_SMS.this);
               builder.setTitle("Choose a number");
               builder.setItems(items, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int item) {
                       String selectedNumber = items[item].toString();
                       selectedNumber = selectedNumber.replace("-", "");
                       phoneInput.setText(selectedNumber);
                      
                   }
               });
               AlertDialog alert = builder.create();
               if(allNumbers.size() > 1) {
                   alert.show();
               } else {
                   String selectedNumber = phoneNumber.toString();
                   selectedNumber = selectedNumber.replace("-", "");
                   phoneInput.setText(selectedNumber);
                 
                 
               }

               if (phoneNumber.length() == 0) {
                   //no numbers found actions
               }
           }
           break;
       }
   } else {
      //activity result error actions
   }
}

No comments:

Post a Comment