<!--
source: https://blueos.niceshare.site/api/system/event/
site: 蓝河文档馆
summary: 公共事件提供了多应用间数据传递和事件交互的能力。
-->
---
title: '公共事件'
description: '公共事件提供了多应用间数据传递和事件交互的能力。'
lastUpdated: 2023-12-21T05:49:50.000Z
---

公共事件提供了多应用间数据传递和事件交互的能力。

## 接口声明

```json
{ "name": "blueos.app.event.eventManager" }
```

## 导入模块

```ts
import event from '@blueos.app.event.eventManager' 或 const event = require('@blueos.app.event.eventManager')
```

## 接口定义

### event.publish(OBJECT)

发布公共事件

#### 参数：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| eventName | String | 是 | 事件名称, [公共事件保留名称](#%E5%85%AC%E5%85%B1%E4%BA%8B%E4%BB%B6%E4%BF%9D%E7%95%99%E7%B1%BB%E5%9E%8B)被系统占用，请勿使用 |
| options | Object | 否 | 事件参数 |

##### options 参数：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| params | Object | 否 | 事件参数 |
| permissions | Array<String> | 否 | 订阅者的权限, 拥有权限的包才能收到发送的事件 |

#### 示例：

```ts
event.publish({
  eventName: 'myEventName',
  options: {
    params: { age: 10, name: 'peter' },
    permissions: ['com.example.demo'],
  },
})
```

### event.subscribe(OBJECT)

订阅公共事件

#### 参数：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| eventName | String | 是 | 事件名称 |
| callback | Function | 是 | 事件回调 |

##### callback 返回值：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| params | Object | 否 | 事件参数 |
| package | String | 否 | 事件推送者包名 |

#### 返回值：

| 类型 | 必填 | 说明 |
| --- | --- | --- |
| Number | 是 | 事件 id |

#### 示例：

```ts
const evtId = event.subscribe({
  eventName: 'myEventName',
  callback: function (res) {
    if (res.package === 'com.example.demo') {
      console.log(res.params)
    }
  },
})
console.log(evtId)
```

### event.unsubscribe(OBJECT)

取消订阅公共事件

#### 参数：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| id | Number | 是 | 订阅 id |

#### 示例：

```ts
event.unsubscribe({ id: 1 })
```

### 系统支持的公共事件

| 系统公共事件名称 | 订阅者所需权限 | 说明 |
| --- | --- | --- |
| usual.event.SHUTDOWN | 无 | 即将关机 |
| usual.event.BATTERY\_CHANGED | 无 | 电量改变，参数：level:0.0 - 1.0 之间 |
| usual.event.BATTERY\_LOW | 无 | 低电事件 |
| usual.event.BATTERY\_OKAY | 无 | 充满电事件 |
| usual.event.SCREEN\_OFF | 无 | 灭屏事件 |
| usual.event.SCREEN\_AOD | 无 | AOD 事件 |
| usual.event.SCREEN\_ON | 无 | 亮屏事件 |
| usual.event.PACKAGE\_ADDED | 无 | 新安装应用，参数：package:com.xxx.xxx |
| usual.event.PACKAGE\_REPLACED | 无 | 应用安装更新，参数：package:com.xxx.xxx |
| usual.event.PACKAGE\_REMOVED | 无 | 应用卸载，参数：package:com.xxx.xxx |
| usual.event.DISCHARGING | 无 | 停止充电 |
| usual.event.CHARGING | 无 | 开始充电 |
| usual.event.OTA\_TRANSFER | 无 | ota 开始传输 |
| usual.event.OTA\_INSTALL | 无 | ota 开始安装 |
