Phần này mô tả các trục cảm biến, cảm biến cơ bản và cảm biến tổng hợp (hoạt động, tư thế, chưa hiệu chỉnh và tương tác).
Trục cảm biến
Các giá trị sự kiện cảm biến từ nhiều cảm biến được biểu thị trong một khung hình cụ thể tĩnh tương ứng với thiết bị.
Trục của thiết bị di động
Sensor API chỉ liên quan đến hướng tự nhiên của màn hình (các trục không được hoán đổi khi hướng màn hình của thiết bị thay đổi.

Hình 1. Hệ toạ độ (tương ứng với thiết bị di động) mà Sensor API sử dụng
Trục ô tô
Trong quá trình triển khai Android Automotive, các trục được xác định liên quan đến khung thân xe. Nguồn gốc của khung tham chiếu xe là tâm của trục sau. Khung tham chiếu của xe được định hướng sao cho:
- Trục X hướng sang phải và nằm trên mặt phẳng ngang, vuông góc với mặt phẳng đối xứng của xe.
- Trục Y hướng về phía trước và nằm trên mặt phẳng ngang.

Hình 2. Hệ toạ độ (tương ứng với một thiết bị trên ô tô) mà Sensor API sử dụng
Khung tham chiếu của xe là một hệ toạ độ thuận tay phải. Do đó, trục Z hướng lên trên.
Trục Z của khung tham chiếu được căn chỉnh theo trọng lực, nghĩa là cả trục X và trục Y đều nằm ngang. Do đó, trục Y không phải lúc nào cũng đi qua trục trước.
Cảm biến ở chân đế
Các loại cảm biến cơ bản được đặt tên theo cảm biến vật lý mà chúng đại diện. Các cảm biến này chuyển tiếp dữ liệu từ một cảm biến vật lý duy nhất (khác với các cảm biến tổng hợp tạo ra dữ liệu từ các cảm biến khác). Sau đây là ví dụ về các loại cảm biến cơ bản:
SENSOR_TYPE_ACCELEROMETER
SENSOR_TYPE_GYROSCOPE
SENSOR_TYPE_MAGNETOMETER
Tuy nhiên, các cảm biến cơ bản không giống và không nên nhầm lẫn với cảm biến vật lý cơ bản của chúng. Dữ liệu từ một cảm biến cơ bản không phải là đầu ra thô của cảm biến vật lý vì các điểm điều chỉnh (chẳng hạn như bù độ lệch và bù nhiệt độ) được áp dụng.
Ví dụ: đặc điểm của một cảm biến cơ bản có thể khác với đặc điểm của cảm biến vật lý cơ bản trong các trường hợp sử dụng sau:
- Một chip con quay hồi chuyển được đánh giá là có phạm vi thiên vị là 1 độ/giây.
- Sau khi hiệu chỉnh tại nhà máy, bù nhiệt độ và bù độ lệch được áp dụng, độ lệch thực tế của cảm biến Android sẽ giảm, có thể xuống đến mức đảm bảo độ lệch dưới 0,01 độ/giây.
- Trong trường hợp này, chúng ta nói rằng cảm biến Android có độ lệch dưới 0,01 độ/giây, mặc dù bảng dữ liệu của cảm biến cơ bản cho biết 1 độ/giây.
- Một khí áp kế có mức tiêu thụ điện năng là 100 uW.
- Vì dữ liệu được tạo cần được truyền từ chip đến SoC, nên chi phí điện thực tế để thu thập dữ liệu từ cảm biến áp suất khí quyển Android có thể cao hơn nhiều, ví dụ: 1000 uW.
- Trong trường hợp này, chúng ta nói rằng cảm biến Android có mức tiêu thụ điện năng là 1000 uW, mặc dù mức tiêu thụ điện năng đo được ở đầu chip khí áp kế là 100 uW.
- Một từ kế tiêu thụ 100 uW khi được hiệu chuẩn, nhưng tiêu thụ nhiều hơn khi hiệu chuẩn.
- Quy trình hiệu chuẩn của cảm biến này có thể yêu cầu kích hoạt con quay hồi chuyển, tiêu thụ 5000 uW và chạy một số thuật toán, tiêu tốn thêm 900 uW.
- Trong trường hợp này, chúng ta nói rằng mức tiêu thụ điện năng tối đa của cảm biến Android (từ kế) là 6000 uW.
- Trong trường hợp này, mức tiêu thụ điện năng trung bình là chỉ số hữu ích hơn và đó là chỉ số được báo cáo trong các đặc tính tĩnh của cảm biến thông qua HAL.
Gia tốc kế
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER)
trả về một cảm biến không đánh thức
Cảm biến gia tốc kế báo cáo gia tốc của thiết bị dọc theo 3 trục cảm biến. Gia tốc đo được bao gồm cả gia tốc vật lý (thay đổi vận tốc) và trọng lực. Thông tin đo lường được báo cáo trong các trường x, y và z của sensors_event_t.acceleration.
Tất cả các giá trị đều ở đơn vị SI (m/s^2) và đo gia tốc của thiết bị trừ đi lực hấp dẫn dọc theo 3 trục cảm biến.
Dưới đây là ví dụ:
- Chuẩn của (x, y, z) phải gần bằng 0 khi ở trạng thái rơi tự do.
- Khi thiết bị nằm ngang trên bàn và bị đẩy ở phía bên trái về phía bên phải, giá trị gia tốc x sẽ dương.
- Khi thiết bị nằm phẳng trên bàn, giá trị gia tốc dọc theo trục z là +9,81 alo, tương ứng với gia tốc của thiết bị (0 m/s^2) trừ đi lực hấp dẫn (-9,81 m/s^2).
- Khi thiết bị nằm phẳng trên bàn và bị đẩy lên trời, giá trị gia tốc sẽ lớn hơn +9,81, tương ứng với gia tốc của thiết bị (+A m/s^2) trừ đi lực hấp dẫn (-9,81 m/s^2).
Các chỉ số được hiệu chỉnh bằng:
- Bù nhiệt độ
- Hiệu chỉnh độ lệch trực tuyến
- Hiệu chỉnh cân trực tuyến
Bạn chỉ được cập nhật chế độ hiệu chỉnh độ lệch và tỷ lệ khi cảm biến ở trạng thái không hoạt động để tránh gây ra sự thay đổi đột ngột về giá trị trong quá trình truyền phát trực tiếp.
Gia tốc kế cũng báo cáo độ chính xác mà thiết bị dự kiến sẽ đạt được thông qua sensors_event_t.acceleration.status
. Hãy xem hằng số
SensorManager
của
SENSOR_STATUS_*
để biết thêm thông tin về các giá trị có thể có cho trường này.
Nhiệt độ xung quanh
Chế độ báo cáo: Khi có thay đổi
getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE)
trả về một cảm biến không đánh thức
Cảm biến này cung cấp nhiệt độ môi trường (phòng) theo độ C.
Cảm biến từ trường
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD)
trả về một cảm biến không đánh thức
SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD
Cảm biến từ trường (còn gọi là từ kế) báo cáo từ trường xung quanh, được đo dọc theo 3 trục cảm biến.
Thông tin đo lường được báo cáo trong các trường x, y và z của sensors_event_t.magnetic
và tất cả các giá trị đều tính bằng microtesla (uT).
Từ kế cũng báo cáo mức độ chính xác mà từ kế dự kiến sẽ đạt được thông qua sensors_event_t.magnetic.status
. Hãy xem hằng số
SensorManager
của
SENSOR_STATUS_*
để biết thêm thông tin về các giá trị có thể có cho trường này.
Các chỉ số được hiệu chỉnh bằng:
- Bù nhiệt độ
- Hiệu chỉnh sắt non tại nhà máy (hoặc trực tuyến)
- Hiệu chuẩn trực tuyến cho từ trường cố định
Con quay hồi chuyển
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GYROSCOPE)
trả về một cảm biến không đánh thức
Cảm biến con quay hồi chuyển báo cáo tốc độ xoay của thiết bị xung quanh 3 trục cảm biến.
Góc xoay dương theo hướng ngược chiều kim đồng hồ (quy tắc bàn tay phải). Tức là, một người quan sát nhìn từ một vị trí dương nào đó trên trục x, y hoặc z tại một thiết bị được đặt ở gốc sẽ báo cáo chuyển động xoay dương nếu thiết bị có vẻ đang xoay ngược chiều kim đồng hồ. Xin lưu ý rằng đây là định nghĩa toán học tiêu chuẩn về phép xoay dương và không phù hợp với định nghĩa về chuyển động xoay của ngành hàng không vũ trụ.
Thông tin đo lường được báo cáo trong các trường x, y và z của sensors_event_t.gyro
và tất cả các giá trị đều tính bằng radian trên giây (rad/s).
Các chỉ số được hiệu chỉnh bằng:
- Bù nhiệt độ
- Bồi thường theo quy mô của nhà máy (hoặc trực tuyến)
- Hiệu chỉnh sai số trực tuyến (để loại bỏ sự sai lệch)
Con quay hồi chuyển cũng báo cáo mức độ chính xác mà con quay hồi chuyển dự kiến sẽ đạt được thông qua sensors_event_t.gyro.status
. Hãy xem hằng số
SensorManager
của
SENSOR_STATUS_*
để biết thêm thông tin về các giá trị có thể có cho trường này.
Không thể mô phỏng con quay hồi chuyển dựa trên từ kế và gia tốc kế, vì điều này sẽ khiến con quay hồi chuyển giảm tính nhất quán và khả năng phản hồi cục bộ. Thiết bị này phải dựa trên một chip con quay hồi chuyển thông thường.
Tần số tim
Chế độ báo cáo: Khi có thay đổi
getDefaultSensor(SENSOR_TYPE_HEART_RATE)
trả về một cảm biến không đánh thức
Cảm biến nhịp tim báo cáo nhịp tim hiện tại của người đang chạm vào thiết bị.
Nhịp tim hiện tại tính bằng số nhịp/phút (BPM) được báo cáo trong sensors_event_t.heart_rate.bpm
và trạng thái của cảm biến được báo cáo trong sensors_event_t.heart_rate.status
. Hãy xem hằng số
SensorManager
của
SENSOR_STATUS_*
để biết thêm thông tin về các giá trị có thể có cho trường này. Cụ thể, khi kích hoạt lần đầu, trừ phi thiết bị không nằm trên cơ thể, trường trạng thái của sự kiện đầu tiên phải được đặt thành SENSOR_STATUS_UNRELIABLE
. Vì cảm biến này là cảm biến khi có thay đổi, nên các sự kiện sẽ được tạo khi và chỉ khi heart_rate.bpm
hoặc heart_rate.status
thay đổi kể từ sự kiện gần đây nhất. Các sự kiện được tạo không nhanh hơn sampling_period
.
Khung này sẽ tự động ghi đè sensor_t.requiredPermission
thành quyền thích hợp để duy trì khả năng tương thích. Khung này sử dụng quyền SENSOR_PERMISSION_READ_HEART_RATE
cho Android 16 trở lên và quyền SENSOR_PERMISSION_BODY_SENSORS
cho Android 15 trở xuống.
Sáng
Reporting-mode: On-change
getDefaultSensor(SENSOR_TYPE_LIGHT)
trả về một cảm biến không đánh thức
Cảm biến ánh sáng báo cáo độ rọi hiện tại theo đơn vị lux SI.
Số liệu đo lường được báo cáo trong sensors_event_t.light
.
Thiết bị lân cận
Reporting-mode: On-change
Thường được xác định là cảm biến đánh thức
getDefaultSensor(SENSOR_TYPE_PROXIMITY)
trả về một cảm biến đánh thức
Cảm biến tiệm cận báo cáo khoảng cách từ cảm biến đến bề mặt nhìn thấy được gần nhất.
Cho đến Android 4.4, các cảm biến tiệm cận luôn là cảm biến đánh thức, đánh thức SoC khi phát hiện thấy sự thay đổi về khoảng cách. Sau Android 4.4, trước tiên, bạn nên triển khai phiên bản đánh thức của cảm biến này, vì đây là phiên bản được dùng để bật và tắt màn hình trong khi gọi điện thoại.
Số đo được báo cáo bằng centimet trong sensors_event_t.distance
. Xin lưu ý rằng một số cảm biến tiệm cận chỉ hỗ trợ phép đo nhị phân "gần" hoặc "xa".
Trong trường hợp này, cảm biến sẽ báo cáo giá trị sensor_t.maxRange
ở trạng thái "xa" và giá trị nhỏ hơn sensor_t.maxRange
ở trạng thái "gần".
Áp lực
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_PRESSURE)
trả về một cảm biến không đánh thức
Cảm biến áp suất (còn gọi là khí áp kế) báo cáo áp suất khí quyển theo đơn vị hectopascal (hPa).
Các chỉ số được hiệu chỉnh bằng
- Bù nhiệt độ
- Hiệu chỉnh độ lệch của nhà máy
- Hiệu chuẩn ở quy mô nhà máy
Thường dùng áp kế để ước tính những thay đổi về độ cao. Để ước tính độ cao tuyệt đối, bạn phải sử dụng áp suất mực nước biển (thay đổi tuỳ theo thời tiết) làm điểm tham chiếu.
Độ ẩm tương đối
Reporting-mode: On-change
getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY)
trả về một cảm biến không đánh thức
Cảm biến độ ẩm tương đối đo độ ẩm tương đối của không khí xung quanh và trả về giá trị theo phần trăm.
Loại cảm biến kết hợp
Cảm biến kết hợp tạo ra dữ liệu bằng cách xử lý và/hoặc kết hợp dữ liệu từ một hoặc nhiều cảm biến thực. (Mọi cảm biến không phải là cảm biến cơ bản đều được gọi là cảm biến tổng hợp.) Sau đây là ví dụ về các cảm biến kết hợp:
- Bộ phát hiện bước và chuyển động đáng kể, thường dựa trên gia tốc kế, nhưng cũng có thể dựa trên các cảm biến khác nếu mức tiêu thụ điện năng và độ chính xác ở mức chấp nhận được.
- Véc tơ xoay trò chơi, dựa trên gia tốc kế và con quay hồi chuyển.
- Con quay hồi chuyển chưa được hiệu chỉnh, tương tự như cảm biến cơ bản của con quay hồi chuyển, nhưng quá trình hiệu chỉnh độ lệch được báo cáo riêng thay vì được điều chỉnh trong quá trình đo lường.
Giống như các cảm biến cơ bản, đặc điểm của cảm biến tổng hợp bắt nguồn từ đặc điểm của dữ liệu cuối cùng. Ví dụ: mức tiêu thụ năng lượng của một vectơ xoay trò chơi có thể bằng tổng mức tiêu thụ năng lượng của chip gia tốc kế, chip con quay hồi chuyển, chip xử lý dữ liệu và các bus truyền dữ liệu. Một ví dụ khác là độ lệch của vectơ xoay trò chơi phụ thuộc vào chất lượng của thuật toán hiệu chuẩn cũng như đặc điểm của cảm biến vật lý.
Bảng sau đây liệt kê các loại cảm biến kết hợp hiện có. Mỗi cảm biến kết hợp đều dựa vào dữ liệu của một hoặc nhiều cảm biến vật lý. Tránh chọn các cảm biến vật lý cơ bản khác để ước chừng kết quả vì chúng mang lại trải nghiệm kém cho người dùng.
Loại cảm biến | Danh mục | Cảm biến vật lý cơ bản | Chế độ báo cáo |
---|---|---|---|
Thái độ |
Gia tốc kế, con quay hồi chuyển, KHÔNG ĐƯỢC SỬ DỤNG từ kế |
Liên tục |
|
Thái độ |
Gia tốc kế, từ kế, KHÔNG ĐƯỢC SỬ DỤNG con quay hồi chuyển |
Liên tục |
|
Cử chỉ xem nhanh ![]() |
Tương tác |
Không xác định |
One-shot |
Thái độ |
Gia tốc kế, con quay hồi chuyển (nếu có) hoặc từ kế (nếu không có con quay hồi chuyển) |
Liên tục |
|
Chưa được hiệu chỉnh |
Con quay hồi chuyển |
Liên tục |
|
Hoạt động |
Gia tốc kế, con quay hồi chuyển (nếu có) hoặc từ kế (nếu không có con quay hồi chuyển) |
Liên tục |
|
Chưa được hiệu chỉnh |
Từ kế |
Liên tục |
|
Orientation (không dùng nữa) |
Thái độ |
Gia tốc kế, từ kế, con quay hồi chuyển (nếu có) |
Liên tục |
Tương tác |
Không xác định |
One-shot |
|
Thái độ |
Gia tốc kế, từ kế, con quay hồi chuyển (nếu có) |
Liên tục |
|
Hoạt động |
Gia tốc kế (hoặc một cảm biến khác miễn là có mức tiêu thụ điện năng rất thấp) |
One-shot |
|
Hoạt động |
Gia tốc kế |
Khi thay đổi |
|
Hoạt động |
Gia tốc kế |
Đặc biệt |
|
Hoạt động |
Gia tốc kế |
Đặc biệt |
|
Tương tác |
Không xác định |
One-shot |
= Cảm biến tiêu thụ ít năng lượng
Cảm biến tổng hợp hoạt động
Gia tốc tuyến tính
Cảm biến vật lý cơ bản: Gia tốc kế và (nếu có) con quay hồi chuyển (hoặc từ kế nếu không có con quay hồi chuyển)
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION)
trả về một cảm biến không đánh thức
Cảm biến gia tốc tuyến tính báo cáo gia tốc tuyến tính của thiết bị trong khung cảm biến, không bao gồm trọng lực.
Về cơ bản, kết quả là: đầu ra của gia tốc kế trừ đi đầu ra của cảm biến trọng lực. Thông tin này được báo cáo theo đơn vị m/s^2 trong các trường x, y và z của sensors_event_t.acceleration
.
Số đo trên tất cả các trục phải gần bằng 0 khi thiết bị không chuyển động.
Nếu thiết bị có con quay hồi chuyển, thì cảm biến gia tốc tuyến tính phải sử dụng con quay hồi chuyển và gia tốc kế làm dữ liệu đầu vào.
Nếu thiết bị không có con quay hồi chuyển, thì cảm biến gia tốc tuyến tính phải sử dụng gia tốc kế và từ kế làm dữ liệu đầu vào.
Chuyển động đáng kể
Cảm biến vật lý cơ bản: Gia tốc kế (hoặc một cảm biến khác miễn là có mức tiêu thụ điện năng thấp)
Chế độ báo cáo: Một lần
Công suất thấp
Chỉ triển khai phiên bản đánh thức của cảm biến này.
getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION)
trả về một cảm biến đánh thức
Một cảm biến phát hiện chuyển động đáng kể sẽ kích hoạt khi phát hiện thấy chuyển động đáng kể: chuyển động có thể dẫn đến thay đổi vị trí của người dùng.
Sau đây là ví dụ về những chuyển động đáng kể như vậy:
- Đi bộ hoặc đạp xe
- Ngồi trên ô tô, xe khách hoặc tàu đang di chuyển
Ví dụ về những tình huống không kích hoạt chuyển động đáng kể:
- Điện thoại trong túi và người đó không di chuyển
- Điện thoại đặt trên bàn và bàn rung nhẹ do có xe cộ hoặc máy giặt ở gần
Ở cấp độ cao, thiết bị phát hiện chuyển động quan trọng được dùng để giảm mức tiêu thụ năng lượng của quá trình xác định vị trí. Khi phát hiện thấy thiết bị đang ở trạng thái tĩnh, các thuật toán bản địa hoá có thể chuyển sang chế độ tiêu thụ ít năng lượng, trong đó các thuật toán này dựa vào chuyển động đáng kể để đánh thức thiết bị khi người dùng thay đổi vị trí.
Cảm biến này phải có công suất thấp. Điều này đánh đổi mức tiêu thụ điện năng, có thể dẫn đến một số lượng nhỏ kết quả âm tính giả. Việc này được thực hiện vì một số lý do:
- Mục tiêu của cảm biến này là tiết kiệm pin.
- Việc kích hoạt một sự kiện khi người dùng không di chuyển (dương tính giả) sẽ tốn nhiều năng lượng, vì vậy bạn nên tránh điều này.
- Không kích hoạt sự kiện khi người dùng đang di chuyển (âm tính giả) là chấp nhận được miễn là điều này không xảy ra nhiều lần. Nếu người dùng đã đi bộ trong 10 giây, thì việc không kích hoạt sự kiện trong vòng 10 giây đó là không chấp nhận được.
Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Thiết bị phát hiện bước
Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể có các cảm biến khác miễn là công suất thấp)
Chế độ báo cáo: Đặc biệt (mỗi bước thực hiện một sự kiện)
Công suất thấp
getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR)
trả về một cảm biến không đánh thức
Trình phát hiện bước tạo ra một sự kiện mỗi khi người dùng thực hiện một bước.
Dấu thời gian của sự kiện sensors_event_t.timestamp
tương ứng với thời điểm bàn chân chạm đất, tạo ra sự thay đổi lớn về gia tốc.
So với bộ đếm bước, bộ phát hiện bước phải có độ trễ thấp hơn (dưới 2 giây). Cả trình phát hiện bước và bộ đếm bước đều phát hiện khi người dùng đang đi bộ, chạy và đi bộ lên cầu thang. Các sự kiện này không được kích hoạt khi người dùng đang đi xe đạp, lái xe hoặc ở trong các phương tiện khác.
Cảm biến này phải có công suất thấp. Tức là nếu không thể phát hiện bước bằng phần cứng, thì bạn không nên xác định cảm biến này. Cụ thể, khi bộ phát hiện bước được kích hoạt và gia tốc kế không được kích hoạt, chỉ các bước mới được kích hoạt gián đoạn (không phải mọi chỉ số gia tốc kế).
sampling_period_ns
không ảnh hưởng đến các bộ cảm biến bước.
Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Máy đếm bước
Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể có các cảm biến khác miễn là công suất thấp)
Reporting-mode: On-change
Công suất thấp
getDefaultSensor(SENSOR_TYPE_STEP_COUNTER)
trả về một cảm biến không đánh thức
Bộ đếm bước sẽ báo cáo số bước mà người dùng đã thực hiện kể từ lần khởi động lại gần đây nhất trong khi được kích hoạt.
Số liệu đo lường được báo cáo dưới dạng uint64_t
trong sensors_event_t.step_counter
và chỉ được đặt lại về 0 khi hệ thống khởi động lại.
Dấu thời gian của sự kiện được đặt thành thời gian thực hiện bước cuối cùng cho sự kiện đó.
Xem loại cảm biến Bộ phát hiện bước để biết ý nghĩa của thời gian một bước.
So với bộ phát hiện bước, bộ đếm bước có thể có độ trễ cao hơn (lên đến 10 giây). Nhờ độ trễ này, cảm biến có độ chính xác cao; số bước sau một ngày đo lường đầy đủ phải nằm trong phạm vi 10% so với số bước thực tế. Cả trình phát hiện bước và bộ đếm bước đều phát hiện thời điểm người dùng đang đi bộ, chạy và đi bộ lên cầu thang. Các thông báo này không được kích hoạt khi người dùng đang đi xe đạp, lái xe hoặc ở trong các phương tiện khác.
Phần cứng phải đảm bảo số bước nội bộ không bao giờ vượt quá. Kích thước tối thiểu của bộ đếm nội bộ của phần cứng phải là 16 bit. Trong trường hợp sắp tràn (tối đa sau khoảng 2^16 bước), SoC có thể được đánh thức để trình điều khiển có thể thực hiện việc duy trì bộ đếm.
Như đã nêu trong phần Tương tác, trong khi hoạt động, cảm biến này sẽ không làm gián đoạn bất kỳ cảm biến nào khác, đặc biệt là gia tốc kế.
Nếu một thiết bị cụ thể không hỗ trợ các chế độ hoạt động này, thì HAL không được báo cáo loại cảm biến này. Tức là bạn không được phép "mô phỏng" cảm biến này trong HAL.
Cảm biến này phải có công suất thấp. Tức là nếu không thể thực hiện tính năng phát hiện bước bằng phần cứng, thì bạn không nên xác định cảm biến này. Cụ thể, khi bộ đếm bước được kích hoạt và gia tốc kế không được kích hoạt, chỉ các bước mới được kích hoạt các gián đoạn (không phải dữ liệu gia tốc kế).
Thiết bị phát hiện độ nghiêng
Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể có các cảm biến khác miễn là công suất thấp)
Chế độ báo cáo: Đặc biệt
Công suất thấp
Chỉ triển khai phiên bản đánh thức của cảm biến này.
getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR)
trả về một cảm biến đánh thức
Trình phát hiện độ nghiêng sẽ tạo một sự kiện mỗi khi phát hiện thấy một sự kiện nghiêng.
Sự kiện nghiêng được xác định bằng hướng thay đổi trọng lực trung bình trong khoảng thời gian 2 giây ít nhất 35 độ kể từ khi kích hoạt hoặc sự kiện gần đây nhất do cảm biến tạo ra. Sau đây là thuật toán:
reference_estimated_gravity
= giá trị trung bình của các phép đo gia tốc kế trong giây đầu tiên sau khi kích hoạt hoặc trọng lực ước tính khi sự kiện nghiêng gần đây nhất được tạo.current_estimated_gravity
= giá trị trung bình của các phép đo gia tốc kế trong 2 giây qua.- Kích hoạt khi
angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees
Gia tốc lớn mà không có sự thay đổi về hướng điện thoại sẽ không kích hoạt sự kiện nghiêng. Ví dụ: một cú rẽ gấp hoặc tăng tốc mạnh khi lái xe không được kích hoạt sự kiện nghiêng, mặc dù góc của gia tốc trung bình có thể thay đổi hơn 35 độ.
Thông thường, cảm biến này chỉ được triển khai với sự trợ giúp của một gia tốc kế. Bạn cũng có thể sử dụng các cảm biến khác nếu chúng không làm tăng đáng kể mức tiêu thụ điện. Đây là một cảm biến tiêu thụ ít năng lượng, cho phép SoC chuyển sang chế độ tạm ngưng. Không mô phỏng cảm biến này trong HAL. Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Cảm biến tổng hợp về tư thế
Vectơ xoay
Các cảm biến vật lý cơ bản: Gia tốc kế, từ kế và con quay hồi chuyển
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR)
trả về một cảm biến không đánh thức
Cảm biến vectơ xoay báo cáo hướng của thiết bị so với khung toạ độ Đông-Bắc-Lên. Thông tin này thường được thu thập bằng cách tích hợp các chỉ số của gia tốc kế, con quay hồi chuyển và từ kế. Hệ toạ độ Đông – Bắc – Lên được xác định là cơ sở trực giao trực tiếp, trong đó:
- X chỉ về hướng đông và tiếp tuyến với mặt đất.
- Y chỉ hướng bắc và tiếp tuyến với mặt đất.
- Z hướng lên trời và vuông góc với mặt đất.
Hướng của điện thoại được biểu thị bằng độ xoay cần thiết để căn chỉnh toạ độ Đông-Bắc-Lên với toạ độ của điện thoại. Tức là việc áp dụng phép xoay cho khung thế giới (X, Y, Z) sẽ căn chỉnh chúng với toạ độ điện thoại (x, y, z).
Bạn có thể xem quá trình xoay là xoay điện thoại theo một góc theta quanh trục rot_axis
để chuyển từ hướng tham chiếu của thiết bị (căn chỉnh theo hướng Đông – Bắc – Lên) sang hướng hiện tại của thiết bị. Phép xoay được mã hoá dưới dạng 4 thành phần x, y, z, w không có đơn vị của một quaternion đơn vị:
sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
sensors_event_t.data[3] = cos(theta/2)
Trong trường hợp:
- Các trường x, y và z của
rot_axis
là toạ độ Đông-Bắc-Lên của một vectơ có độ dài đơn vị biểu thị trục xoay theta
là góc xoay
Bộ bốn là một bộ bốn đơn vị: Bộ bốn phải có chuẩn 1
.
Nếu không đảm bảo điều này, ứng dụng sẽ có hành vi thất thường.
Ngoài ra, cảm biến này còn báo cáo độ chính xác ước tính của hướng:
sensors_event_t.data[4] = estimated_accuracy
(tính bằng radian)
Lỗi tiêu đề phải dưới estimated_accuracy
95% thời gian. Cảm biến này phải sử dụng con quay hồi chuyển làm phương thức nhập chính để thay đổi hướng.
Cảm biến này cũng sử dụng đầu vào từ gia tốc kế và từ kế để bù cho độ lệch của con quay hồi chuyển, đồng thời không thể triển khai chỉ bằng gia tốc kế và từ kế.
Vectơ xoay trò chơi
Cảm biến vật lý cơ bản: Gia tốc kế và con quay hồi chuyển (không có từ kế)
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR)
trả về một cảm biến không đánh thức
Cảm biến vectơ xoay trò chơi tương tự như cảm biến vectơ xoay nhưng không sử dụng từ trường. Do đó, trục Y không hướng về phía bắc mà hướng về một điểm tham chiếu khác. Tham chiếu đó được phép trôi theo cùng một thứ tự độ lớn khi con quay hồi chuyển trôi xung quanh trục Z.
Hãy xem cảm biến Vectơ xoay để biết thông tin chi tiết về cách đặt sensors_event_t.data[0-3]
. Cảm biến này không báo cáo độ chính xác ước tính của tiêu đề: sensors_event_t.data[4]
được dành riêng và phải được đặt thành 0
.
Trong trường hợp lý tưởng, điện thoại được xoay và trả về cùng hướng ngoài đời thực sẽ báo cáo cùng một vectơ xoay trò chơi.
Cảm biến này phải dựa trên con quay hồi chuyển và gia tốc kế. Nó không thể sử dụng từ kế làm dữ liệu đầu vào, ngoài việc gián tiếp thông qua việc ước tính độ lệch con quay hồi chuyển.
Gravity (Trọng lực)
Cảm biến vật lý cơ bản: Gia tốc kế và (nếu có) con quay hồi chuyển (hoặc từ kế nếu không có con quay hồi chuyển)
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GRAVITY)
trả về một cảm biến không đánh thức
Cảm biến trọng lực báo cáo hướng và độ lớn của trọng lực trong toạ độ của thiết bị.
Các thành phần vectơ trọng lực được báo cáo theo m/s^2 trong các trường x, y và z của sensors_event_t.acceleration
.
Khi thiết bị ở trạng thái nghỉ, đầu ra của cảm biến trọng lực phải giống hệt đầu ra của gia tốc kế. Trên Trái Đất, độ lớn này là khoảng 9,8 m/s^2.
Nếu thiết bị có con quay hồi chuyển, thì cảm biến trọng lực phải sử dụng con quay hồi chuyển và gia tốc kế làm dữ liệu đầu vào.
Nếu thiết bị không có con quay hồi chuyển, thì cảm biến trọng lực phải sử dụng gia tốc kế và từ kế làm dữ liệu đầu vào.
Vectơ xoay địa từ
Cảm biến vật lý cơ bản: Gia tốc kế và từ kế (không có con quay hồi chuyển)
Reporting-mode: Continuous
Công suất thấp
getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR)
trả về một cảm biến không đánh thức
Vectơ xoay từ trường tương tự như cảm biến vectơ xoay nhưng sử dụng một từ kế và không có con quay hồi chuyển.
Cảm biến này phải dựa trên từ kế. Bạn không thể triển khai tính năng này bằng con quay hồi chuyển và cảm biến này không thể sử dụng dữ liệu đầu vào từ con quay hồi chuyển.
Hãy xem cảm biến Vectơ xoay để biết thông tin chi tiết về cách đặt sensors_event_t.data[0-4]
.
Giống như đối với cảm biến vectơ xoay, sai số hướng phải nhỏ hơn độ chính xác ước tính (sensors_event_t.data[4]
) 95% thời gian.
Cảm biến này phải có công suất thấp, vì vậy, bạn phải triển khai cảm biến này trong phần cứng.
Hướng (không dùng nữa)
Cảm biến vật lý cơ bản: Gia tốc kế, từ kế và con quay hồi chuyển (nếu có)
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ORIENTATION)
trả về một cảm biến không đánh thức
Lưu ý: Đây là một loại cảm biến cũ đã ngừng hoạt động trong Android SDK. Cảm biến này đã được thay thế bằng cảm biến vectơ xoay được xác định rõ ràng hơn. Sử dụng cảm biến vectơ xoay thay vì cảm biến hướng bất cứ khi nào có thể.
Cảm biến hướng báo cáo tư thế của thiết bị. Các phép đo được báo cáo theo độ trong các trường x, y và z của sensors_event_t.orientation
:
sensors_event_t.orientation.x
: phương vị, góc giữa hướng bắc từ trường và trục Y, xung quanh trục Z (0<=azimuth<360
). 0=Bắc, 90=Đông, 180=Nam, 270=Tây.sensors_event_t.orientation.y
: độ nghiêng, xoay quanh trục X (-180<=pitch<=180
), với các giá trị dương khi trục Z di chuyển về phía trục Y.sensors_event_t.orientation.z
: xoay, xoay quanh trục Y (-90<=roll<=90
), với các giá trị dương khi trục X di chuyển về phía trục Z.
Xin lưu ý rằng vì lý do lịch sử, góc xoay có giá trị dương theo chiều kim đồng hồ. (Về mặt toán học, giá trị này phải dương theo chiều ngược chiều kim đồng hồ):

Hình 3. Hướng tương đối so với thiết bị
Định nghĩa này khác với định nghĩa về góc lệch ngang, góc chúi và góc nghiêng được dùng trong ngành hàng không, trong đó trục X nằm dọc theo cạnh dài của máy bay (từ đuôi đến mũi).
Cảm biến hướng cũng báo cáo mức độ chính xác mà cảm biến dự kiến sẽ đạt được thông qua sensors_event_t.orientation.status
. Hãy xem hằng số
SensorManager
của
SENSOR_STATUS_*
để biết thêm thông tin về các giá trị có thể có cho trường này.
Cảm biến chưa được hiệu chuẩn
Các cảm biến chưa được hiệu chỉnh cung cấp nhiều kết quả thô hơn và có thể có một số sai lệch nhưng cũng chứa ít "bước nhảy" hơn từ các điểm điều chỉnh được áp dụng thông qua quá trình hiệu chỉnh. Một số ứng dụng có thể ưu tiên những kết quả chưa được hiệu chỉnh này vì chúng mượt mà và đáng tin cậy hơn. Ví dụ: nếu một ứng dụng đang cố gắng thực hiện tính năng kết hợp cảm biến của riêng mình, thì việc đưa vào các chế độ hiệu chuẩn có thể làm sai lệch kết quả.
Gia tốc kế chưa được hiệu chỉnh
Cảm biến vật lý cơ bản: Gia tốc kế
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED)
trả về một cảm biến không đánh thức
Cảm biến gia tốc kế chưa được hiệu chỉnh sẽ báo cáo gia tốc của thiết bị dọc theo 3 trục cảm biến mà không có bất kỳ hoạt động điều chỉnh độ lệch nào (độ lệch của nhà máy và hoạt động bù nhiệt độ được áp dụng cho các phép đo chưa được hiệu chỉnh), cùng với ước tính độ lệch.
Tất cả các giá trị đều tính bằng đơn vị SI (m/s^2) và được báo cáo trong các trường của sensors_event_t.uncalibrated_accelerometer
:
x_uncalib
: gia tốc (không bù độ lệch) dọc theo trục Xy_uncalib
: gia tốc (không bù độ lệch) dọc theo trục Yz_uncalib
: gia tốc (không bù độ lệch) dọc theo trục Zx_bias
: độ lệch ước tính dọc theo trục Xy_bias
: độ lệch ước tính dọc theo trục Yz_bias
: độ lệch ước tính dọc theo trục Z
Con quay hồi chuyển chưa được hiệu chỉnh
Cảm biến vật lý cơ bản: Con quay hồi chuyển
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED)
trả về một cảm biến không đánh thức
Con quay hồi chuyển chưa được hiệu chỉnh sẽ báo cáo tốc độ xoay quanh các trục cảm biến mà không áp dụng tính năng bù độ lệch cho các trục đó, cùng với một ước tính độ lệch. Tất cả các giá trị đều tính bằng radian/giây và được báo cáo trong các trường của sensors_event_t.uncalibrated_gyro
:
x_uncalib
: tốc độ góc (không bù độ lệch) xung quanh trục Xy_uncalib
: tốc độ góc (không bù độ lệch) xung quanh trục Yz_uncalib
: tốc độ góc (không bù độ lệch) quanh trục Zx_bias
: độ lệch ước tính xung quanh trục Xy_bias
: độ lệch ước tính xung quanh trục Yz_bias
: độ lệch ước tính xung quanh trục Z
Về mặt khái niệm, phép đo chưa được hiệu chỉnh là tổng của phép đo đã hiệu chỉnh và ước tính độ lệch: _uncalibrated = _calibrated + _bias
.
Các giá trị x_bias
, y_bias
và z_bias
dự kiến sẽ tăng ngay khi ước tính về độ lệch thay đổi và các giá trị này sẽ ổn định trong thời gian còn lại.
Hãy xem định nghĩa về cảm biến con quay hồi chuyển để biết thông tin chi tiết về hệ toạ độ được dùng.
Bạn phải áp dụng chế độ hiệu chuẩn tại nhà máy và bù nhiệt cho các phép đo. Ngoài ra, bạn phải triển khai tính năng ước tính độ lệch của con quay hồi chuyển để có thể báo cáo các thông tin ước tính hợp lý trong x_bias
, y_bias
và z_bias
. Nếu quá trình triển khai không thể ước tính độ lệch, thì bạn không được triển khai cảm biến này.
Nếu có cảm biến này, thì cảm biến Con quay hồi chuyển tương ứng cũng phải có và cả hai cảm biến phải dùng chung các giá trị sensor_t.name
và sensor_t.vendor
.
Từ trường chưa được hiệu chỉnh
Cảm biến vật lý cơ bản: Từ kế
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED)
trả về một cảm biến không đánh thức
Cảm biến từ trường chưa hiệu chỉnh báo cáo từ trường xung quanh cùng với ước tính hiệu chuẩn sắt từ. Tất cả các giá trị đều tính bằng micro-Tesla (uT) và được báo cáo trong các trường của sensors_event_t.uncalibrated_magnetic
:
x_uncalib
: từ trường (không có bù trừ sắt từ) dọc theo trục Xy_uncalib
: từ trường (không có tính năng bù sắt từ) dọc theo trục Yz_uncalib
: từ trường (không có bù sắt từ) dọc theo trục Zx_bias
: độ lệch ước tính của từ trường cố định dọc theo trục Xy_bias
: độ lệch ước tính của từ trường cố định dọc theo trục Yz_bias
: độ lệch ước tính của sắt từ cứng dọc theo trục Z
Về mặt khái niệm, phép đo chưa được hiệu chỉnh là tổng của phép đo đã hiệu chỉnh và ước tính độ lệch: _uncalibrated = _calibrated + _bias
.
Từ kế chưa được hiệu chỉnh cho phép các thuật toán cấp cao hơn xử lý việc ước tính sắt từ không chính xác. Các giá trị x_bias
, y_bias
và z_bias
dự kiến sẽ tăng ngay khi ước tính về sắt từ thay đổi và các giá trị này sẽ ổn định trong thời gian còn lại.
Bạn phải áp dụng chế độ hiệu chuẩn sắt non và bù nhiệt độ cho các phép đo. Ngoài ra, bạn phải triển khai tính năng ước tính từ tính để có thể báo cáo các giá trị ước tính hợp lý trong x_bias
, y_bias
và z_bias
. Nếu quá trình triển khai không thể ước tính độ lệch, thì bạn không được triển khai cảm biến này.
Nếu có cảm biến này, thì cảm biến từ trường tương ứng cũng phải có và cả hai cảm biến phải dùng chung các giá trị sensor_t.name
và sensor_t.vendor
.
Góc bản lề
Reporting-mode: On-change
getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE)
trả về một cảm biến đánh thức
Cảm biến góc bản lề đo góc (theo độ) giữa hai bộ phận không thể tách rời của thiết bị. Chuyển động của bản lề do loại cảm biến này đo được dự kiến sẽ thay đổi cách người dùng có thể tương tác với thiết bị, ví dụ: bằng cách mở hoặc hiển thị màn hình.
Cảm biến tổng hợp tương tác
Một số cảm biến chủ yếu được dùng để phát hiện các hoạt động tương tác với người dùng. Chúng tôi không xác định cách triển khai các cảm biến đó, nhưng chúng phải có mức tiêu thụ điện năng thấp và nhà sản xuất thiết bị có trách nhiệm xác minh chất lượng của các cảm biến đó về trải nghiệm người dùng.
Cử chỉ đánh thức
Cảm biến vật lý cơ bản: Không xác định (mọi thứ có công suất thấp)
Chế độ báo cáo: Một lần
Công suất thấp
Chỉ triển khai phiên bản đánh thức của cảm biến này.
getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE)
trả về một cảm biến đánh thức
Cảm biến cử chỉ đánh thức cho phép đánh thức thiết bị dựa trên một chuyển động cụ thể của thiết bị. Khi cảm biến này kích hoạt, thiết bị sẽ hoạt động như thể nút nguồn được nhấn, màn hình sẽ bật. Người dùng có thể tắt hành vi này (bật màn hình khi cảm biến này kích hoạt) trong phần cài đặt thiết bị. Các thay đổi trong phần cài đặt không ảnh hưởng đến hành vi của cảm biến: chỉ ảnh hưởng đến việc khung có bật màn hình khi kích hoạt hay không. Cử chỉ thực tế cần phát hiện không được chỉ định và có thể do nhà sản xuất thiết bị chọn.
Cảm biến này phải có công suất thấp vì có khả năng được kích hoạt 24/7.
Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Cử chỉ nhấc lên
Cảm biến vật lý cơ bản: Không xác định (mọi thứ có công suất thấp)
Chế độ báo cáo: Một lần
Công suất thấp
Chỉ triển khai phiên bản đánh thức của cảm biến này.
getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE)
trả về một cảm biến đánh thức
Cảm biến cử chỉ nhấc lên sẽ kích hoạt khi thiết bị được nhấc lên, bất kể trước đó thiết bị ở đâu (trên bàn, trong túi, trong túi xách).
Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Cử chỉ xem nhanh
Cảm biến vật lý cơ bản: Không xác định (mọi thứ có công suất thấp)
Chế độ báo cáo: Một lần
Công suất thấp
Chỉ triển khai phiên bản đánh thức của cảm biến này.
getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE)
trả về một cảm biến đánh thức
Cảm biến cử chỉ xem nhanh cho phép bật màn hình trong thời gian ngắn để người dùng xem nhanh nội dung trên màn hình dựa trên một chuyển động cụ thể. Khi cảm biến này kích hoạt, thiết bị sẽ tạm thời bật màn hình để cho phép người dùng xem nhanh thông báo hoặc nội dung khác trong khi thiết bị vẫn ở trạng thái khoá không tương tác (ngủ), sau đó màn hình sẽ tắt lại. Người dùng có thể tắt hành vi này (tức là màn hình sẽ bật trong thời gian ngắn khi cảm biến này kích hoạt) trong phần cài đặt thiết bị. Các thay đổi trong phần cài đặt không ảnh hưởng đến hành vi của cảm biến: chỉ ảnh hưởng đến việc khung hình có bật màn hình trong thời gian ngắn khi kích hoạt hay không. Cử chỉ thực tế cần phát hiện không được chỉ định và có thể do nhà sản xuất thiết bị chọn.
Cảm biến này phải có công suất thấp vì có khả năng được kích hoạt 24/7.
Mỗi sự kiện cảm biến báo cáo 1
trong sensors_event_t.data[0]
.
Cảm biến IMU có số trục hạn chế
Có trên Android 13, các cảm biến IMU có số trục hạn chế là những cảm biến hỗ trợ các trường hợp sử dụng mà không phải cả 3 trục (x, y, z) đều có sẵn. Các loại IMU tiêu chuẩn trong Android (chẳng hạn như
SENSOR_TYPE_ACCELEROMETER
và
SENSOR_TYPE_GYROSCOPE
) giả định rằng cả 3 trục đều được hỗ trợ. Tuy nhiên, không phải kiểu dáng và thiết bị nào cũng hỗ trợ gia tốc kế 3 trục và con quay hồi chuyển 3 trục.
Gia tốc kế bị hạn chế số trục
Cảm biến vật lý cơ bản: Gia tốc kế
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES)
trả về một cảm biến không đánh thức
Cảm biến gia tốc kế có số lượng trục hạn chế tương đương với TYPE_ACCELEROMETER
nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.
3 giá trị sự kiện cảm biến cuối cùng mà cảm biến báo cáo cho biết liệu giá trị gia tốc cho các trục x, y và z có được hỗ trợ hay không. Giá trị 1.0
cho biết trục được hỗ trợ và giá trị 0
cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo và các giá trị không thay đổi trong thời gian chạy.
Nhà sản xuất thiết bị phải đặt giá trị gia tốc cho các trục không dùng đến thành 0
, thay vì có các giá trị không xác định.
Con quay hồi chuyển bị giới hạn trục
Cảm biến vật lý cơ bản: Con quay hồi chuyển
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES)
trả về một cảm biến không đánh thức
Cảm biến con quay hồi chuyển có số lượng trục hạn chế tương đương với TYPE_GYROSCOPE
nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.
3 giá trị sự kiện cảm biến cuối cùng mà cảm biến báo cáo cho biết liệu giá trị tốc độ góc cho các trục x, y và z có được hỗ trợ hay không. Giá trị 1.0
cho biết trục được hỗ trợ và giá trị 0
cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo và các giá trị không thay đổi trong thời gian chạy.
Nhà sản xuất thiết bị phải đặt giá trị tốc độ góc cho các trục không dùng đến thành 0
.
Cảm biến gia tốc có số trục hạn chế chưa được hiệu chỉnh
Cảm biến vật lý cơ bản: Gia tốc kế
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED)
trả về một cảm biến không đánh thức
Cảm biến gia tốc kế chưa hiệu chỉnh có số lượng trục hạn chế tương đương với TYPE_ACCELEROMETER_UNCALIBRATED
nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.
3 giá trị sự kiện cảm biến cuối cùng mà cảm biến báo cáo cho biết liệu các giá trị gia tốc và độ lệch cho các trục x, y và z có được hỗ trợ hay không. Giá trị 1.0
cho biết trục được hỗ trợ và giá trị 0
cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo và các giá trị không thay đổi trong thời gian chạy.
Nhà sản xuất thiết bị phải đặt giá trị gia tốc và độ lệch cho các trục không dùng đến thành 0
.
Con quay hồi chuyển chưa được hiệu chỉnh, số trục hạn chế
Cảm biến vật lý cơ bản: Con quay hồi chuyển
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED)
trả về một cảm biến không đánh thức
Cảm biến chưa hiệu chỉnh có số lượng trục hạn chế của con quay hồi chuyển tương đương với TYPE_GYROSCOPE_UNCALIBRATED
nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.
3 giá trị sự kiện cảm biến cuối cùng mà cảm biến báo cáo cho biết liệu cảm biến có hỗ trợ tốc độ góc và giá trị trôi cho các trục x, y và z hay không. Giá trị 1.0
cho biết trục được hỗ trợ và giá trị 0
cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo và các giá trị không thay đổi trong thời gian chạy.
Nhà sản xuất thiết bị phải đặt giá trị tốc độ góc và độ lệch cho các trục không dùng đến thành 0
.
IMU trục giới hạn hỗn hợp
Các cảm biến vật lý cơ bản: Mọi tổ hợp gia tốc kế 3 trục, con quay hồi chuyển 3 trục, gia tốc kế 3 trục chưa hiệu chỉnh và cảm biến con quay hồi chuyển 3 trục chưa hiệu chỉnh.
Reporting-mode: Continuous
Cảm biến IMU có trục kết hợp bị hạn chế tương đương với cảm biến IMU có trục bị hạn chế, nhưng thay vì được hỗ trợ tại HAL, cảm biến này sẽ chuyển đổi dữ liệu cảm biến 3 trục thành các biến thể tương đương có trục bị hạn chế. Các cảm biến tổng hợp này chỉ được bật cho các thiết bị ô tô.
Bảng sau đây minh hoạ ví dụ về việc chuyển đổi từ một gia tốc kế 3 trục tiêu chuẩn sang một gia tốc kế có trục giới hạn kết hợp.
Giá trị SensorEvent cho SENSOR_TYPE_ACCELEROMETER | Ví dụ về SensorEvent SENSOR_TYPE_ACCELEROMETER | Composite SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES SensorEvent |
---|---|---|
values[0] | -0,065 |
-0,065 |
values[1] | 0,078 |
0,078 |
values[2] | 9.808 |
9.808 |
values[3] | Không áp dụng |
1.0 |
values[4] | Không áp dụng |
1.0 |
values[5] | Không áp dụng |
1.0 |
Cảm biến ô tô
Các cảm biến hỗ trợ các trường hợp sử dụng trong ngành ô tô.
Tiêu đề
Các cảm biến vật lý cơ bản: Bất kỳ sự kết hợp nào của GPS, từ kế, gia tốc kế và con quay hồi chuyển.
Reporting-mode: Continuous
getDefaultSensor(SENSOR_TYPE_HEADING)
trả về một cảm biến không đánh thức
Từ Android 13, cảm biến hướng đo hướng mà thiết bị đang chỉ so với hướng bắc thực theo độ. Cảm biến hướng bao gồm 2 giá trị SensorEvent
.
Một cho tiêu đề của thiết bị được đo và một cho độ chính xác của giá trị tiêu đề được cung cấp.
Giá trị hướng do cảm biến này báo cáo phải nằm trong khoảng từ 0.0
(bao gồm) đến 360.0
(không bao gồm), trong đó 0
cho biết hướng bắc, 90
hướng đông, 180
hướng nam và 270
hướng tây.
Độ chính xác của cảm biến này được xác định ở độ tin cậy 68%. Trong trường hợp phân phối cơ bản là phân phối chuẩn Gaussian, độ chính xác là một độ lệch chuẩn. Ví dụ: nếu cảm biến hướng trả về giá trị hướng là 60 độ và giá trị độ chính xác là 10 độ, thì có 68% khả năng hướng thực nằm trong khoảng từ 50 độ đến 70 độ.