2012-11-20 2 views
2

맞춤 전화 번호 유형을 검색어하는 방법을 찾는 데 어려움이 있습니다. 연락처에 들어가는 것처럼 연락처 편집 및 전화 번호 중 하나를 사용자 정의 레이블로 변경하십시오. 사용자 정의 유형 레이블에 입력 된 이름을 가져 오는 방법이 있습니까?
나는android에서 맞춤 연락처 유형 라벨 이름 받기

"android.content.res.Resources.getSystem() .getStringArray ( android.R.array.phoneTypes)"

을 시도했지만 단지 응용 프로그램을 충돌 보인다 나는 안드로이드의 구버전을 생각한다.
가 그리고 나는 또한

을 시도

curser.getString (curser.getColumnIndex (ContactsContract.CommonDataKinds.Phone .LABEL) ".

사람이 아이디어가있는 경우는 크게 감상 할 수

, 또는 어쩌면 내가 하나를 찾을 수없는 경우 복제본을 가리킨다.

답변

3

지금은 쿼리가 정확한지 확인한 후에도 똑같은 작업을 수행하고 있습니다. ContactsContract.CommonDataKinds.Phone.CONTENT_URI를 쿼리하고 있습니다.) (프로젝션이 올바른지 확인하십시오. .) 당신은 아래와 같이 뭔가를 할 수 있습니다. 당신이 직면하고있는 어려움이 미리 설정된 레이블 대 사용자 정의 레이블을 선택하고있는 것 같습니다. 미리 설정된 레이블은 TYPE 열에 정수로 표시되는 반면 TYPE == TYPE_CUSTOM 인 경우 LABEL 필드에는 찾고있는 데이터가 있습니다.

TYPE의 숫자에서 문자열로 이동하는 방법이 제공됩니다. 내가 처리 한 것 같아도 현지화에 대해서는 잘 모르겠다. 이 전화 번호에 사용되는 라벨로 채워진 문자열의 ArrayList를하게 될 겁니다이 조각의 끝에

Cursor curse = mContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.LABEL}, 
         ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?", new String[]{numnum}, null); 
       int colIndex = curse.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE); 
       int lblIndex = curse.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL); 
       ArrayList<String> numbers = new ArrayList<String>(); 
       String cur = ""; 
       while(curse.moveToNext()) 
       { 
        int labelType = curse.getInt(colIndex); 
        if(labelType == ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM) 
        { 
         cur = curse.getString(lblIndex); 
        } 
        else 
        { 
         CharSequence seq = ContactsContract.CommonDataKinds.Phone.getTypeLabel(mContext.getResources(), labelType, "Mobile"); 
         cur = seq.toString(); 
        } 
        numbers.add(cur); 
       } 
       curse.close(); 

. 전화 번호는 매우 정확하게 일치해야하므로 444-4444는 4444444와 일치하지 않으며 반대의 경우도 마찬가지입니다.

개인적으로, 나는 아직 차이를 보이지는 않았지만 getTypeLabel의 마지막 변수에 "Mobile"또는 ""을 넣는 것의 차이점을 실험 할 시간이 없었습니다.

희망이 답변이 너무 늦지 않았기를 바랍니다.