Я использую этот код и получаю контактные данные только одного человека ....

contactManager = new QContactManager();
QList<QContact> contacts = contactManager->contacts();
contacts.detail(QContactPhoneNumber::DefinitionName).value(QContactPhoneNumber::FieldNumber);

QContact a = contactManager->contact(contacts.count());
QContactPhoneNumber no = a.detail<QContactPhoneNumber>();
qDebug() << "Name:" << a.displayLabel() << "Number:" << " " << no.number() ;
UserId = a.displayLabel();
PhoneNumber = no.number();

Выход:

Name: andrew Number: +7811341255

Но мне нужен такой список контактов

Name: andrew Number: +7811341255
Name: person2 Number: +44124156
Name: person3 Number: +212113

.... список контактов по телефону, любая помощь приветствуется ....

qt
5
Tirupati Balan 15 Июл 2010 в 16:09
1
Я не могу точно сказать, что вы хотите и чем это отличается от того, что у вас уже есть. Не могли бы вы немного прояснить это?
 – 
extraneon
15 Июл 2010 в 16:20

3 ответа

Лучший ответ

Если вы хотите распечатать их все, вам следует перебрать QList, возвращаемый QContactManager::contacts().

Это должно помочь вам начать (я просто приготовлю это для вас):

// Contacts contains a list of ID:s
QList<QContactLocalId> contacts = contactManager->contacts();

// Now iterate
QList<QContactLocalId>::iterator it;
for (it = contacts.begin(); it != contacts.end(); ++it)
{
  QContact contact = contactManager->contact(*it);
  // And print contact information...
  UserId name = contact.displayLabel();
  PhoneNumber number = contact.number();
  qDebug() << "Name: " << name
           << " Number: " << number << " ";
}

http://doc.qt.nokia.com/qtmobility-1.0-tp/qcontactmanager.html#contacts

http://doc.qt.nokia.com/4.5/qlist.html

http://doc.qt.nokia.com/4.5/qlist-iterator.html

http://www.cppreference.com/wiki/stl/iterators

2
mahju 15 Июл 2010 в 16:35
Есть ли конкретная причина, по которой вы не используете foreach(const QContact contact, contacts){...}?
 – 
mbx
5 Сен 2011 в 12:25

Мне очень помогли ...... Спасибо ...... :)

Просто модификация это:

QList<QContactLocalId> contacts = contactManager->contactsIds();

Не

QList<QContactLocalId> contacts = contactManager->contacts();
1
Jérôme Verstrynge 15 Сен 2011 в 20:23
1
Это всего лишь небольшое дополнение, а не исчерпывающий ответ - поэтому это должен быть комментарий под принятым ответом. Обычный способ поблагодарить за полезный ответ - проголосовать за него (см. Meta).
 – 
mbx
5 Сен 2011 в 12:33

Чтобы получить список контактов iOS и Android, вы также можете использовать для этого V-Play SDK. Есть метод nativeUtils.getContacts (), который работает следующим образом:

import VPlayApps 1.0

App {
  AppListView {
    anchors.fill: parent
    model: nativeUtils.getContacts()

    delegate: SimpleRow {
      text: modelData.name
      detailText: modelData.phoneNumber
    }
  }
}
0
Christian Feldbacher 12 Сен 2017 в 16:08