用于指示手机振动的指示灯

时间:2011-03-13 10:26:45

标签: android

目前我正在开发一款可以震动摩尔斯电码的应用程序。

我正在使用此代码来振动模式:

int dot = 100;
int dash = 220;
int short_gap = 200;
int medium_gap = 700;
s = new long[] {0, dot, short_gap, dash, medium_gap}
Vibrator vibrator;
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);       
vibrator.vibrate(s, -1);

如何添加指示符以指示我的应用程序是在振动点还是短划线?

我知道我可以使用for循环横向long[],然后使用if else语句更改textview背景颜色以指示模式的更改。但是如何让for循环保持在每次变化的振动ms内?

1 个答案:

答案 0 :(得分:1)

dot = new long[] {200, 100};
dash = new long[] {700, 220};
String s = "01";
for (int i = s.length() - 1, i >= 0, i--) {
  if (s.charAt(i) == "0") {
    // CHANGE TEXTVIEW HERE
    vibrator.vibrate(dot, -1);
  }
  else {
    vibrator.vibrate(dash, -1);
  }
}

因为在vibrate之前执行代码需要几毫秒才能启动振动器,如果您想要准确,可能需要相应缩短时间。


顺便说一句,根据api,您的原始代码应为

s = new long[] { short_gap, dot, medium_gap, dash}