当前位置: 首页 > news >正文

OpenHarmony v4.1 Release设置应用随系统自动启动

步骤如下:

  • 一、功能概述
  • 二、启用系统自启动管理支持
  • 三、开发自启动管理应用
    • 1. 开发环境准备
    • 2. 应用配置
  • 四、代码实现

一、功能概述

OpenHarmony 4.1 版本中的 Ability Manager Service (AMS) 提供了应用自启动管理功能,允许系统控制哪些应用可以在系统启动时自动运行。这需要以下两个主要步骤:

启用系统的自启动管理支持

开发一个系统应用来管理自启动配置

二、启用系统自启动管理支持

通过ADB Shell实现
连接设备:

hdc shell

检查当前/vendor分区挂载状态:

mount | grep vendor

典型输出示例:

/dev/block/platform/soc/10100000.himci.eMMC/by-name/vendor /vendor ext4 ro,seclabel,relatime 0 0

重新挂载/vendor为可写模式:

mount -o rw,remount /vendor

如果遇到权限问题,需要先获取root权限:

su

创建配置目录:

mkdir -p /vendor/etc/param

创建并编辑配置文件:

echo "const.product.appboot.setting.enabled = 1" > /vendor/etc/param/appboot.para

验证文件内容:

cat /vendor/etc/param/appboot.para

正确应显示:

const.product.appboot.setting.enabled = 1

恢复/vendor分区为只读模式:

mount -o ro,remount /vendor

重启设备:

reboot

三、开发自启动管理应用

1. 开发环境准备

  • 下载并安装 OpenHarmony Full SDK

  • 配置开发环境(DevEco Studio)

  • 确保有系统应用开发权限

2. 应用配置

a. config.json 配置

  • 需要声明系统应用权限:
{
  "module": {
    "reqPermissions": [
      {
        "name": "ohos.permission.MANGE_APP_BOOT",
        "reason": "用于管理应用自启动",
        "usedScene": {
          "ability": [
            "MainAbility"
          ],
          "when": "always"
        }
      }
    ]
  }
}

b. 签名配置
使用提供的 profile 模板 UnsgnedReleasedProfileTemplate.json,关键字段说明:

  • “apl”: “system_core” - 声明为系统核心应用
  • “app-feature”: “hos_system_app” - 系统应用特征
  • “allowed-acls” - 包含 ohos.permission.MANAGE_APP_BOOT 权限

四、代码实现

官网参考
权限:ohos.permission.MANAGE_APP_BOOT

import autoStartupManager from '@ohos.app.ability.autoStartupManager';
try {
              autoStartupManager.setApplicationAutoStartup({
                bundleName: 'com.example.application',
                abilityName: 'EntryAbility'
              }).then((data: void) => {
                this.zq= JSON.stringify(data)
                console.info('====> setApplicationAutoStartup data: ' + JSON.stringify(data));
              }).catch((err: BusinessError) => {
                this.zq= JSON.stringify(err)
                console.info('====> setApplicationAutoStartup err: ' + JSON.stringify(err));
              });
            } catch (err) {
              this.zq=JSON.stringify(err)
              console.info('====> setApplicationAutoStartup throw err: ' + JSON.stringify(err));
            }

相关文章:

  • Sa-Token核心功能解剖三(OAuth2.0认证、分布式会话、参数签名 )
  • Transformers without Normalization paper笔记
  • Android OpenGLES 360全景图片渲染(球体内部)
  • wsl2的centos7安装jdk17、maven
  • 欧拉公式和sin cos
  • 3.31Python有关文件操作
  • 【java】Java核心知识点与相应面试技巧(九)——异常
  • PHP回调后门
  • Ubuntu22.04系统离线部署Maxkb【教程】
  • 再见VS Code!Google IDE 正颠覆传统开发体验
  • 探秘中医五色五味:开启饮食养生新智慧
  • Element ui input组件类型为 textarea 时没有 清空按钮
  • [网络_1] 因特网 | 三种交换 | 拥塞 | 差错 | 流量控制
  • Nordic 新一代无线 SoC nRF54L系列介绍
  • Tiny Lexer 一个极简的C语言词法分析器
  • 回溯(子集型):分割回文串
  • 如何在 Windows 上安装与配置 Tomcat
  • 基于PX4和Ardupilot固件下自定义MAVLink消息测试(QGroundControl和Mission Planner)
  • 76. pinctrl和gpio子系统试验
  • 【Easylive】HikariCP 介绍
  • 网站加入收藏夹代码/互联网广告价格
  • 做爰在线观看网站/深圳网络营销推广招聘网
  • 做视频网站的服务器/个人博客搭建
  • 网站的链接结构包括/seo优化团队
  • 网站建设实践论文/国际时事新闻
  • 四川建设工程网上合同备案网站/如何推广普通话的建议6条