Использование 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 не вернет пустой результат.
вот и все. И сообщение можно отправить.
Я думаю, что это немного раздражает, когда мне нужно протестировать его на устройстве, которое мне нужно подписать сначала. А оффлайн нужна лицензия, которая не бесплатна, а я только учусь. *вздох
ИЗДАНО: Каким-то образом я могу запустить его с собственной подписью. Но я не знаю точно, как это может быть. Что я делаю:
- запустите самоподписанное приложение с QtCreator. ошибка: невозможно скопировать с компьютера на устройство
- перезапустить устройство
- запустите самоподписанное приложение с QtCreator. ошибка: общая ОС связана
- Установите приложение вручную с помощью PC Suite. Много предупреждений.
И я забыл, что дальше - попробуйте запустить с QtCreator. работает отлично. - или сначала удалите с помощью PC Suite.