Android Vibrator震动

Android开启振动主要运用了Vibrator(振动器),系统中有一个Vibrator抽象类,可以通过获取Vibrator实例调用里面的方法来完成振动功能。

1. 权限

需要在清单文件AndroidManifest.xml中添加权限,以允许使用vibrator。

1
<uses-permission android:name="android.permission.VIBRATE"/>

其中,VIBRATE: "android.permission.VIBRATE"

2. 加载头文件

1
import android.os.Vibrator;

3. 初始化:

取得震动服务的句柄

1
2
private Vibrator vibrator;
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

4. 常用方法:

1
2
3
vibrator.hasVibrator();  // 判断手机硬件是否有振动器
vibrator.vibrate(1000); // 设置手机振动
vibrator.cancel();// 关闭振动

4.1 判断手机硬件是否有振动器

1
vibrator.hasVibrator();

4.2 设置手机振动

1
2
3
4
5
6
7
8
1 vibrate(long milliseconds);
2 vibrate(VibrationEffect vibe);
3 vibrate(VibrationEffect vibe, AudioAttributes attributes);

//4-6 was deprecated in API level 26
4 vibrate(long[] pattern, int repeat); //Use 2. vibrate(VibrationEffect) instead.
5 vibrate(long[] pattern, int repeat, AudioAttributes attributes); //Use 3. vibrate(VibrationEffect, AudioAttributes) instead.
6 vibrate(long milliseconds, AudioAttributes attributes); //Use 3. vibrate(VibrationEffect, AudioAttributes) instead.

参数简介

1
2
3
4
5
* @param milliseconds 振动持续时间
* @param attributes 振动属性
* @param repeat 振动重复的模式,-1为不重复,0为一直震动
* @param pattern 数组中的整数用来打开或关闭振动器,第一个值表示在打开振动器之前要等待的毫秒数下一个值表示在关闭振动器之前保持振动器的毫秒数,随后的值交替执行。 eg. new long[]{100,10,100,1000}
* @param vibe 可以理解为震动的规则

4.3 关闭振动

1
vibrator.cancel();

Ps: 震动为一直震动的话,如果不取消震动,就算退出,也会一直震动

更多方法可参见developer.android.com: Vibrator

参考文献

android基础知识-Vibrator(振动器) 使用
【Android】Vibrator手机震动
developer.android.com: Vibrator