2010-06-24 50 views
6

Tôi thực sự có một ứng dụng mà tôi thử nghiệm với hai thiết bị. Một chiếc LG GW620 và một chiếc Samsung Spica. Tôi muốn khi Người dùng chạm vào màn hình, thiết bị sẽ rung.Android - Thiết bị rung không hoạt động

Thực tế, Trên LG GW620, thiết bị rung khi tôi chạm vào nó. Nhưng trên spica không ...

Tôi đã tìm cài đặt trên spica, nhưng Vibrator đang kiểm tra, vì vậy tôi không hiểu tại sao nó không rung.

Trong ứng dụng của tôi, tôi có: <uses-permission android:name="android.permission.VIBRATE"></uses-permission>

và trong các mã:

Vibrator vibrator =(Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 
      vibrator.vibrate(100); 

Nhưng tôi nghĩ rằng nó không phải là điều tốt nhất để làm điều đó. Tôi muốn thiết bị rung cho mỗi nhấp chuột, nhưng tôi không biết nếu tôi phải làm một Vibrator cho mỗi OnClick? Hoặc nếu tôi chỉ có thể làm một Vibrator cho tất cả các ứng dụng?
Và đặc biệt là tại sao nó không hoạt động trên Spica?

+14

Đây là tiêu đề câu hỏi hay nhất tôi đã thấy trên Stack Overflow. Bộ phim hài! – theorise

+2

Tôi là người Pháp, tôi chỉ đặt "Vibrator" vì nó gọi như thế này trong Android ... nhưng tôi chỉ thấy vibrator có nghĩa kép <_ < – Nanis

+5

Cách dùng của bạn là chính xác, nhưng điều này thực sự có ý nghĩa kép (ít nhất là tại Mỹ). Tôi sẽ không lo lắng về nó, câu hỏi chính nó là rõ ràng. – Chimmy

Trả lời

4

Vui nhộn. Trong onClick của bạn cho nút, bạn nên đặt rung. Và kể từ khi nó được tính bằng miliseconds tôi sẽ đặt một cái gì đó giống như 500 cho nửa giây thay vì 0,1 giây.

void onCreate() { 

    mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 

    Button b = (Button) findViewById(R.id.button); 
    b.setOnClickListener(new View.OnClickListener() { 
     void onClick() { 
      mVibrator.vibrate(500); 
     } 
    }); 
} 
+0

ok, vì vậy tôi phải làm điều đó cho mỗi nút/ImageView của ứng dụng của tôi? không có cách nào khác ? Bởi vì tôi có 30 hoặc 40 Nút trên ứng dụng của tôi nên nó sẽ rất dài. – Nanis

+1

Nếu bạn đang sử dụng SDK 1.6 (phiên bản 4), Chế độ xem có thể có phương thức onClick được đặt trong xml. Vì vậy, đối với mỗi nút bạn có thể thiết lập onClick, và trong hoạt động của bạn phương pháp phải có một kết hợp signiature onClick (View v) trong đó v sẽ là nút bấm. Đối với mỗi nút đặt android: onClick = "onClick" trong đó onClick là tên của phương thức onClick trong Hoạt động của bạn. http://developer.android.com/reference/android/R.attr.html#onClick –

+0

Thx rất nhiều cho câu trả lời của bạn, điều này rất hữu ích. Bạn có bất kỳ ý tưởng tại sao Spica không rung trong khi LG GW620 làm gì ?? – Nanis

0

Hầu hết các giải pháp trên internet dường như thiếu một thứ gì đó. . (context) heres một giải pháp làm việc . . .

Vibrator v = (Vibrator) getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE); 
    v.vibrate(100); 
Các vấn đề liên quan