震动功能调用比较简单,其API说明也很简洁,调用就大概下面三行吧:
当然需要导入"import android.os.Vibrator;",并需要在AndroidManifest.xml添加权限声明:
但测试结果来看好像跟API说明的不一致:
1. 最简单的通过一个参数指定震动时间时,最多也就能震动个2秒(vibrator.vibrate(2000))的样子,后面数字增加的再大也没什么改观了。当然了缩小是有效果的,比如指定100毫秒时确实就是轻微的震一下。
2. 通过pattern指定方式的震动时间也是最多只有2秒左右,比如{100, 5000, 100, 5000}表示暂停0.1秒,震动5秒,再暂停0.1秒,再震动5秒;但实际的效果是震动时间和间隔均大约为2秒。当然了,通过第二个参数来控制循环还是 可以工作的。
测试手机是魅族M9,不知是否与硬件有关。
Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
long[] pattern = {100, 5000, 100, 5000}; // OFF/ON/OFF/ON...
vibrator.vibrate(pattern, 0); //-1不重复,非-1为从pattern的指定下标开始重复
//vibrator.vibrate(10000); //一个参数时表示一次震动的毫秒数
当然需要导入"import android.os.Vibrator;",并需要在AndroidManifest.xml添加权限声明:
<uses-permission android:name="android.permission.VIBRATE" />
但测试结果来看好像跟API说明的不一致:
1. 最简单的通过一个参数指定震动时间时,最多也就能震动个2秒(vibrator.vibrate(2000))的样子,后面数字增加的再大也没什么改观了。当然了缩小是有效果的,比如指定100毫秒时确实就是轻微的震一下。
2. 通过pattern指定方式的震动时间也是最多只有2秒左右,比如{100, 5000, 100, 5000}表示暂停0.1秒,震动5秒,再暂停0.1秒,再震动5秒;但实际的效果是震动时间和间隔均大约为2秒。当然了,通过第二个参数来控制循环还是 可以工作的。
测试手机是魅族M9,不知是否与硬件有关。