Windows Phone 7 開發 31 日談——第12日:使手機震動

l_serein發表於2012-11-02

By Jeff Blankenburg

本文是Windows Phone 7 開發 31 日談” 系列的第12日。

昨天,我們談到了Windows Phone的加速感應器,以及如何模擬一個真實裝置來為我們提供資料。今天,我們來談談震動控制器(VibrateController)以及向使用者提供程式中正在發生的事情的反饋。

告訴某人如何使他的手機震動會立即引發一些沒趣兒的笑話,所以,在我提及15次“震動”之前,會將他們帶出到你的系統之外。呵呵,開始吧……我可以等。

為什麼要使我的手機震動?

有很多很多愚蠢和/或不合適的原因來讓一個手機震動。然而,本文的目的是講述一些讓手機震動的具體原因。

遊戲反饋

讓我們先從一個明顯的例子入手:遊戲。當你玩兒遊戲時,可能不能一直為使用者提供他們所需的所有資訊。(尤其是他們的手指在螢幕上時。)給他們一些觸覺反饋 可以讓他們知道他們正在被攻擊或是有一些需要他們注意的東西。

按鈕反饋

這個對你來說可能非常普通,但對於你程式中的每個按鈕來說,觸覺反饋可以讓使用者得知他們按下了相應的按鈕。Windows Phone中預設按鈕會在被按下時變為一種單色,但很多時候使用者並不能確定他們是否點選了它(尤其是這個操作需要幾秒的時候)。給他們提供一個快速的震動可以讓他們知道他們達到了自己的目的。

推送通知

另一個很明顯的,但是震動反饋卻沒有被充分利用到的時機是推送通知。預設時,如果你收到一封電子郵件,簡訊息等等,你的電話會震動(或響鈴)。我們可以在程式中利用這些相同的使用者體驗。當使用者因為某事被警告時,可以讓手機振動。這在你的程式處於被動狀態時尤為重要。例如,一個程式在跟蹤你的位置而你正在穿過鄰居家。如果訊號消失,或者是到達了目標距離,只需一個震動就可以讓使用者無須看他們的手機便知道了。同樣還是這個例子,你甚至可以每1/4英里就向他們反饋一次,那樣他們就會意識到自己走了有多遠。

如何使手機震動?

太感謝了,這難以置信地簡單。你只需要2行程式碼就能實現,但你會花很多時間來調整從而滿足你的具體需求。這是最基本的程式碼:

[c-sharp] view plaincopy
  1. VibrateController vc = VibrateController.Default;  
  2. vc.Start(TimeSpan.FromMilliseconds(100));  

震動多長時間?

對於具體的提示應該震動多長時間沒有一個統一的標準,但我會遵從一些規則,現在和你分享一下:

  1. 對於一個按鈕點選來說1/10秒比較合適(這也是VibrateController可以震動的最短時間)。
  2. 2秒=你的使用者會說“我的電話到底是怎麼了? ”。2秒對於任何一個提示都太長了。
  3. 300毫秒(約為1/3秒)貌似是一個穩定的振動提示的合適時間。這樣你的使用者才不會認為電話出了毛病
  4. 快速的脈衝震動是讓使用者知道正在發生的事情的另一種好方法。我在程式碼中包含了這個例子,但如果想更清晰地瞭解我是如何做的,來看看我的這篇關於“如何在SilverLight中建立一個SetTimeout函式 ”的教程。

下載程式碼示例

在接下來的幾天裡我們會迎來一些重量級的話題,包括位置服務和墓碑機制。請在這個系列的任何文章中留下評論來告訴我你是如何想的!

clip_image001

原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-12-Making-A-Phone-Vibrate.aspx

相關文章