2010-11-19 3 views
13

Где я могу найти документацию о том, как реализовать тактическую обратную связь для Windows Phone 7? Я хочу, чтобы телефон подавал короткие вибрации при нажатии кнопки.wp7 Haptic Feedback

+0

Мне было бы очень интересно, как реагировать на это поведение пользователей. В зависимости от приложения и с тем, что требуется нажатием кнопки частоты, в качестве пользователя я был бы очень осторожен, если бы мой телефон вибрировал каждый раз, когда я касался кнопки. Это не то поведение, которое я видел где-то раньше. Невозможно ли обеспечить визуальную обратную связь при нажатии кнопки? Вибрация незначительно зависит от устройства - будет ли это? Я также рекомендую дать пользователю возможность отключить это поведение. –

+0

Ну, поведение по умолчанию для «аппаратных» кнопок моего фокуса на Samsung - это то, что они гудят, когда я нажимаю их (назад, ключ окна и бинг). Может быть, это только потому, что они являются емкостными кнопками на фокусе ... но мне очень нравится, что это стоит :-) –

+0

У меня нет одной руки (оставлено в офисе), но я думал, что они вызвали вибрацию, если вы пытались сделать что-то, чего не могли (т. е. пытались вернуться назад, когда некуда было вернуться). Вибрация указывает и исключение, а не стандартное нажатие кнопки. Кнопки, на которые вы ссылаетесь, на самом деле являются аппаратными кнопками. С вашего вопроса я думал, что вы пытаетесь сделать это для всех программных клавиш. –

ответ

18

В основном все, что вам нужно сделать телефон вибрировал это:

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

Я предлагаю прочитать this blog как он объясняет это довольно хорошо. other chapters интересны, если вы еще не видели их.

+0

Я еще не видел этот блог. Похож на хороший ресурс! Спасибо за помощь! – BigPete

2

Может быть, вы можете использовать XNA API, чтобы установить вибрацию «геймпад»
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.gamepad.setvibration.aspx

Мне было бы любопытно знать, если вы получите его на работу в Silverlight, пожалуйста, комментарий после того, как вы попробуете это: -)

+1

ах, несколько секунд слишком поздно ... отличный ответ Франческо :-) –

5

Я создал класс вибрации для своих кнопок, чтобы его было легко позвонить. Вот мой код. Пожалуйста, дайте мне +1, если хотите.

public class Vibration 
    { 
     public static void VibrateOnButtonPress() 
     { 
      Microsoft.Devices.VibrateController.Default.Start(TimeSpan.FromMilliseconds(50)); 
      System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer(); 
      timer.Interval = new TimeSpan(0, 0, 0, 0, 200); 
      timer.Tick += (tsender, tevt) => 
      { 
       var t = tsender as System.Windows.Threading.DispatcherTimer; 
       t.Stop(); 
       Microsoft.Devices.VibrateController.Default.Stop(); 
      }; 
      timer.Start(); 
     } 
    }