1

我想实现:

我想在指定的分钟内振动手机,我使用 EditText 获取输入并通过将分钟乘以 60000 转换为毫秒,然后将其作为参数传递给 vibrate(),它应该振动指定的毫秒,但它只振动15秒..

我已经完成了代码:

  Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
  final EditText minutess = (EditText) findViewById(R.id.minutes);
                // to string
                String min = minutess.getText().toString();
                minutess.setVisibility(4);
                stopButton.setVisibility(1);
                try{
                long mins = Long.parseLong(min);
                long milis = mins*60000;
                startButton.setVisibility(4);
                v.vibrate(milis);
                }
       catch (NumberFormatException e) 
            { 
               //something else done here

            }

即使以毫秒为单位的时间传递给 vibrate() ,它也只会振动 15 秒。我对java非常陌生,我想知道上面的代码是否有任何问题..

4

1 回答 1

5

文档中没有说,但 15 秒可能是硬件设置的振动时间限制。您可能想在不同的设备上对其进行测试,以查看它在停止之前是变长了还是变短了。

但是,如果所有设备只能振动 15 秒,您可以将所需的时间分成 15 秒的块,每次都重新开始振动,直到它应该停止。

于 2012-01-03T08:09:50.840 回答