HarmonyOS 鸿蒙Next 调用power.shutdownDevice接口,提示permission check fail

HarmonyOS 鸿蒙Next 调用power.shutdownDevice接口,提示permission check fail 想实现一键关机。。。

api version 7 使用JS开发,调用JS接口power.shutdownDevice,点击按钮没反应。。。

提示:

02-22 12:51:30.503 5945-4217/com.example.myapplication E 02900/PowerMgrClient: [power_mgr_client.cpp] ShutDownDevice# ShutDownDevice called.
02-22 12:51:30.504 22460-26974/? E 02901/PowerMgrService: [power_mgr_service.cpp] ShutDownDevice# ShutDownDevice Request failed, 5945 permission check fail

这是index.js的代码,前端通过一个按钮事件调用

import power from '@ohos.power';
export default {
    data: {
        title: ""
    },
    onInit() {
        this.title = this.$t('strings.world');
    },
    shutdown(){
        power.shutdownDevice("shutdown_test");
        //power.rebootDevice("tets");
        console.info('power_shutdown_device_test success')
    }
}

这是config.json权限申请代码:

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  },
  "deviceConfig": {},
  "module": {
    "package": "com.example.myapplication",
    "name": ".MyApplication",
    "mainAbility": "com.example.myapplication.MainAbility",
    "deviceType": [
      "phone"
    ],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "entry",
      "moduleType": "entry",
      "installationFree": false
    },
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "visible": true,
        "name": "com.example.myapplication.MainAbility",
        "icon": "$media:icon",
        "description": "$string:mainability_description",
        "label": "$string:entry_MainAbility",
        "type": "page",
        "launchType": "standard"
      }
    ],
    "js": [
      {
        "pages": [
          "pages/index/index"
        ],
        "name": "default",
        "window": {
          "designWidth": 720,
          "autoDesignWidth": true
        }
      }
    ],
    "reqPermissions": [
      {
        "name": "ohos.permission.SHUTDOWN",
        "reason": "shutdown_test",
        "usedScene": {
          "ability": [
            "com.example.myapplication.MainAbility"
          ],
          "when": "always"
        }
      }
    ]
  }
}

更多关于HarmonyOS 鸿蒙Next 调用power.shutdownDevice接口,提示permission check fail的实战教程也可以访问 https://www.itying.com/category-93-b0.html

10 回复

楼主你好,接口为系统接口,第三方应用使用不了。

更多关于HarmonyOS 鸿蒙Next 调用power.shutdownDevice接口,提示permission check fail的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


那要如何调用系统接口?有像安卓那样开发系统应用的方法吗?有没有办法实现手机关机功能?

楼主你好,这个问题已反馈,请耐心等待,

楼主你好,shutdown是系统接口,仅系统应用有权限调用,普通应用会报无权限,想调用此接口实现关机功能,请申请开发系统应用。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

大哥,最终通过代码实现一键关机吗?

没有,放弃了。。。

老哥,我现在也在搞通过代码实现一键关机,能指点一下吗,

欢迎开发小伙伴们进来帮帮楼主

针对帖子标题中提到的HarmonyOS 鸿蒙Next调用power.shutdownDevice接口时提示“permission check fail”的问题,这通常意味着应用缺少执行关机操作所需的权限。

在HarmonyOS中,调用系统级功能如关机通常需要特定的系统权限。以下是一些可能的解决步骤:

  1. 检查权限声明:确保你的应用已在config.json文件中正确声明了关机所需的权限。对于关机操作,可能需要类似ohos.permission.SHUT_DOWN的权限(注意:具体权限名称需参考HarmonyOS官方文档,因为权限名称可能随系统版本更新而变化)。

  2. 动态请求权限:如果权限需要在运行时动态请求(这取决于HarmonyOS的版本和应用的目标SDK版本),确保你的代码在调用power.shutdownDevice之前已经请求并获得了该权限。

  3. 签名验证:确认你的应用是否已使用符合HarmonyOS要求的证书进行签名。某些系统级权限可能要求应用具有特定的签名证书。

  4. 系统策略:了解并遵守HarmonyOS关于关机操作的系统策略,如是否有特定用户交互要求(如用户确认)。

如果上述步骤都正确无误,但问题依旧存在,可能是由于系统限制或bug导致。此时,建议联系HarmonyOS的官方支持渠道或开发者社区寻求帮助。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部