Воспроизведение по умолчанию мягкой клавиатуры при нажатии кнопок в android
Я разработал приложение, которое использует мой собственный custom keyboard
(ну, представление, которое выглядит как клавиатура и ведет себя как клавиатура в любом случае). Одна вещь, которую я еще не понял, - это заставить звук воспроизводить звук default soft keyboard 'click'
при нажатии кнопок.
Есть ли простой способ сделать это?
Я бы хотел использовать звук keyboard click
, который поставляется вместе с телефоном, а не предоставляющий мои собственные. Поскольку у разных телефонов могут быть разные звуки нажатия клавиш, я хотел бы сохранить свое приложение в соответствии. В конечном счете, я хочу отразить те же настройки, которые пользователь выбрал в своих глобальных настройках клавиатуры (играть/не воспроизводить звуки, вибрировать/не вибрировать и т.д.).
Ответы
Ответ 1
Я нашел решение этого. Все, что мне нужно было сделать, это реализовать OnTouchListener
на кнопке и использовать общедоступный метод AudioManager.playSoundEffect()
. Код показан ниже:
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
float vol = 0.5; //This will be half of the default system sound
am.playSoundEffect(AudioManager.FX_KEY_CLICK, vol);
Ответ 2
if (isSetVibration) {
if (Build.VERSION.SDK_INT >= 26) {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(50, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(50);
}
} else {
if (Build.VERSION.SDK_INT >= 26) {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(0, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(0);
}
}