Tôi muốn phát hiện xem điện thoại người dùng hiện tại có bàn phím phần cứng hay chỉ bàn phím ảo. Điều này có thể thực hiện với SDK không?Có cách nào trong Android để biết liệu thiết bị của người dùng có bàn phím thực hay không?
6
A
Trả lời
16
Có, bạn có thể.
Fetch đối tượng Configuration sử dụng
Configuration config = getResources().getConfiguration();
... và sau đó nhìn vào lĩnh vực keyboard
.
Nếu giá trị của chúng là keyboard
không phải là KEYBOARD_NOKEYS, người dùng có bàn phím phần cứng.
Lưu ý rằng dưới dạng @Carl cho biết trong nhận xét của mình bên dưới, người dùng có thể đính kèm bàn phím USB tại bất kỳ thời điểm nào trong khi ứng dụng của bạn đang chạy, khiến giá trị keyboard
thay đổi.
Cảm ơn những gì tôi đang tìm kiếm. – Bryan
Mặc dù người dùng KHÔNG có bàn phím phần cứng nếu config.keyboard KHÔNG KEYBOARD_NOKEYS, cần lưu ý rằng thiết bị có thể báo cáo KEYBOARD_NOKEYS, nhưng sau đó có bàn phím USB bên ngoài được gắn vào nó và báo cáo KEYBOARD_QWERTY, tất cả trong khi ứng dụng của bạn đang chạy. Ít nhất, tôi có một GTablet chạy CyanogenMod 7.0.3-Harmony/Android 2.3.3 thực hiện chính xác điều đó. Và cũng có thể, giá trị của bàn phím, khi không KEYBOARD_NOKEYS, là KEYBOARD_12KEY, thay vì KEYBOARD_QWERTY, vì vậy nếu loại bàn phím quan trọng đối với bạn, bạn có thể muốn kiểm tra những điều này một cách cụ thể. – Carl
@Carl - được cập nhật để bao gồm lại điểm: bàn phím được đính kèm giữa thực thi của ứng dụng. Cảm ơn. – razlebe