Shuty
Shuty

Reputation: 87

Java android how to use contact picker

I programm an App to send SMS for an association and I need your help... I want to retrieve the mobile number from a contact by the contact picker. I can not retrieve the result of the user selection...

My code:

public class MainActivity extends Activity {
    private static final int CONTACT_PICKER_RESULT = 0;
    private Button contacts = null;
    private Button envoyer = null;
    private TextView mobile = null;
    private int PICK_CONTACT;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Elements of th activity
        contacts = (Button) findViewById(R.id.contacts);
        envoyer = (Button) findViewById(R.id.envoyer);
        mobile = (TextView) findViewById(R.id.mobile);



        contacts.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI);  
                startActivityForResult(contactPickerIntent, 1001); 
            }
        });

        envoyer.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {



            }
        });

    }


    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
      // How to retrieve the mobile and the name of the contact selected ?
    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }



    public void open_contacts(){


    }


}

Thanks you very much... !

Upvotes: 1

Views: 5581

Answers (1)

DcodeChef
DcodeChef

Reputation: 1550

Use permission:

<uses-permission android:name="android.permission.READ_CONTACTS" />

onClick call:

doLaunchContactPicker(new View(mContext));

public void doLaunchContactPicker(View view)
{
    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}

onActivityResult :

Uri result = data.getData();
String id = result.getLastPathSegment();

cursor = getContentResolver().query(Phone.CONTENT_URI, null,
    Phone.CONTACT_ID + " = ? AND " + Phone.TYPE + " = ? ",
    new String[] { id, String.valueOf(Phone.TYPE_WORK) }, null);

phoneIdx = cursor.getColumnIndex(Phone.NUMBER);
if (cursor.moveToFirst())
{
    phone = cursor.getString(phoneIdx);
}

You can use above cursor to retrieve any number stored against selected contact.

Upvotes: 3

Related Questions