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 に答える