2012-08-17 103 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