![Biểu tượng HAL của Cảm biến Android](https://source.android.google.cn/static/docs/core/interaction/sensors/images/ape_fwk_hal_sensors.png?authuser=4&hl=vi)
Cảm biến Android cung cấp cho ứng dụng quyền truy cập vào cảm biến vật lý cơ bản của thiết bị di động. Chúng là các thiết bị ảo cung cấp dữ liệu được xác định bởi cảm biến.h , Lớp trừu tượng phần cứng cảm biến (HAL).
Cảm biến Android là gì?
Cảm biến Android là thiết bị ảo cung cấp dữ liệu đến từ một bộ cảm biến vật lý: gia tốc kế, con quay hồi chuyển, từ kế, phong vũ biểu, độ ẩm, áp suất, ánh sáng, cảm biến độ gần và nhịp tim.
Không nằm trong danh sách các thiết bị vật lý cung cấp dữ liệu là camera, cảm biến vân tay, micro và màn hình cảm ứng. Các thiết bị này có cơ chế báo cáo riêng; việc phân tách là tùy ý, nhưng nhìn chung, cảm biến Android cung cấp dữ liệu băng thông thấp hơn. Ví dụ: “100hz x 3 kênh” cho gia tốc kế so với “25hz x 8 MP x 3 kênh” cho máy ảnh hoặc “44kHz x 1 kênh” cho micrô.
Android không xác định cách kết nối các cảm biến vật lý khác nhau với hệ thống trên chip (SoC).
- Thông thường, các chip cảm biến được kết nối với SoC thông qua một trung tâm cảm biến , cho phép giám sát và xử lý dữ liệu ở mức năng lượng thấp.
- Thông thường, Mạch tích hợp liên kết (I2C) hoặc Giao diện ngoại vi nối tiếp (SPI) được sử dụng làm cơ chế truyền tải.
- Để giảm mức tiêu thụ điện năng, một số kiến trúc được phân cấp, với một số xử lý tối thiểu được thực hiện trong mạch tích hợp dành riêng cho ứng dụng (ASIC - giống như phát hiện chuyển động trên chip gia tốc) và nhiều hơn nữa được thực hiện trong bộ vi điều khiển (như phát hiện bước trong trung tâm cảm biến). ).
- Nhà sản xuất thiết bị có quyền lựa chọn kiến trúc dựa trên các đặc điểm về độ chính xác, công suất, giá cả và kích thước gói hàng. Xem Ngăn xếp cảm biến để biết thêm thông tin.
- Khả năng phân khối là một yếu tố quan trọng cần cân nhắc để tối ưu hóa năng lượng. Xem Lô để biết thêm thông tin.
Mỗi cảm biến Android có một “loại” thể hiện cách cảm biến hoạt động và dữ liệu nó cung cấp.
- Các loại Cảm biến Android chính thức được xác định trong cảm biến.h dưới tên SENSOR_TYPE_…
- Phần lớn các cảm biến đều có loại cảm biến chính thức.
- Những loại đó được ghi lại trong SDK Android.
- Hoạt động của cảm biến với các loại đó được kiểm tra trong Bộ kiểm tra khả năng tương thích Android (CTS).
- Nếu nhà sản xuất tích hợp một loại cảm biến mới trên thiết bị Android, nhà sản xuất có thể xác định loại tạm thời của riêng mình để tham khảo.
- Những loại đó không có giấy tờ, vì vậy các nhà phát triển ứng dụng khó có thể sử dụng chúng vì họ không biết về chúng hoặc biết rằng chúng hiếm khi xuất hiện (chỉ trên một số thiết bị của nhà sản xuất cụ thể này).
- Chúng không được CTS kiểm tra.
- Sau khi Android xác định loại cảm biến chính thức cho loại cảm biến này, nhà sản xuất phải ngừng sử dụng loại tạm thời của riêng họ và thay vào đó sử dụng loại chính thức. Bằng cách này, cảm biến sẽ được nhiều nhà phát triển ứng dụng sử dụng hơn.
- Danh sách tất cả các cảm biến có trên thiết bị được báo cáo bởi việc triển khai HAL.
- Có thể có nhiều cảm biến cùng loại. Ví dụ: hai cảm biến tiệm cận hoặc hai gia tốc kế.
- Phần lớn các ứng dụng chỉ yêu cầu một cảm biến duy nhất thuộc loại nhất định. Ví dụ: một ứng dụng yêu cầu gia tốc kế mặc định sẽ nhận được gia tốc kế đầu tiên trong danh sách.
- Cảm biến thường được xác định bằng cặp đánh thức và không đánh thức , cả hai cảm biến đều có cùng loại, nhưng khác nhau về đặc tính đánh thức của chúng.
Cảm biến của Android cung cấp dữ liệu dưới dạng một chuỗi các sự kiện cảm biến.
Mỗi sự kiện bao gồm:
- một tay cầm cho cảm biến đã tạo ra nó
- dấu thời gian tại đó sự kiện được phát hiện hoặc đo lường, dựa trên
SystemClock.elapsedRealtimeNanos()
- và một số dữ liệu
Việc giải thích dữ liệu được báo cáo phụ thuộc vào loại cảm biến. Xem định nghĩa loại cảm biến để biết chi tiết về dữ liệu nào được báo cáo cho từng loại cảm biến.
Tài liệu hiện có
Nhắm mục tiêu vào các nhà phát triển
- Tổng quan
- Tham chiếu SDK
- Stack Overflow và các trang web hướng dẫn
- Vì đôi khi thiếu tài liệu về cảm biến nên các nhà phát triển đã phải nhờ đến các trang web Hỏi đáp như Stack Overflow để tìm câu trả lời.
- Một số trang web hướng dẫn cũng tồn tại nhưng không bao gồm các tính năng mới nhất như phân khối, chuyển động quan trọng và vectơ xoay trò chơi.
- Các câu trả lời ở đó không phải lúc nào cũng đúng và chỉ ra những chỗ cần thêm tài liệu.
Hướng tới các nhà sản xuất
- Tổng quan
- Trang Cảm biến này và các trang con của nó.
- Lớp trừu tượng phần cứng (HAL)
- /platform/hardware/libhardware/+/main/include/hardware/sensors.h
- Còn được gọi là “cảm biến.h”
- Nguồn gốc của sự thật. Tài liệu đầu tiên được cập nhật khi các tính năng mới được phát triển.
- Android CDD (Tài liệu định nghĩa tương thích)
- /khả năng tương thích/android-cdd.pdf
- Xem các phần liên quan đến cảm biến.
- CDD rất khoan dung nên việc đáp ứng các yêu cầu của CDD là chưa đủ để đảm bảo cảm biến chất lượng cao.