Начиная с уровня API 14, вы можете использовать ViewConfiguration.hasPermanentMenuKey () для определения наличия у устройства постоянной клавиши меню.
Как правило, виртуальные и физические кнопки являются взаимоисключающими, поэтомупомог бы тебе.Пример:
public class MyActivity extends Activity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean hasPermanentMenuKey = ViewConfiguration.get(this).hasPermanentMenuKey();
boolean hasVirtualKeys = !hasPermanentMenuKey;
String message = hasVirtualKeys ? "This device has virtual menu keys" : "This device has physical keys";
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
// ...
}
ПРЕДУПРЕЖДЕНИЕ : в некоторых случаях это не поможет.Например, скажем, производитель решает использовать виртуальные клавиши вместе с физическими клавишами меню;тогда этот метод не поможет вам.В другом случае телефон не имеет виртуальных клавиш и физической клавиши меню (например, Samsung S5).