HarmonyOS 可穿戴振动器未激活

问题描述

我正在使用 JS 框架创建 HarmonyOS 可穿戴应用程序,并且我想使用振动器。手表肯定有振动器,因为我在设置应用程序中使用滚动条时可以感觉到它。

所以我在 ohos.permission.VIBRATE 文件中请求了 system_grant config.json 权限,如 here

"module": {
...
    "reqPermissions": [
      {
        "name": "ohos.permission.VIBRATE","reason": "Make vibrates"
      }
    ]
...
}

那么像这样使用进口的振动器应该很简单

import vibrator from '@system.vibrator';
export default {
    // ...
    onShow() {
        console.log("VIBRATOR");
        vibrator.vibrate({
            mode : "long",success: () => console.debug("Vibrator Success"),fail : (data,code) => console.log("Vibrator handle fail,data = ${data},code = ${code}"),complete : () => console.debug("Vibrator Complete")
        });
    }
    // ...
}

我确实在 VIBRATOR 中获得了 HiLog 日志,但在振动器回调中没有其他日志,设备也没有振动。

有人知道我做错了什么吗?

编辑: 我注意到 VIBRATOR 日志后有一堆错误日志。我不明白它们的意思,所以我把它们张贴在这里

D 03B00/JSApp: app Log: VIBRATOR
E 03900/Ace: [<private>      (<private>)] ace Log: [JS Framework] Failed to invoke the event handler of "viewappear" on div (_root):
E 03900/Ace:  TypeError: value has no property
E 03900/Ace: [<private>      (<private>)] Qjs FireAsyncEvent Failed !! jsCall: <private>
E 03900/Ace: [<private>       (<private>)] [DUMP] <private>
E 03900/Ace: [<private>       (<private>)] <private>

解决方法

JS API 文档是基于可穿戴设备编写的。智能设备的标准用法如下:

vibrator.vibrate({
    mode: "short"
});

vibrator.vibrate();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...