Android 实现手机震动功能

开发环境

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

配置

在AndroidManifest.xml中添加震动权限:
<uses-permission android:name="android.permission.VIBRATE" />

震动工具类 VibratorUtil.java

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);
    }

}

实例调用

// 震动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);

你可能感兴趣的:(android,手机震动)