Android 实现手机震动功能


开发环境

<1> Eclipse Adt-abundle for windows;
<2> Android studio;


配置

在AndroidManifest.xml中添加震动权限:

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

震动工具类 VibratorUtil.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import android.app.Activity;  
import android.app.Service;
import android.os.Vibrator;

/**
* 手机震动工具类
* @author DM
*
*/
public class VibratorUtil {

/**
* 单次震动
*
* @param activity 调用该方法的Activity实例: 如,MainActivity.this
* @param milliseconds 震动时长, 单位毫秒(ms).
*/
public static void Vibrate(final Activity activity, long milliseconds) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(milliseconds);
}

/**
* 自定义震动
*
* @param activity 调用该方法的Activity实例
* @param pattern 自定义震动模式:
* 数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长...];
* 时长的单位是毫秒.
* @param isRepeat 是否反复震动,如果是true,反复震动,如果是false,只震动一次
*/
public static void Vibrate(final Activity activity, long[] pattern, boolean isRepeat) {
Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(pattern, isRepeat ? 1 : -1);
}

}

实例调用

1
2
3
4
5
6
7
// 震动500ms
VibratorUtil.Vibrate(MainActivity.this, 500);

// 第二个参数,指代一个震动的频率数组。
// 每两个为一组,每组的第一个为等待时间,第二个为震动时间。
// 比如 [2000,500,100,400],会先等待2000毫秒,震动500,再等待100,震动400
VibratorUtil.Vibrate(MainActivity.this, new long[]{2000,500,100,400}, false);
0%