
Cảm biến Android cấp cho các ứng dụng quyền truy cập vào các cảm biến vật lý bên dưới 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 sensor.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, độ gần và cảm biến nhịp tim.
Không có 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, micrô 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 nói 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 các cảm biến vật lý khác nhau được kết nối 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 một số giám sát và xử lý dữ liệu 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ế vận chuyển.
- Để giảm 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 - như phát hiện chuyển động trên chip gia tốc kế) và hơn thế nữa được thực hiện trong vi điều khiển (như phát hiện bước trong trung tâm cảm biến ).
- Tùy thuộc vào nhà sản xuất thiết bị để 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. Xem Ngăn xếp cảm biến để biết thêm thông tin.
- Khả năng phân phối là một cân nhắc quan trọng để tối ưu hóa điện năng. Xem Batch để biết thêm thông tin.
Mỗi cảm biến Android có một "loại" đại diện cho cách cảm biến hoạt động và dữ liệu mà nó cung cấp.
- Các loại Cảm biến Android chính thức được xác định trong sensor.h dưới tên SENSOR_TYPE_…
- Phần lớn các cảm biến có loại cảm biến chính thức.
- Các loại đó được ghi lại trong Android SDK.
- Hành vi của các cảm biến với các loại đó được kiểm tra trong Bộ kiểm tra tính tương thích của 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 cảm biến 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ông có khả năng 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 kiểm tra bởi CTS.
- 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, các 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 bộ phận triển khai HAL.
- Có thể có một số 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 của một 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 theo cặp đánh thức và không đánh thức , cả hai cảm biến chia sẻ cùng một loại, nhưng khác nhau bởi đặc tính đánh thức của chúng.
Cảm biến 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 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, các nhà phát triển đã sử dụng 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ư chia lô, 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 nơi cần thêm tài liệu.
Nhắm mục tiêu vào 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/+/master/include/hardware/sensors.h
- Còn được gọi là "sensor.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)
- /compatibility/android-cdd.pdf
- Xem các phần liên quan đến cảm biến.
- CDD khoan dung, do đó, việc đáp ứng các yêu cầu của CDD là không đủ để đảm bảo cảm biến chất lượng cao.