2012-08-17 72 views
0

我正在写一个测试应用程序,其中Vibrator无法正常工作。 我正在使用Nexus S来运行此代码。Android振动器无法正常工作

public class MainActivity extends Activity { 
Button button; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    button = (Button) findViewById(R.id.click_vibrate); 
    button.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      Log.d("me", "onClick"); 
      Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
      if(vibrator.hasVibrator()){ 
       vibrator.vibrate(300); 
       Log.d("me","has Vibrator"); 
      } 
     } 
    }); 

} 
} 

和我得到的日志,

D/me  (1552): onClick 
D/me  (1552): has Vibrator 

但相同的代码工作正常了Android 2.3.6

+1

你有没有在指定的权限清单文件? – pixelscreen 2012-08-17 10:10:12

+0

@Dya:亚我已经提出 2012-08-17 10:14:11

+0

添加上面提到的家伙的权限。另外我注意到,如果你选择的振动时间太短,它根本不会振动。 300应该够了。 – FWeigl 2012-08-17 10:17:21

回答

0

试试这个:

Vibrator vibrator = (Vibrator) MainAcitivty.this.getSystemService(Context.VIBRATOR_SERVICE); 
+0

谢谢你的答案,我试过仍然ID不起作用,但它适用于Android 2.3 – 2012-08-17 10:20:18

+0

尝试删除条件检查也。只是尝试,虽然我不认为这是造成问题.. – pixelscreen 2012-08-17 10:20:30