2012-02-08 35 views
6

Có cách nào trong ICS/HC để phát hiện xem người dùng có quyền truy cập vào một phím menu phần cứng không?Android 4.0 phát hiện nếu người dùng có các phím quay lại/khóa phần cứng

Tùy thuộc vào cấu hình tôi hy vọng sẽ thay đổi như thế nào actionbar được phổ biến, ví dụ:

Nếu người dùng có một nút home vật lý, giảm số lượng các nút hiển thị trong actionbar.

Cảm ơn, Laurence

+0

Tại sao bạn lại có thanh này trong thanh tác vụ? Họ đã ở trong thanh hệ thống. –

+0

Ví dụ sẽ là phím tìm kiếm, nếu người dùng có khóa tìm kiếm tôi không muốn hiển thị nó trong thanh hành động. – Ljdawson

+0

Có lẽ bạn nên thay đổi mọi thứ dựa trên mô hình của điện thoại.] (Http://developer.android.com/reference/android/os/Build.html#MODEL) – adneal

Trả lời

0

cả ICS và tổ ong (sadly) thay thế phím menu cho sự kết hợp của thanh tác vụ và hệ thống quán bar, mà không để cho chúng ta phải cấu hình khi chúng ta muốn hiển thị một nút menu.

không giả sử rằng nó tồn tại hoặc đặt sdk mục tiêu là 10 sẽ luôn hiển thị phím menu (trông giống như 3 dấu chấm).

tuy nhiên, sẽ rất thú vị nếu bạn tìm cách kiểm tra xem nút menu có tồn tại không.

2

Đã cho tôi một chút thời gian nhưng tôi đã tìm ra một cách đáng tin cậy hơn vì dựa vào hasPermanentMenuKey() mà không làm việc cho điện thoại mới hơn như HTC One mà không có phím menu nhưng không có nhà & lại phím nên không cần (hoặc hiển thị) thanh điều hướng mềm. Để giải quyết vấn đề này, hãy thử mã sau đây cũng kiểm tra nút quay lại:

boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey(); 
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); 

if(!hasMenuKey && !hasBackKey) { 
    // Do whatever you need to do, this device has a navigation bar 
} 
+0

Nexus 6 không có khóa phần cứng, vẫn trả về đúng trên KeyCharacterMap.deviceHasKey (KeyEvent.KEYCODE_BACK); – Vlad

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