Рег. Извлечение контактов - PullRequest
0 голосов
/ 05 августа 2010

Как проверить входящий номер, независимо от того, существует ли он в списке контактов Blackberry или нет ... если он есть, я хочу отобразить его имя контакта ..

Заранее спасибо ..

1 Ответ

2 голосов
/ 05 августа 2010

Я думаю, это поможет вам
1. добавить прослушиватель телефона

Phone.addPhoneListener(new AbstractPhoneListener(){
            public void callIncoming(int callId) {
                String number = Phone.getCall(callId).getPhoneNumber();
                search(number);
                super.callIncoming(callId);
            }
        });

2. поиск в адресной книге

public void search(String number) throws PIMException{
        PIM pim = PIM.getInstance();
        BlackBerryContactList contacts = (BlackBerryContactList) pim
        .openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
        Contact template = contacts.createContact();
        template.addString(Contact.TEL, Contact.ATTR_MOBILE, number);
        Enumeration matches = contacts.items(template);
        if (matches.hasMoreElements())
        {
            Contact contact = (Contact)matches.nextElement();
            if (contact.countValues(Contact.NAME) > 0){
                String[] name = contact.getStringArray(Contact.NAME, 0);

                synchronized (Application.getEventLock()) {
                    UiEngine ui = Ui.getUiEngine();
                    Screen screen = new Dialog(Dialog.D_OK,
                            name[Contact.NAME_GIVEN], Dialog.OK, Bitmap
                            .getPredefinedBitmap(Bitmap.EXCLAMATION),
                            VerticalFieldManager.VERTICAL_SCROLL);
                    ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE);
                }
            }

        }
    }

Обновление: в ежевике ОС 6 Вы можете найти контакт для активного вызова, используя метод PhoneCall.getContact ().

...