2010-07-15 35 views
5

i utilizar este código y obtener los datos de contacto de una sola persona ....cómo obtener la lista de contactos en qt

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(); 

de salida:

Name: andrew Number: +7811341255 

pero quiero lista de contactos como éste

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

.... lista de ninguna de contacto en el teléfono cualquier ayuda apreciada ....

+1

Realmente no puedo decir lo que quiere y cómo eso difiere de lo que ya tiene. ¿Podrías aclarar eso un poco? – extraneon

Respuesta

2

Si desea imprimirlos todos, debe repetir el QList devuelto por QContactManager::contacts().

Esto debería ayudarle a empezar (sólo voy a azotar para arriba para usted):

// 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

+0

¿Existe alguna razón específica por la que no utilice 'foreach (const QContact contact, contacts) {...}'? – mbx

1

Me ayudó mucho ...... Gracias ...... :)

simplemente una modificación que es:

no

QList<QContactLocalId> contacts = contactManager->contacts(); 
+1

esto es solo una pequeña adición, no una respuesta completa, por lo tanto, debe ser un comentario en la respuesta aceptada. La forma habitual de agradecer una respuesta útil es la votación ascendente (ver [Meta] (http://meta.stackexchange.com/q/34464/159753)). – mbx

0

para obtener una lista de contactos de iOS & Android, también puedes usar el SDK de V-Play para esto. Hay un método nativeUtils.getContacts() que funciona así:

import VPlayApps 1.0 

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

    delegate: SimpleRow { 
     text: modelData.name 
     detailText: modelData.phoneNumber 
    } 
    } 
} 
Cuestiones relacionadas