Ⅰ android中如何判斷手機是否存在物理的menu鍵
這里有段代碼,是從cool reader裡面看到的,用來判斷是否存在物理menu按鍵,希望能幫上忙。。。
private Boolean hasHardwareMenuKey = null;
public boolean hasHardwareMenuKey() {
if (hasHardwareMenuKey == null) {
ViewConfiguration vc = ViewConfiguration.get(this);
if (DeviceInfo.getSDKLevel() >= 14) {
// boolean vc.hasPermanentMenuKey();
try {
Method m = vc.getClass().getMethod("hasPermanentMenuKey",
new Class<?>[] {});
try {
hasHardwareMenuKey = (Boolean) m.invoke(vc,
new Object[] {});
} catch (IllegalArgumentException e) {
hasHardwareMenuKey = false;
} catch (IllegalAccessException e) {
hasHardwareMenuKey = false;
} catch (InvocationTargetException e) {
hasHardwareMenuKey = false;
}
} catch (NoSuchMethodException e) {
hasHardwareMenuKey = false;
}
}
if (hasHardwareMenuKey == null) {
if (DeviceInfo.EINK_SCREEN)
hasHardwareMenuKey = false;
else if (DeviceInfo.getSDKLevel() < DeviceInfo.ICE_CREAM_SANDWICH)
hasHardwareMenuKey = true;
else
hasHardwareMenuKey = false;
}
}
return hasHardwareMenuKey;
}