Как включить вибрацию на Windows Phone 8.1

Этот вопрос касается того, как получить доступ к управлению вибрацией вашего телефона Windows 8.1 в каком-то событии с помощью С++. Я также ответил на вопрос.


person Atin Agarwal    schedule 09.06.2016    source источник


Ответы (1)


Сначала импортируйте следующие два пространства имен:

using namespace Windows::Phone::Devices::Notification;

using namespace Windows::Foundation;

Затем используйте такую ​​функцию:

void PlatformInterop::vibrateDevice(int duration)
        {
            VibrationDevice^ vib = VibrationDevice::GetDefault();
            if (vib != nullptr)
            {
                TimeSpan time;  
                // Convert from milliseconds to  1.0e-7 of a second, and limit to 5 seconds
                time.Duration = min(duration*10000, 50000000);
                vib->Vibrate(time);
            }
        }

Это все, что вам нужно сделать.

person Atin Agarwal    schedule 09.06.2016
comment
Ваши единицы не складываются: если time.Duration действительно занимает наносекунды, вам нужно 5000000000 вместо 50000000 (9 нулей вместо 7); и вам нужно умножить целое число duration на 1000000. - person mindriot; 09.06.2016
comment
Спасибо за упоминание ошибки, но на самом деле я упомянул ее неправильно в комментарии. На самом деле функция принимает аргументы в единицах 1.0e-7 секунд. Я проверил это, и это работает для меня. - person Atin Agarwal; 19.06.2016