Использование Nokia Qt для отправки сообщения в S60 (Nokia E72)

Я новичок в Qt и пытаюсь использовать QtMobility для отправки сообщения. Я использую пример в этой ссылке: http://doc.qt.nokia.com/qtmobility/writemessage.html

Я могу скомпилировать исходный код, и его можно протестировать на симуляторе. Но когда я развернул его на E72, программа не удалась. Потому что он не может найти доступных аккаунтов. Проблема заключается в этом коде:

 // Find the list of available accounts and add them to combo box
foreach (const QMessageAccountId &id, manager.queryAccounts()) {
    QMessageAccount account(id);
    ...
}

if (accountDetails.isEmpty()) {
    QMessageBox::warning(0, tr("Cannot send"), tr("No accounts are available to send with!"));
    QCoreApplication::instance()->quit();
} else {
    accountCombo->setCurrentIndex(0);
}

Код введите (accountDetails.isEmpty()) на устройстве, но это нормально, когда на симуляторе. Таким образом, manager.queryAccounts() возвращает пустой список.

Что именно такое аккаунт? в симуляторе это SMS и MMS. Но почему в устройстве пусто? Код не инициализирует менеджер, поэтому я не могу проследить, как он работает. О, кстати, менеджер является экземпляром QMessageManager. Что мне делать, чтобы это работало в устройстве?

Я использую Nokia Qt SDK с QtMobility версии 1.0.2, если это помогает.

1 ответ

Решение

Хорошо, я получил ответ. Проблема не в приложении или в Qt. Но сертификация. QMessageManager так или иначе должен получить доступ к ОС. Это описано в файле *.pro, в symbian:TARGET.CAPABILITY. Это называется способностями. И некоторые возможности не могут быть самоподписанными, что является настройкой по умолчанию в настройках проекта. Это нужно подписать.

Я использовал Open Signed здесь: https://www.symbiansigned.com/app/page/public/openSignedOnline.do чтобы подписать файл. После того, как файл подписан, установите подписанный файл на устройство, и программа сможет получить доступ к ОС, и queryAccounts() QMessageManager не вернет пустой результат.

вот и все. И сообщение можно отправить.

Я думаю, что это немного раздражает, когда мне нужно протестировать его на устройстве, которое мне нужно подписать сначала. А оффлайн нужна лицензия, которая не бесплатна, а я только учусь. *вздох

ИЗДАНО: Каким-то образом я могу запустить его с собственной подписью. Но я не знаю точно, как это может быть. Что я делаю:

  1. запустите самоподписанное приложение с QtCreator. ошибка: невозможно скопировать с компьютера на устройство
  2. перезапустить устройство
  3. запустите самоподписанное приложение с QtCreator. ошибка: общая ОС связана
  4. Установите приложение вручную с помощью PC Suite. Много предупреждений.

И я забыл, что дальше - попробуйте запустить с QtCreator. работает отлично. - или сначала удалите с помощью PC Suite.

Другие вопросы по тегам