Подтвердить что ты не робот

Воспроизведение по умолчанию мягкой клавиатуры при нажатии кнопок в android

Я разработал приложение, которое использует мой собственный custom keyboard (ну, представление, которое выглядит как клавиатура и ведет себя как клавиатура в любом случае). Одна вещь, которую я еще не понял, - это заставить звук воспроизводить звук default soft keyboard 'click' при нажатии кнопок. Есть ли простой способ сделать это?

Я бы хотел использовать звук keyboard click, который поставляется вместе с телефоном, а не предоставляющий мои собственные. Поскольку у разных телефонов могут быть разные звуки нажатия клавиш, я хотел бы сохранить свое приложение в соответствии. В конечном счете, я хочу отразить те же настройки, которые пользователь выбрал в своих глобальных настройках клавиатуры (играть/не воспроизводить звуки, вибрировать/не вибрировать и т.д.).

4b9b3361

Ответ 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);
        }
    }