Các hằng số và nguyên hàm xúc giác được HAL bộ rung xác định và được khung Android ánh xạ đến các API công khai. Thực hiện các bước kiểm tra sau để xác định xem thiết bị của bạn có đáp ứng các yêu cầu tối thiểu để triển khai tính năng phản hồi xúc giác hay không:
Hình 2. Triển khai hiệu ứng
Hình 3. Triển khai các thành phần cơ bản
Triển khai hằng số
Nhà phát triển có thể sử dụng các hằng số xúc giác trong VibrationEffect thông qua VibrationEffect.createPredefined(). Hãy kiểm tra trạng thái triển khai của các hằng số xúc giác sau đây.
Hằng số xúc giác | Vị trí và nội dung tóm tắt |
---|---|
EFFECT_TICK , EFFECT_CLICK ,
EFFECT_HEAVY_CLICK ,
EFFECT_DOUBLE_CLICK |
Lớp
VibrationEffect Hằng số xúc giác trong VibrationEffect không bao gồm bất kỳ khái niệm nào về sự kiện đầu vào và không có phần tử nào trên giao diện người dùng. Các hằng số bao gồm khái niệm về mức năng lượng, chẳng hạn như EFFECT_CLICK và EFFECT_HEAVY_CLICK , được gọi bằng
createPredefined() . |
Các chế độ rung thay thế được mô tả tiếp theo sẽ được thực hiện trên những thiết bị không triển khai hằng số VibrationEffect
. Bạn nên cập nhật các cấu hình này để đạt hiệu suất tốt nhất trên những thiết bị như vậy.
EFFECT_CLICK
Rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern
.EFFECT_HEAVY_CLICK
Rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_longPressVibePattern
.EFFECT_DOUBLE_CLICK
Rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian (0, 30, 100, 30).EFFECT_TICK
Rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_clockTickVibePattern
.
Hình 4. Triển khai các hằng số phản hồi
Nhà phát triển có thể sử dụng các hằng số xúc giác trong HapticFeedbackConstants thông qua View.performHapticFeedback(). Hãy kiểm tra trạng thái của các hằng số phản hồi công khai sau đây.
Hằng số xúc giác | Vị trí và nội dung tóm tắt |
---|---|
CLOCK_TICK , CONTEXT_CLICK , KEYBOARD_PRESS ,
KEYBOARD_RELEASE , KEYBOARD_TAP , LONG_PRESS ,
TEXT_HANDLE_MOVE , VIRTUAL_KEY ,
VIRTUAL_KEY_RELEASE , CONFIRM , REJECT ,
GESTURE_START , GESTURE_END |
Lớp HapticFeedbackConstants Hằng số xúc giác trong HapticFeedbackConstants hỗ trợ các sự kiện đầu vào bằng một số phần tử trên giao diện người dùng, chẳng hạn như KEYBOARD_PRESS và KEYBOARD_RELEASE , được gọi bằng performHapticFeedback() . |
Triển khai các phần tử cơ bản
Các thành phần xúc giác cơ bản trong VibrationEffect.Composition
có cường độ có thể mở rộng mà nhà phát triển có thể sử dụng thông qua addPrimitive(int primitiveId, float scale, int delay)
.
Các thành phần cơ bản có thể được chia thành hai danh mục:
Nguyên tắc cơ bản ngắn: Nguyên tắc cơ bản có thời lượng ngắn, thường dưới 20 mili giây. Đây là
CLICK
,TICK
vàLOW_TICK
.Nguyên tắc cơ bản của Chirp: Nguyên tắc cơ bản có biên độ và tần số khác nhau, thường có thời lượng dài hơn so với nguyên tắc cơ bản ngắn. Đó là
SLOW_RISE
,QUICK_RISE
,QUCK_FALL
,THUD
vàSPIN
.
Nguyên hàm ngắn
Các nguyên tắc cơ bản ngắn có thể được mô tả bằng hồ sơ gia tốc đầu ra của động cơ rung. Tần số tuyệt đối được dùng sẽ khác nhau đối với mỗi thành phần cơ bản, tuỳ thuộc vào tần số cộng hưởng của bộ truyền động. Hãy xem phần Thiết lập thiết bị kiểm thử để biết thêm thông tin về cách thiết lập phần cứng và các công cụ đo lường đầu ra.
Một chỉ số chất lượng có giá trị đối với các rung động ngắn là tỷ lệ xung trên chuông (PRR), như trong Hình 5. PRR được xác định là tỷ lệ giữa xung chính (được xác định bằng tín hiệu trong cửa sổ thời lượng mà biên độ giảm xuống 10% biên độ đỉnh) và xung chuông (được xác định bằng tín hiệu mà biên độ giảm từ 10% biên độ đỉnh xuống dưới 1% biên độ đỉnh). Công thức tính PRR là:
Để biết thêm thông tin về PRR, hãy xem phần Phân tích dạng sóng. Để biết thêm thông tin về cách phân tích và so sánh kết quả, hãy xem phần So sánh kết quả bằng bản đồ hiệu suất.
Hình 5. Định nghĩa về tỷ lệ xung đổ chuông
Áp dụng các thành phần cơ bản ngắn làm phản hồi cho thông tin đầu vào của người dùng hoặc phát trong các bản nhạc dài hơn để tạo kết cấu mềm. Điều này có nghĩa là các hiệu ứng này thường được kích hoạt thường xuyên và phát liên tục. Cường độ cảm nhận của một nguyên tố cơ bản ngắn có thể làm tăng cường độ hiệu ứng lớn hơn. Vì lý do này, hãy hiệu chỉnh một dấu đánh dấu duy nhất hoặc dấu đánh dấu nguyên thuỷ có số lượng thấp bằng một thành phần lớn hơn, ví dụ: 100 dấu đánh dấu liên tiếp.
Thao tác nhấp cơ bản
Nguyên tắc cơ bản về lượt nhấp là một hiệu ứng mạnh mẽ, rõ ràng, thường hoạt động gần với tần số cộng hưởng của thiết bị để đạt được công suất tối đa trong thời gian ngắn. Nó mạnh mẽ và sâu sắc hơn các nguyên mẫu khác, hoạt động với cường độ tối đa.
Nếu có thể, hãy sử dụng chế độ tăng tốc động cơ ở đầu và chế độ phanh chủ động ở cuối để đạt được thời gian tăng và giảm tốc độ động cơ ngắn. Đối với một số động cơ, việc sử dụng sóng vuông thay vì sóng hình sin có thể giúp tăng tốc nhanh hơn. Hình 6 cho thấy một ví dụ về hồ sơ tăng tốc đầu ra cho cấu trúc cơ bản của lượt nhấp:
Hình 6. Ví dụ về hồ sơ tăng tốc đầu ra cho thành phần nhấp vào cơ bản
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 12 mili giây Giới hạn: < 30 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 2 G Giới hạn: > 1 G |
Tần suất sao lưu | Gần bằng tần số cộng hưởng |
Phần đầu đánh dấu (dấu đánh dấu sáng)
Nguyên tắc đánh dấu là một hiệu ứng sắc nét, ngắn, thường hoạt động ở dải tần số cao hơn. Nguyên tắc cơ bản này cũng có thể được mô tả là một lượt nhấp có cường độ trung bình với tần suất cao hơn và đuôi ngắn. Hướng dẫn tương tự cũng áp dụng để đạt được thời gian tăng ngắn bằng cách sử dụng chế độ tăng tốc động cơ hoặc sóng vuông cho lần bắt đầu ban đầu và phanh chủ động ở độ lệch. Hình 7 minh hoạ một ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc đánh dấu:
Hình 7. Ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc đánh dấu
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 5 mili giây Giới hạn: < 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: Một nửa Giới hạn: Từ 0,5 G đến 1 G |
Tần suất sao lưu |
Mục tiêu: Gấp 2 lần tần số cộng hưởng Giới hạn: < 500 Hz |
Phần tử đánh dấu thấp
Nguyên tắc đánh dấu thấp là phiên bản nhẹ nhàng hơn, yếu hơn của nguyên tắc đánh dấu nhẹ, hoạt động ở dải tần số thấp hơn để mang lại nhiều nội dung hơn cho hiệu ứng. Nguyên tắc này cũng có thể được mô tả là một cú nhấp có cường độ trung bình ở tần suất thấp hơn, dự kiến sẽ được sử dụng lặp đi lặp lại để nhận phản hồi linh hoạt. Hướng dẫn tương tự cũng áp dụng cho việc đạt được thời gian tăng ngắn bằng cách sử dụng chế độ tăng tốc động cơ hoặc sóng vuông cho lần bắt đầu ban đầu. Hình 8 minh hoạ một ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc đánh dấu thấp:
Hình 8. Ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc đánh dấu thấp
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 12 mili giây Giới hạn: < 30 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 1/4 Giới hạn: Từ 0,2 G đến 0,5 G |
Tần suất sao lưu |
Mục tiêu: 2/3 tần số cộng hưởng Giới hạn: < 100 Hz |
Phần đầu của Chirp
Các nguyên hàm Chirp có thể được mô tả bằng tín hiệu đầu vào cho mức điện áp và tần số rung. Gia tốc mà động cơ có thể tạo ra ở các dải tần số khác nhau sẽ thay đổi tuỳ thuộc vào đường cong phản hồi tần số của bộ truyền động. Bạn cần điều chỉnh dải tần số và mức điện áp theo từng thiết bị.
Phần đầu tăng chậm
Tăng chậm là một dao động biên độ và tần số chậm tăng dần với độ rung tăng dần và cường độ rung tăng lên liên tục trong quá trình quét. Bạn có thể triển khai bằng cách quét nhất quán cả biên độ và tần số, sử dụng dải tần số thấp hơn hoạt động ngoài cộng hưởng. Hình 9 cho thấy các tham số đầu vào và một ví dụ về hồ sơ tăng tốc đầu ra cho quá trình triển khai này. (Đường màu đỏ khớp với nhãn biên độ ở bên trái và biểu thị mức độ thay đổi của biên độ rung theo thời gian. Đường màu xanh dương trùng khớp với các nhãn tần số ở bên phải và thể hiện tần số rung thay đổi theo thời gian.)
Hình 9. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên hàm tăng chậm
Nếu phản hồi tần số của động cơ bị hạn chế (không đủ mạnh khi tắt tần số cộng hưởng), thì một cách triển khai thay thế là quét hình sin từ 1/2x đến 1x tần số cộng hưởng. Cộng hưởng động cơ góp phần đạt được đỉnh tín hiệu ở cuối.
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 500 mili giây Dung sai: 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 0,5 G Giới hạn: Từ 0,5 G đến 1 G |
Tần suất sao lưu |
Mục tiêu: 1/2 đến 2/3 tần số cộng hưởng Lựa chọn thay thế: 1/2 đến tần số cộng hưởng |
Phần đầu tăng nhanh
Tăng nhanh là một chế độ quét biên độ và tần số nhanh hơn theo hướng lên trên, với độ rung tăng dần và cường độ rung tăng lên liên tục trong quá trình quét. Mục tiêu về tần số rung và gia tốc đầu ra phải giống với mục tiêu về nguyên tắc tăng chậm, đạt được trong thời gian ngắn hơn. Hình 10 cho thấy các thông số đầu vào của chế độ rung và một ví dụ về hồ sơ gia tốc đầu ra cho thành phần cơ bản tăng chậm. (Đường màu đỏ khớp với nhãn biên độ ở bên trái và biểu thị mức độ thay đổi của biên độ rung theo thời gian. Đường màu xanh dương trùng khớp với các nhãn tần số ở bên phải và thể hiện tần số rung thay đổi theo thời gian.)
Hình 10. Thông số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc tăng nhanh
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 150 mili giây Dung sai: 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: Giống như Giới hạn: Tương tự như |
Tần suất sao lưu |
Mục tiêu: Giống như Phương án thay thế: Giống như |
Phần tử cơ bản rơi nhanh
Tiếng rơi nhanh là một tiếng quét xuống có biên độ và tần số cao với âm bắt đầu nhẹ. Bạn có thể sử dụng tần số cao hơn làm điểm bắt đầu trong khi động cơ đang tăng tốc để đạt được gia tốc đầu ra cao nhất. Tần số phải giảm liên tục trong quá trình quét, ngay cả trong thời gian tăng. Hình 11 cho thấy các tham số đầu vào và một ví dụ về hồ sơ tăng tốc đầu ra cho quá trình triển khai này. (Đường màu đỏ khớp với nhãn biên độ ở bên trái và biểu thị mức độ thay đổi của biên độ rung theo thời gian. Đường màu xanh dương trùng khớp với các nhãn tần số ở bên phải và thể hiện tần số rung thay đổi theo thời gian.)
Hình 11. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên hàm thả nhanh
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 100 mili giây Dung sai: 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 1 G Giới hạn: Từ 0,5 G đến 2 G |
Tần suất sao lưu |
Mục tiêu: 2 lần đến 1 lần tần số cộng hưởng |
Phần tử cơ bản Thud
Tiếng thud là một hiệu ứng âm thanh trầm, có nhịp điệu, mô phỏng cảm giác vật lý khi gõ vào gỗ rỗng. Nguyên tắc cơ bản này hoạt động trong phạm vi tần số thấp, tương tự như nguyên tắc cơ bản về số lần đánh dấu thấp, để mang lại hiệu ứng rõ ràng hơn. Bạn có thể triển khai nguyên hàm tiếng bịch như một biên độ và tần số giảm dần trong phạm vi tần số thấp hơn (tốt nhất là dưới 100 Hz). Hình 12 cho thấy các tham số đầu vào và một ví dụ về hồ sơ tăng tốc đầu ra cho quá trình triển khai này. (Đường màu đỏ khớp với nhãn biên độ ở bên trái và biểu thị mức độ thay đổi của biên độ rung theo thời gian. Đường màu xanh dương trùng khớp với các nhãn tần số ở bên phải và thể hiện tần số rung thay đổi theo thời gian.)
Hình 12. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc cơ bản thud
Nếu phản hồi tần số của động cơ bị hạn chế, thì một cách triển khai thay thế là bắt đầu bằng tín hiệu truyền động có cường độ tối đa ở tần số cộng hưởng và giảm xuống tần số thấp nhất có thể vẫn cảm nhận được. Phương pháp này có thể yêu cầu tăng cường độ tín hiệu truyền động ở tần số thấp hơn để cảm nhận được rung động.
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 300 mili giây Dung sai: 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 0,25 G Giới hạn: Từ 0,2 G đến 0,5 G |
Tần suất sao lưu |
Mục tiêu: 1/2 đến 1/3 tần số cộng hưởng Phương án thay thế: 1x đến 1/2 tần số cộng hưởng |
Phần tử cơ bản Spin
Thao tác xoay mô phỏng một lực xoay của thao tác xoay nhanh lên và xuống với một điểm nhấn nhẹ ở giữa. Bạn có thể triển khai hiệu ứng xoay bằng cách quét biên độ và tần số một cách độc lập, theo hướng ngược nhau và sau đó là chuyển động ngược lại. Bạn cần sử dụng dải tần số thấp (tốt nhất là dưới 100 Hz). Hình 13 cho thấy các tham số đầu vào và một ví dụ về hồ sơ tăng tốc đầu ra cho quá trình triển khai này. (Đường màu đỏ khớp với nhãn biên độ ở bên trái và biểu thị mức độ thay đổi của biên độ rung theo thời gian. Đường màu xanh dương trùng khớp với các nhãn tần số ở bên phải và thể hiện tần số rung thay đổi theo thời gian.)
Bạn nên gọi thành phần cơ bản xoay hai lần liên tiếp hoặc ba lần trong các thành phần để tạo cảm giác xoay và không ổn định.
Nếu phản hồi tần số của động cơ bị hạn chế, thì một cách triển khai thay thế là thực hiện quét nhanh hình sin từ 1/2x đến 1x tần số cộng hưởng và quay lại. Cộng hưởng động cơ tự động tạo điểm nhấn cho tín hiệu ở giữa.
Hình 13. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên tắc xoay
Tham số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 150 mili giây Dung sai: 20 mili giây |
Tăng tốc đầu ra cao nhất |
Mục tiêu: 0,5 G Giới hạn: Từ 0,25 G đến 0,75 G |
Tần suất sao lưu |
Mục tiêu: 2/3 đến 1/3, sau đó quay lại 1/2 tần số cộng hưởng Cách khác: 2/3 đến 1 lần, sau đó quay lại 1/2 tần số cộng hưởng |