2011-07-11 25 views

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.

+0

Cảm ơn những gì tôi đang tìm kiếm. – Bryan

+1

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

+0

@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

Các vấn đề liên quan