android 控制震动强度

转载文章请注明出处:http://blog.csdn.net/dangxw_/article/details/17957175

android 控制手机震动的类为Vibrator 他所提供的方法只有四个

android 控制震动强度_第1张图片

想要控制手机的震动强度,无疑就只能使用vibrate(long[] parttern,int repeat)方法了,查看这个方法的详解:

Vibrate with a given pattern.

Pass in an array of ints that are the durations for which to turn on or off the vibrator in milliseconds. The first value indicates the number of milliseconds to wait before turning the vibrator on. The next value indicates the number of milliseconds for which to keep the vibrator on before turning it off. Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on.

To cause the pattern to repeat, pass the index into the pattern array at which to start the repeat, or -1 to disable repeating.

This method requires the caller to hold the permission VIBRATE.

Parameters
pattern an array of longs of times for which to turn the vibrator on or off.
repeat the index into pattern at which to repeat, or -1 if you don't want to repeat.

也就是说根据所提供的数值参数进行震动,也就是数组pattern ,不过先谈一下repeat,这是个震动模式阐述,经过我的测试,-1为不循环震动,1为最高模式循环震动,2为所给参数的格式循环震动。

pattern数组可以调整手机的震动强度,因为是以毫秒计数的,时间特别的短,不停地开和关让人感觉不到间断,而能感觉到震动强弱,就类似于电子器件的调整占空比达到理想的电压。

比如:{100,100,100,100}就是指的震动电机先关闭0.1秒再震动0.1秒,如此循环两次,如果将repeat参数定义为2,则会不停地以这种方式震动,与最高级的震动幅度相比,就相当于震动幅度缩小了一倍。

另外为了使震动幅度可以线性变化,可以定义long数组为{100-i,100+i,100-i,100+i}同时将repeat参数定义为2,调整i的大小,不停地调用vibrate方法就可以动态改变手机的震动强度。

vibrator类是系统提供的服务,只能通过getSystemService(Context.VIBRATOR_SERVICE)方法获取,另外还要给予调用权限:

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

比较可悲的是ios系统只提供震动功能的调用,不可以定义震动幅度和时长,只有一种模式。不过它的系统提供一种供用户自己手动绘制震动模式的插件。

你可能感兴趣的:(android,强度,Vibrator,震动)