2013-02-28 3 views
1

Я разрабатываю приложение, которое использует контакты! чтобы сделать какую-то работу! и одна из самых важных вещей - это тип номера!Как получить номер типа контакта в android?

поэтому если один контакт имеет более одного номера! Мне нужно получить номер и типы! Я не wan't сделать заявление переключателя как этот

   int type = phones.getInt(phones.getColumnIndex(Phone.TYPE)); 
       switch (type) { 
        case Phone.TYPE_HOME: 
         // do something with the Home number here... 
         break; 
        case Phone.TYPE_MOBILE: 
         // do something with the Mobile number here... 
         break; 
        case Phone.TYPE_WORK: 
         // do something with the Work number here... 
         break; 
       } 

мне нужно, чтобы получить тип TEXT dynamiclly, потому что, скорее всего, мое приложение работает на пользовательский тип! не только Мобильные и рабочие ... и т.д.

любая помощь?

EDIT:

Я пытаюсь получить контакты в этом запросе:

Cursor телефонов = cr.query (Phone.CONTENT_URI, нуль, Phone.CONTACT_ID + " =" + id, null, null);

ответ

0

Documentation

String typeLabel = phones.getString(phones.getColumnIndex(Phone.LABEL)); 
+0

возвращает нуль все время. – daigoor

+0

@daigoor Вы подтвердили, что то, что вы пытаетесь вернуть _isn't_ null? – Alex

+0

Я согласен с ответом после того, как я обнаружил, что теперь можно получить «Главная», «Работа», «Мобильный» ..... LABEL получает только настраиваемую строку, предоставленную клиентом. – daigoor

1

Расширяя @ ответ Rawkode после того, как ОП пояснил, что он ищет этикетки типа-телефона.

Я нашел в Интернете - кажется, Android имеет встроенный способ получить этикетки (раскрытие: я не проверял это еще)

import android.provider.ContactsContract.CommonDataKinds.Phone; 
String home_label = (String) Phone.getTypeLabel(context.getResources(), Phone.TYPE_HOME, ""); 
Смежные вопросы