我开发了一个应用程序,使用了自己的自定义键盘
(实际上是一个看起来像键盘、行为也像键盘的视图)。我还需要解决的一个问题是如何让它在按下按钮时播放默认软键盘“点击”
声音。
有没有简单的方法可以做到这一点?
我想使用手机自带的键盘点击
声音,而不是提供自己的声音。因为不同的手机可能有不同的键盘点击声音,所以我希望保持我的应用程序的一致性。最终,我想反映用户在他们的全局键盘设置中选择的相同设置(播放/不播放声音,振动/不振动等)。
我开发了一个应用程序,使用了自己的自定义键盘
(实际上是一个看起来像键盘、行为也像键盘的视图)。我还需要解决的一个问题是如何让它在按下按钮时播放默认软键盘“点击”
声音。
有没有简单的方法可以做到这一点?
我想使用手机自带的键盘点击
声音,而不是提供自己的声音。因为不同的手机可能有不同的键盘点击声音,所以我希望保持我的应用程序的一致性。最终,我想反映用户在他们的全局键盘设置中选择的相同设置(播放/不播放声音,振动/不振动等)。
我已经找到了解决方案。我所需要做的就是在按钮上实现一个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);
AUDIO_SERVICE 无法解析为变量
(JB 4.1.2)的问题。 - Luis A. Floritif (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);
}
}