Metro/Windows Phone 7

윈도우폰7을 울리자! (진동기능 컨트롤하기)

길버트리 2010. 10. 9. 17:29
윈도우폰7 폰에서 진동 울리게 하는 것은 매우 쉽습니다.
VibrateController 클래스를 활용합니다. (Namespace : Microsoft.Devices, Assembly : Microsoft.Phone.dll)

울리기

정해준 시간 만큼 진동이 울립니다. 한 번에 울릴 수 있는 최대값은 5초라고 합니다.

VibrateController.Default.Start(TimeSpan.FromMilliseconds(500));


멈추기

VibrateController.Default.Stop();


비밀해법

하지만 그냥 무작정 코드에 섞어 쓰려고 하면 아래 그림과 같은 예외(Exception)이 발생하게 됩니다.
메세지는 무려 Invalid cross-thread access.



이럴 땐 당황하지 마시고, Dispatcher를 사용하세요.

Dispatcher.BeginInvoke(() =>
    {
        VibrateController.Default.Start(TimeSpan.FromMilliseconds(150));
    }
);

그럼 해결됩니다.


References

http://msdn.microsoft.com/en-us/library/microsoft.devices.vibratecontroller_members(v=VS.92).aspx
http://mobileworld.appamundi.com/blogs/peterfoot/archive/2010/03/16/windows-phone-7-for-mobile-developers.aspx