2016-11-25 2 views
3

나는 android에 익숙하며 다음 작업을 시도하고 있습니다. - Whatsapp 연락처 목록을 열고 선택한 연락처 데이터를 가져오고 싶습니다. 나는 일의 반을 성취 할 수있다. Whatsapp 연락처 목록이 열리지 만 연락처를 누르면 앱이 다운됩니다. 어떤 사고가없는, 내가 접촉하고 다시 눌러을 선택하지 않으면Whatsapp 연락처를 android app에서 열어

@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; 
    } 
} 

- :

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

이 선택을 얻으려면 :

이 WHATSAPP의 연락처 목록을 열려면 : 여기 내 코드입니다 그 경우

미리 감사드립니다.

+0

는 질문 –

+0

http://stackoverflow.com/questions/24276573/how-to-get-contacts-which-are-used-in에서 로그 캣을 포함 -whatsapp-or-other-application-in-android 이미 비슷한 질문이 있습니다.이 방법이 효과가 있는지 확인하십시오. – eshb

+0

@baymaxx 고마워요.하지만 이미 도움이 된 것 같습니다. – Priyanka

답변

0

마지막으로 직접 문제를 해결했습니다. 여기에 편집 코드 : 응용 프로그램이 충돌하는 경우

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 

    switch (requestCode) { 
     case 1: 
      if(resultCode == RESULT_OK){ 

       if(intent.hasExtra("contact")){ 
        String number = intent.getStringExtra("contact"); 

        Toast.makeText(AddScheduleActivity.this, number, Toast.LENGTH_LONG).show(); 

       } 
      } 
      break; 

     default: 
      break; 
    } 
} 
0

intent.getdata()은 항상 null을 반환합니다.

연락처 번호를 얻으려면 intent.getExtras().getString("contact");을 사용하십시오.

+0

@AshwaniGarg 답변을 주셔서 감사합니다. 그러나이 솔루션은 "Ok In"토스트를 볼 수조차 못하기 때문에 제게 도움이되지 않습니다. – Priyanka

관련 문제