2012-03-10 9 views
1

내 응용 프로그램은 연락처 목록에서 연락처를 선택한 다음 선택한 연락처에서 응용 프로그램에 저장하기 위해 이름과 휴대폰 번호 만 받아야합니다. 연락처에 휴대 전화 번호 (집이 아님)가 있는지 확인한 다음 번호를 알아 내시겠습니까?연락처에서 휴대 전화 번호를 얻는 방법

그리고 연락처에 하나 이상의 휴대폰 번호가 있는지 어떻게 확인할 수 있습니까? 안드로이드 연락처 이름과 전화 번호에

+0

당신이 얻을 연락처의 전화 번호를 입력하면 해당 유형을 확인할 수 있습니다. Phone.TYPE_xxx 상수를 살펴보십시오. 동시에 전화 번호의 유형은 기기 소유자가 설정하므로 많은 경우이 유형이 올바르지 않습니다. 예를 들어 휴대 전화에서 대부분의 연락처 전화 번호는 휴대 전화 번호이지만 'TYPE_CUSTOM'유형으로 저장되며 연락처 세부 정보에 '기본'으로 표시됩니다. 오, 그리고 그 번호를보고도 대답을주지 못할 것입니다. 최선의 방법은 신뢰할 수없는 전화 번호의 TYPE_xxx에 의존하는 것입니다. –

+0

대단히 감사합니다 ... – user1256894

답변

0

코드

cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER +" > 0", null, null); 
     cur.moveToFirst(); 
     while(cur.isAfterLast()==false){ 
     // Log.e("Name is:",cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); 
       Fid=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 

       int id=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 
       Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null, null, null); 

       pCur.moveToFirst(); 
       while (pCur.isAfterLast()==false) { 
        int idinner=Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID))); 
        if(idinner==id){ 

//Add id to Array 

       } 
       pCur.moveToNext(); 
      } 
      cur.moveToNext(); 
     } 

아래 걸릴 contact_id에 대해 서로 다른 컨텐트 프로에 있도록 저장하고이 ID보다 당신이 휴대 전화 번호 및 기타 정보를 얻을 수있다

public String getNo(String[] no){ 

    String seleContact=""; 
// String[] contactNos=new String[no.length]; 
    for(int i=0;i<no.length;i++){ 
     if(no[i].trim().toString().equalsIgnoreCase("")){ 
      break; 
     } 
     int id=Integer.parseInt(no[i]); 
     //Cursor cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts._ID +" = "+id, null, null); 
     //cur.moveToFirst(); 

     Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+id, null, null); 
     pCur.moveToFirst(); 

     while(pCur.isAfterLast()==false){ 
       if(Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)))==(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)){ 
    //    String uname=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).toString(); 
        String tempMoNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        Log.e("Activity result selelength is",String.valueOf(seleContact.length())); 
        String[] temp=tempMoNo.split("-"); 
        String MoNo=""; 
        int le=temp.length; 
        for(int j=0;j<le;j++){ 
         MoNo +=temp[j]; 
        } 

        if (seleContact.length() > 0) { 
          seleContact += "," + (MoNo); 
         } else { 
          seleContact += (MoNo); 
          }    
       } 
      pCur.moveToNext(); 
      } 
     pCur.close(); 
    } 

    return seleContact; 
} 
+0

그것의 실제로 도움이되는, thaaank u :) – user1256894

관련 문제