Android Vibrator 手机震动
本篇文章主要讲下手机震动.
Vibrator是Android系统提供的一个类,用于控制手机的震动功能。
通过使用Android Vibrator类,开发者可以在应用程序中实现手机的震动效果。
Vibrator类提供了以下几种常用的方法:
- vibrate(long milliseconds):让设备振动指定的时间(以毫秒为单位)。
- vibrate(long[] pattern, int repeat):按照指定的模式和重复次数进行振动。模式是一个long类型的数组,其中的元素表示振动的持续时间和间隔时间的交替。重复参数指定从模式数组的哪个位置开始重复振动。
- cancel():取消当前正在进行的振动。
使用Vibrator类之前,需要在AndroidManifest.xml文件中添加振动权限:
<uses-permission android:name=“android.permission.VIBRATE” />
1.获取实例
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
2: 检测是否支持震动
/**
- @param context
- @return
- 是否支持手机震动
*/
public static boolean hasVibrator(Context context){
Object systemService = context.getSystemService(Context.VIBRATOR_SERVICE);
return systemService !=null;
}
3: 控制手机震动指定时间
public static void noticeVibrator(Context context,long time){
if (!hasVibrator(context)) return;
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (vibrator.hasVibrator()){
vibrator.vibrate(time);
}
}
这里vibrate(long time) 方法需要申请权限:
@RequiresPermission(android.Manifest.permission.VIBRATE)
4: 指定震动模式
/**
- @param context
- 指定的模式震动
*/
public static void noticeVibrator2(Context context){
if (!hasVibrator(context)) return;
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (vibrator.hasVibrator()){
long[] pattern = {0, 1000, 500, 2000}; // 指定震动模式,以毫秒为单位
int repeat = -1; // -1表示不重复,0表示从pattern的第一个元素开始重复
vibrator.vibrate(pattern,repeat);
}
}