
Cảm biến Android 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 sensors.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à máy ảnh, 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; sự 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 cảm biến gia tốc 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 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ế vận chuyển.
- Để 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 - 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ị tùy thuộc vào việc 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 Bộ cảm biến để biết thêm thông tin.
- Khả năng xử lý hàng loạt là một cân nhắc quan trọng để tối ưu hóa năng lượng. Xem Batching để biết thêm thông tin.
Mỗi cảm biến Android có một “loại” biểu thị cách cảm biến hoạt động và dữ liệu mà cảm biến cung cấp.
- Các loại Cảm biến Android chính thức được xác định trong sensors.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.
- Những loại đó được ghi lại trong Android SDK.
- 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 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 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 thử nghiệm 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 việc 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ác 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 đều có chung loại, nhưng khác nhau về đặ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 loạt 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 mà 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
- Do tài liệu về cảm biến đôi khi thiếu nê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ư tạo 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 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/+/main/include/hardware/sensors.h
- Còn được gọi là “sensors.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)
- /tương thích/android-cdd.pdf
- Xem các phần liên quan đến cảm biến.
- CDD rất nhẹ nên việc đáp ứng các yêu cầu của CDD là không đủ để đảm bảo cảm biến có chất lượng cao.

Cảm biến Android 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 sensors.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à máy ảnh, 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; sự 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 cảm biến gia tốc 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 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ế vận chuyển.
- Để 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 - 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ị tùy thuộc vào việc 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 Bộ cảm biến để biết thêm thông tin.
- Khả năng xử lý hàng loạt là một cân nhắc quan trọng để tối ưu hóa năng lượng. Xem Batching để biết thêm thông tin.
Mỗi cảm biến Android có một “loại” biểu thị cách cảm biến hoạt động và dữ liệu mà cảm biến cung cấp.
- Các loại Cảm biến Android chính thức được xác định trong sensors.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.
- Những loại đó được ghi lại trong Android SDK.
- 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 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 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 thử nghiệm 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 việc 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ác 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 đều có chung loại, nhưng khác nhau về đặ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 loạt 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 mà 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
- Do tài liệu về cảm biến đôi khi thiếu nê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ư tạo 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 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/+/main/include/hardware/sensors.h
- Còn được gọi là “sensors.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)
- /tương thích/android-cdd.pdf
- Xem các phần liên quan đến cảm biến.
- CDD rất nhẹ nên việc đáp ứng các yêu cầu của CDD là không đủ để đảm bảo cảm biến có chất lượng cao.