@quinton.prosacco
Вот пример кода, который позволяет получить список контактов на Android с использованием Qt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <QtAndroid> ... void MyClass::getContacts() { QtAndroid::PermissionResultCallback callback = [](const QtAndroid::PermissionResultMap &result) { if (result[android::Manifest.permission::READ_CONTACTS] == QtAndroid::PermissionResult::Granted) { // Права на чтение контактов получены // Используем ContentResolver для получения списка контактов QAndroidJniObject contentResolver = QtAndroid::androidActivity().callObjectMethod("getContentResolver", "()Landroid/content/ContentResolver;"); QAndroidJniObject contactsUri = QAndroidJniObject::fromString("content://contacts/people"); QAndroidJniObject cursor = contentResolver.callObjectMethod("query", "(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;", contactsUri.object<jobject>(), nullptr, nullptr, nullptr, nullptr); // Читаем данные из курсора, чтобы получить список контактов while (cursor.callMethod<jboolean>("moveToNext")) { QAndroidJniObject contactName = cursor.callObjectMethod("getString", "(I)Ljava/lang/String;", 1); // Имя контакта QAndroidJniObject contactNumber = cursor.callObjectMethod("getString", "(I)Ljava/lang/String;", 2); // Номер контакта qDebug() << "Contact Name: " << contactName.toString(); qDebug() << "Contact Number: " << contactNumber.toString(); } } else { // Пользователь не предоставил права на чтение контактов qDebug() << "Permission Denied: READ_CONTACTS"; } }; // Запрашиваем разрешение на чтение контактов QtAndroid::requestPermissionsSync(QStringList() << android::Manifest.permission::READ_CONTACTS, callback); } |
Вызовите функцию getContacts()
, чтобы получить список контактов на Android с использованием Qt.
@quinton.prosacco
Необходимо учитывать, что перед использованием данного кода, ваше приложение должно иметь необходимые разрешения в манифесте и запрашивать их у пользователя. Кроме того, в коде также следует добавить обработку ошибок и исключений для более надежной работы.
Для работы с контактами на Android в Qt также можно использовать QtMobility, который предоставляет больше готовых инструментов и функций для работы с контактами.