Ответ 1
В соответствии с этим:
http://doc.qt.nokia.com/qtmobility-1.2/index.html#platform-compatibility
это не одна из платформ, которая является полнофункциональной в текущее время.
Я пытаюсь заставить свое устройство рухнуть, но у меня очень мало удачи. Моя среда - HTC Sensation Android 2.3.3 API 10. Использование Necessitas Qt Creater в качестве моей IDE.
Ничего не делает:
QFeedbackHapticsEffect::playThemeEffect( QFeedbackHapticsEffect::ThemeBasic );
Сбой приложения:
QFeedbackHapticsEffect rumble;
rumble.setAttackIntensity(0.0);
rumble.setAttackTime(250);
rumble.setIntensity(1.0);
rumble.setDuration(100);
rumble.setFadeTime(250);
rumble.setFadeIntensity(0.0);
rumble.start();
rumble.stop();
Я указал свой .pro файл со следующим
CONFIG += mobility
MOBILITY += feedback
и я использую QTM_USE_NAMESPACE с включенными заголовками.
Edit:
Я установил следующие разрешения:
android.permission.INTERNET
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.VIBRATE
Однако я все еще получаю ошибку сегментации.
В соответствии с этим:
http://doc.qt.nokia.com/qtmobility-1.2/index.html#platform-compatibility
это не одна из платформ, которая является полнофункциональной в текущее время.
Документация API для QFeedbackHapticsEffect
предполагает, что duration
должна быть больше attackTime
+ fadeTime
. И, конечно, остановка сразу после ее запуска, вероятно, не то, что вы хотите, но, надеюсь, это не вызовет ошибку seg. Возвращает ли actuator()
что-то полезное? В этом случае QFeedbackActuator::actuators()
дает вам непустой список?
У меня была такая же проблема, и я отправил сообщение об ошибке с более подробной информацией (все еще без ответа), чтобы http://groups.google.com/group/android-qt/browse_thread/thread/e1a4ad1c797b6694
Кажется, проблема в библиотеке Qt Mobility для Android, которая, вероятно, может быть легко исправлена для тех, кто компилирует свою собственную библиотеку (я этого еще не делал).