使用OnKeyListener使手机振动

时间:2014-08-03 04:47:59

标签: android keylistener vibrate

每当我在onKeyListener中键入特定的单词时,我都会试着让手机振动。

我想出了这个代码,我认为它会起作用,但遗憾的是,它没有。完成按钮不会以纵向显示,而当我输入正确的短语时,手机(galaxy s3)仍然不动。

我总是在logcat“SendUserActionEvent()== null;”中得到这个。 感谢您的时间。

public class MainActivity extends Activity {

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    final TextView text = (TextView)findViewById(R.id.text);
    EditText edittext = (EditText)findViewById(R.id.editText);
    edittext.setImeOptions(EditorInfo.IME_ACTION_DONE);
    edittext.setOnKeyListener(new OnKeyListener(){

        @Override
        public boolean onKey(View view, int keycode, KeyEvent evt) {
            if (evt.getAction()== KeyEvent.ACTION_DOWN)
            {
                if(keycode == KeyEvent.KEYCODE_ENTER){

                    if (this.equals("Vibrate")){
                        Vibrator vibrate = (Vibrator)    
                        getSystemService(Context.VIBRATOR_SERVICE);
                        vibrate.vibrate(1000);

                    }
                    else{
                        text.setText("Didn't Vibrate");
                    }

                }   
                }

            // TODO Auto-generated method stub
            return true; 
        }
    });
}


}

1 个答案:

答案 0 :(得分:0)

您可能想要使用TextWatcher http://developer.android.com/reference/android/text/TextWatcher.html

edittext.addTextChangedListener(new TextWatcher() {
   @Override
   public void afterTextChanged(Editable e) {
        if ("Vibrate".equals(e.toString()) {
            // Vibrate the phone
        }

   }
   //... other methods
}

另外,请勿忘记向您的清单添加VIBRATE权限。最糟糕的是,通过你的代码来试图了解正在发生的事情。