title: Open Whatsapp contacts list from android app
body: <p>I am new to android and trying to do following task:-
  I want to open Whatsapp contact list and get selected contact data. I am able to achieve half of the work. Whatsapp contact list opens , but once i press on any contact my app crashes. Here is my code:</p>
  
  <p>To open Whatsapp contact list:</p>
  
  <pre><code>btnChoose.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Intent intent = new Intent(Intent.ACTION_PICK);
              intent.setPackage("com.whatsapp");
              try{
                  Toast.makeText(AddScheduleActivity.this, "going out activity", Toast.LENGTH_SHORT).show();
                  startActivityForResult(intent, 1);
                  Toast.makeText(AddScheduleActivity.this, "getting In activity", Toast.LENGTH_SHORT).show();
              } catch (Exception e) {
                  Toast.makeText(AddScheduleActivity.this, "Whatsapp not found", Toast.LENGTH_SHORT).show();  //no activity found to handle this intent means whatsapp is not installed
              }
          }
      });
  </code></pre>
  
  <p>To get selection:-</p>
  
  <pre><code>@Override
  public void onActivityResult(int requestCode, int resultCode, Intent intent) {
      super.onActivityResult(requestCode, resultCode, intent);
      Toast.makeText(AddScheduleActivity.this, "Ok In", Toast.LENGTH_SHORT).show();
  
      switch (requestCode) {
          case 1:
              if(resultCode == RESULT_OK){
                  if(intent.hasExtra("contact")){
  
                      Toast.makeText(AddScheduleActivity.this, "Ok working", Toast.LENGTH_SHORT).show();
                      Uri uri = intent.getData();
                      //Query the content uri
                      Cursor cursor = getContentResolver().query(uri, null, null, null, null);
                      cursor.moveToFirst();
                      // column index of the phone number
                      int  phoneIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                      // column index of the contact name
                      int  nameIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
                      contactNumber = cursor.getString(phoneIndex);
                      name = cursor.getString(nameIndex);
  
                  }
              }
              break;
  
          default:
              break;
      }
  }
  </code></pre>
  
  <p>If i don't select any contact and press back , their is no crash in that case</p>
  
  <p>Thanks in advance.</p>