Picking the preferred Phonenumer of a System Contact

Basic Tutorials concerning: GUI, Views, Activites, XML, Layouts, Intents, ...

Picking the preferred Phonenumer of a System Contact

Postby plusminus » Thu Sep 04, 2008 3:55 am

Picking the preferred Phonenumer of a System Contact


The following Activity is an example of how to get the preferred phonenumber of a system-contact. It utilizes an Intent with the systems PICK_ACTION ( [font=Century Gothic]android.content.Intent.ACTION_PICK[/font] ).
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package org.anddev.smstretcher.ui;
  2.  
  3. import org.anddev.smstretcher.R;
  4.  
  5. import android.app.Activity;
  6. import android.content.Intent;
  7. import android.database.Cursor;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.provider.Contacts.People;
  11. import android.telephony.PhoneNumberFormattingTextWatcher;
  12. import android.view.View;
  13. import android.view.View.OnClickListener;
  14. import android.widget.EditText;
  15. import android.widget.ImageButton;
  16.  
  17.  
  18. public class Compose extends Activity {
  19.         // ===========================================================
  20.         // Constants
  21.         // ===========================================================
  22.        
  23.         public static final int REQUESTCODE_PICKCONTACT = 0;
  24.  
  25.         // ===========================================================
  26.         // Fields
  27.         // ===========================================================
  28.        
  29.         protected EditText mEtContactNumber;
  30.  
  31.         // ===========================================================
  32.         // Constructors
  33.         // ===========================================================
  34.        
  35.         /** Called when the activity is first created. */
  36.         @Override
  37.         public void onCreate(Bundle icicle) {
  38.                 super.onCreate(icicle);
  39.                 setContentView(R.layout.compose);
  40.                
  41.                 initViews();
  42.         }
  43.  
  44.         private void initViews() {
  45.                 this.mEtContactNumber = (EditText)findViewById(R.id.et_compose_targetnumber);
  46.                
  47.                 final ImageButton ibtnPickContact = (ImageButton)this.findViewById(R.id.ibtn_compose_pickcontact);
  48.                 ibtnPickContact.setOnClickListener(new OnClickListener(){
  49.                         @Override
  50.                         public void onClick(View v) {
  51.                                 Intent i = new Intent(android.content.Intent.ACTION_PICK, Uri.parse("content://contacts/people"));
  52.                                 startActivityForResult(i, REQUESTCODE_PICKCONTACT);
  53.                         }
  54.                 });
  55.         }
  56.  
  57.         // ===========================================================
  58.         // Getter & Setter
  59.         // ===========================================================
  60.  
  61.         // ===========================================================
  62.         // Methods from SuperClass/Interfaces
  63.         // ===========================================================
  64.        
  65.         @Override
  66.         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  67.                 switch(requestCode){
  68.                         case REQUESTCODE_PICKCONTACT:
  69.                                 if(data != null){
  70.                                         final Uri personUri = data.getData();
  71.                                         if(personUri != null){
  72.                                                 final Cursor c = getContentResolver().query(personUri, null, null, null, null);
  73.                                                 startManagingCursor(c);
  74.                                                 if(c != null && c.moveToFirst()){
  75.                                                         final long prefferedPhoneID = c.getLong(c.getColumnIndexOrThrow(People.PRIMARY_PHONE_ID));
  76.  
  77.                                                         final Uri phoneUri = Uri.withAppendedPath(People.CONTENT_URI, "" + prefferedPhoneID).buildUpon().appendPath(People.Phones.CONTENT_DIRECTORY).build();
  78.                                                         final Cursor d = getContentResolver().query(phoneUri, null, null, null, null);
  79.                                                         startManagingCursor(c);
  80.                                                         if(d != null && d.moveToFirst()){
  81.                                                                 final String num = d.getString(d.getColumnIndexOrThrow(People.Phones.NUMBER));
  82.                                                                 this.mEtContactNumber.setText(num);
  83.                                                         }
  84.                                                 }
  85.                                         }
  86.                                 }
  87.                                 break;
  88.                 }
  89.         }
  90. }
Parsed in 0.041 seconds, using GeSHi 1.0.8.4

Thats it :)


Regards,
plusminus
Image
Image | Android Development Community / Tutorials
User avatar
plusminus
Site Admin
Site Admin
 
Posts: 2688
Joined: Wed Nov 14, 2007 8:37 pm
Location: Schriesheim, Germany

Top

Re: Picking the preferred Phonenumer of a System Contact

Postby darko1002001 » Tue Jul 13, 2010 12:35 am

yes this is a great example tnx a lot. but one question if i may. is there a way to return all the numbers in a list and not just the preffered one? any examples?
darko1002001
Junior Developer
Junior Developer
 
Posts: 20
Joined: Sat Jun 26, 2010 12:52 am

Top

Return to Novice Tutorials

Who is online

Users browsing this forum: No registered users and 2 guests