我想让设备在按下时振动,如果我移动手指则停止

时间:2013-09-15 12:14:43

标签: android

如果我按下并停止振动,如果我移动我的手指,我怎么能让设备振动?现在这与声音工作,但它不振动,这是代码 `

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            // TODO Auto-generated method stub
        if(MotionEvent.ACTION_DOWN == arg1.getAction())
        {
            mp.start();
            df= (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

        }
        else
            if(MotionEvent.ACTION_UP == arg1.getAction())
            {

                mp.stop();
                try {
                    mp.prepare();
                    try {
                        df.wait(arg1.getDownTime());
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                //df.cancel();
            }

            return false;
        }
    });


    }

`

1 个答案:

答案 0 :(得分:0)

你没有在ACTION_DOWN中启动振动,你只是在不使用它的情况下获取VibratorService。你需要打电话:

public abstract void vibrate (long[] pattern, int repeat)

像这样:

df.vibrate(new long[]{300}, 0);

然后用

取消它
df.cancel();

此外,您需要此权限:

<uses-permission android:name="android.permission.VIBRATE"/>