Android实现文本显示或按钮点击时设备振动的方法
Android设备振动实现分步指导
1. 添加振动权限
首先在项目的AndroidManifest.xml文件中添加振动权限,这是实现振动的必要前提:
<uses-permission android:name="android.permission.VIBRATE" />
如果应用目标是Android 13(API 33)及以上,需额外添加通知权限(部分设备要求):
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
2. 封装通用振动方法
在你的Story类中添加通用振动工具方法,兼容不同Android版本,避免重复代码:
先导入所需包:
import android.os.Build; import android.os.VibrationEffect;
再添加方法:
private void vibrateDevice(long milliseconds) { // 获取系统振动服务 Vibrator vibrator = (Vibrator) h1.getSystemService(Context.VIBRATOR_SERVICE); // 检查振动器是否可用 if (vibrator != null && vibrator.hasVibrator()) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // Android 8.0及以上使用VibrationEffect API vibrator.vibrate(VibrationEffect.createOneShot(milliseconds, VibrationEffect.DEFAULT_AMPLITUDE)); } else { // 旧版本直接调用vibrate方法 vibrator.vibrate(milliseconds); } } }
3. 文本框显示内容时触发振动
在所有设置h1.text.setText()的方法中,调用封装好的振动方法。示例修改:
public void hospital11() { h1.character.setVisibility(View.VISIBLE); h1.character.setImageResource(R.mipmap.nurse2); h1.text.setText("你的文本内容"); // 文本显示时振动500毫秒 vibrateDevice(500); t = "h12"; } public void hospital12() { h1.character.setVisibility(View.INVISIBLE); h1.text.setText("另一段文本"); // 文本显示时振动500毫秒 vibrateDevice(500); t = "h13"; }
4. 点击选项按钮时触发振动
在设置选项按钮的方法(如hospital1select1)中,给按钮添加点击监听,先振动再执行跳转逻辑:
public void hospital1select1() { h1.character.setVisibility(View.INVISIBLE); h1.text.setVisibility(View.INVISIBLE); showButton(); h1.choice1.setVisibility(View.INVISIBLE); h1.choice4.setVisibility(View.INVISIBLE); h1.choice2.setText("选项2"); h1.choice3.setText("选项3"); c2 = "h16a"; c3 = "h16b"; // 选项2点击振动 h1.choice2.setOnClickListener(v -> { vibrateDevice(300); selectNext(c2); }); // 选项3点击振动 h1.choice3.setOnClickListener(v -> { vibrateDevice(300); selectNext(c3); }); }
5. 测试验证
运行应用后测试两个场景:
- 文本框更新内容时,设备是否振动
- 点击选项按钮时,设备是否振动
注:部分模拟器不支持振动功能,建议使用真实设备测试。
内容的提问来源于stack exchange,提问作者Myungwon Lee
相关产品推荐
相关产品推荐

