#HarmonyOS NEXT体验官#震动器应用 原创
震动器应用
vibrator模块提供控制马达振动启、停的能力。
功能
-
振动反馈体验优化:根据不同的应用场景,如游戏、导航、阅读等,提供定制化的振动反馈模式,增强用户交互体验。
-
运动监测:通过感知手机的振动和移动,监测用户的运动状态,例如步行、跑步、骑行等,并记录相关数据,如步数、运动距离、运动速度等。
-
姿态识别:判断手机的持握姿态和方向变化,从而自动调整应用的显示模式,比如横竖屏切换、界面布局调整等。
-
提醒功能:根据设定的条件,如特定时间、到达特定地点等,通过独特的振动模式进行提醒。
-
安全防护:当手机检测到异常的振动或移动模式,例如可能的掉落、被盗等情况,发出警报或通知用户。
-
触感交互:在一些操作中,通过不同强度和频率的振动,替代或补充视觉和听觉的反馈,例如在图片浏览中,不同的图片区域给予不同的振动效果。
导入模块
import { vibrator } from '@kit.SensorServiceKit';
vibrator.startVibration
startVibration(effect: VibrateEffect, attribute: VibrateAttribute, callback: AsyncCallback<void>): void
根据指定的振动效果和振动属性触发马达振动。使用callback异步回调。
需要权限: ohos.permission.VIBRATE
元服务API: 从API Version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.Sensors.MiscDevice
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
effect | VibrateEffect | 是 | 马达振动效果,支持三种:1、VibrateTime:按照指定持续时间触发马达振动;2、VibratePreset:按照预置振动效果触发马达振动;3、VibrateFromFile:按照自定义振动配置文件触发马达振动。 |
attribute | VibrateAttribute | 是 | 马达振动属性。 |
callback | AsyncCallback<void> | 是 | 回调函数,当马达振动成功,err为undefined,否则为错误对象。 |
错误码:
以下错误码的详细介绍请参见振动错误码。
完整代码
import { vibrator } from '@kit.SensorServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct VibratorPage {
@State message: string = 'Hello World';
build() {
Column() {
Button("持续时间震动").onClick(() => {
try {
vibrator.startVibration({
type: 'time',
duration: 1000
}, {
id: 0,
usage: 'alarm'
}).then(() => {
console.info('Succeed in starting vibration');
}, (error: BusinessError) => {
console.error(`Failed to start vibration. Code: ${error.code}, message: ${error.message}`);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error(`An unexpected error occurred. Code: ${e.code}, message: ${e.message}`);
}
})
Button("预置振动").onClick(() => {
try {
vibrator.startVibration({
type: 'preset',
effectId: 'haptic.clock.timer',
count: 1,
}, {
id: 0,
usage: 'alarm'
}).then(() => {
console.info('Succeed in starting vibration');
}, (error: BusinessError) => {
console.error(`Failed to start vibration. Code: ${error.code}, message: ${error.message}`);
});
} catch (err) {
let e: BusinessError = err as BusinessError;
console.error(`An unexpected error occurred. Code: ${e.code}, message: ${e.message}`);
}
})
Button("停止").onClick(() => {
try {
// 停止任何形式的马达振动
vibrator.stopVibrationSync()
console.info('Succeed in stopping vibration');
} catch (error) {
let e: BusinessError = error as BusinessError;
console.error(`An unexpected error occurred. Code: ${e.code}, message: ${e.message}`);
}
})
}
.height('100%')
.width('100%')
}
}
所以,是不是很简单呢,快做一个自己的应用吧
参考
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-vibrator-V5
++下划线++