Cảm biến Android TYPE_ACCELEROMETER (phần 1)

Tram Ho

Một trong những điều mà làm cho việc phát triển cho các thiết bị di động khác biệt so với các nền tảng khác là một điện thoại di động hoặc máy tính bảng được đóng gói đầy đủ các cảm biến và phần cứng mà các nhà phát triển có thể tận dụng lợi thế để làm dữ liệu đầu vào. Trong hướng dẫn này bạn sẽ được giới thiệu Sensor Framework của Android. Bạn sẽ tìm hiểu cách xác định những bộ cảm biến có sẵn trên một thiết bị và cách làm thế nào để đọc dữ liệu từ bộ cảm biến đó.

Bộ cảm biến của thiết bị

Có ba loại cảm biến cơ bản chính cần phải lưu ý: cảm biến chuyển động, môi trường, và vị trí thiết bị. Cảm biến chuyển động phát hiện những thay đổi xung quanh ba trục của thiết bị: X, Y và Z, như được minh hoạ dưới đây:

Cảm biến chuyển động bao gồm các con quay hồi chuyển, gia tốc và cảm biến quay vector.

Cảm biến môi trường thu thập thông tin về môi trường mà điện thoại đang ở trong đó. Chúng bao gồm các cảm biến độ ẩm và nhiệt độ môi trường, ánh sáng và áp xuất.

Loại cảm biến cơ bản cuối cùng, đó là vị trí thiết bị, thực hiện chính xác những gì bạn mong đợi: nhận biết vị trí của thiết bị. Thể loại này bao gồm các cảm biến xoay và cảm biến từ.

Bất kỳ cảm biến nào mà không thuộc một trong ba loại cơ bản trên được coi là một bộ cảm biến hỗn hợp. Các cảm biến này không thật sự là cảm biến theo nghĩa đen, nhưng thay vào đó thu thập dữ liệu của chúng từ nhiều cảm biến vật lý trên một thiết bị và tổng hợp nó. Ví dụ như đếm số bước, cảm biến trọng lực và cảm biến xoay vectơ.

Đọc dữ liệu cảm biến

Khám phá bộ cảm biến trên thiết bị
Để truy cập các cảm biến trên một thiết bị, bạn sẽ cần phải sử dụng lớp SensorManager, bạn có thể lấy nó như là một dịch vụ hệ thống từ một Activity.

Một khi bạn có một SensorManager, bạn có thể lấy một Sensor cơ bản, hoặc lấy một List (danh sách) của các đối tượng Sensor (cảm biến) dựa trên một loại tham số. Đối với ví dụ này chúng ta sẽ truy xuất List (danh sách) của tất cả các đối tượng Sensor (cảm biến), như sau:

Bạn sẽ nhận thấy rằng chúng ta sử dụng TYPE_ALL ở đây. Nếu chúng ta chỉ muốn một tập hợp nhỏ hơn của bộ cảm biến, chúng ta có thể truyền vào bất kỳ kiểu thuộc tính nào được hỗ trợ, chẳng hạn như ở dưới đây.

Một khi bạn đã có Sensor mà bạn muốn làm việc với, bạn có thể bắt đầu lấy dữ liệu từ chúng.

Sensor Event Listener

Ví dụ sau đây là Event sensor TYPE_ACCELEROMETER

Chúc mọi người áp dụng thành công . Thank so much !

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo