Общие сведения
OpenHarmony через CES (Common Event Service, общий сервис событий) предоставляет приложениям возможность подписываться на события, публиковать и отменять подписку на общие события.
Общие события можно разделить на системные общие события и пользовательские общие события:
Каждое приложение может подписаться на общие события по мере необходимости. Если подписка успешна и происходит публикация общего события, система отправит его приложению. Эти общие события могут исходить от системы, других приложений или самого приложения.
Архитектура
Рисунок 1. Архитектура подсистемы

Каталог
/base/notification/common_event_service/
│── frameworks # Каталог компонентов
│ |── common/log # Каталог компонента журнала
│ |── core # Реализация нативного интерфейса
│ ├── native # Реализация нативного интерфейса
│── interface # Внешний интерфейс
| |── inner_api # Объявление нативного API
| |── kits/napi # Объявление NAPI API
├── sa_profile # Профиль сервиса
├── services # Реализация сервиса
├── tools # Реализация инструмента
│── ohos.build # Скрипт компиляции
Использование
CommonEvent предоставляет интерфейсы для публикации общих событий, создания подписчиков, подписки и отмены подписки.
Общее событие состоит из двух частей: string-тип event и CommonEventPublishData-тип options. Event представляет название общего события, а options — информацию об атрибутах общего события.
Тип CommonEventSubscribeInfo используется для создания подписчика на общее событие. Он позволяет указать, на какие общие события должен подписаться подписчик, какие разрешения требуются издателю и какой приоритет имеет подписчик.
Тип CommonEventSubscriber используется для получения информации о принятых общих событиях и настройки обработки общих событий.
Перед использованием функциональных интерфейсов необходимо импортировать соответствующий модуль.
import CommonEvent from '@ohos.commonevent';
Описание интерфейса
Опубликовать общее событие (форма обратного вызова).
Параметры publish
Имя | Свойство чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
event | Только чтение | string | Да | Указывает имя публикуемого общего события |
callback | Только чтение | AsyncCallback | Да | Представляет метод обратного вызова для метода публикации общего события |
Возвращаемое значение: void
Пример
import CommonEvent from '@ohos.commonevent'
function PublishCallBack(err) {
console.info("==========================>PublishCallBack=======================>");
}
CommonEvent.publish("publish_event", PublishCallBack);
Описание интерфейса
Публикация общего события с указанием информации о публикации (обратная форма).
Параметры publish
Имя | Свойство чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
event | Только чтение | string | Да | Указывает имя публикуемого общего события |
options | Только чтение | CommonEventPublishData | Да | Представляет информацию об атрибутах публикуемого общего события |
callback | Только чтение | AsyncCallback | Да | Представляет метод обратного вызова метода публикации общего события |
Имя | Свойство чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
bundleName | Только чтение | string | Нет | Указывает название пакета |
code | Только чтение | int | Нет | Представляет код результата общего события |
data | Только чтение | string | Нет | Представляет пользовательские данные результата общего события |
subscriberPermissions | Только чтение | Array | Нет | Представляет разрешения, необходимые подписчику |
isOrdered | Только чтение | bool | Нет | Определяет, является ли это упорядоченным общим событием |
Возвращаемое значение: void
Пример
import CommonEvent from '@ohos.commonevent'
var CommonEventPublishData = {
code: 1,
data: "information_data",
isOrdered: false
}
function PublishCallBack(err) {
console.info("==========================>PublishCallBack=======================>");
}
CommonEvent.publish("publish_event", CommonEventPublishData, PublishCallBack); | | publisherDeviceId | только для чтения | int | нет | обозначает ID устройства, это значение должно быть существующим ID устройства в той же сети ohos |
|---|-------------------|------------------|------|----|--------------------------------------------------------------------------|
| userId | только для чтения | int | нет | представляет собой ID пользователя. Этот параметр является необязательным, и по умолчанию используется текущий ID пользователя. Если этот параметр указан, то его значение должно соответствовать существующему ID пользователя в системе |
| priority | только для чтения | int | нет | указывает на приоритет подписчика, диапазон значений от -100 до 1000 |
-
Возвращаемое значение: void
- Пример
```js
import CommonEvent from '@ohos.commonevent'
var CommonEventSubscribeInfo = {
events: ["event"]
};
function CreateSubscriberCallBack(err, data) {
console.info("==========================>CreateSubscriberCallBack=======================>");
}
CommonEvent.createSubscriber(CommonEventSubscribeInfo, CreateSubscriberCallBack);
Интерфейс
Создание подписчика (Promise форма)
Описание параметров createSubscriber
Имя | Атрибут чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
subscribeInfo | только для чтения | CommonEventSubscribeInfo | да | Представляет информацию о подписке |
| Имя | Атрибут чтения/записи | Тип | Обязательный | Описание | | --- | --- ----------------- | --- | ------------ | --------- | | events | только для чтения | Array | да | Указывает на события, которые будут отправлены | | publisherPermission | только для чтения | string | нет | Указывает на разрешение издателя | | publisherDeviceId | только для чтения | int | нет | Обозначает ID устройства, это значение должно быть существующим ID устройства в той же сети ohos | | userId | только для чтения | int | нет | Представляет собой ID пользователя. Этот параметр является необязательным, и по умолчанию используется текущий ID пользователя. Если этот параметр указан, то его значение должно соответствовать существующему ID пользователя в системе | | priority | только для чтения | int | нет | Указывает на приоритет подписчика. Диапазон значений от -100 до 1000 |
Возвращаемое значение: Promise
Пример
import CommonEvent from '@ohos.commonevent'
var CommonEventSubscribeInfo = {
events: ["event"]
};
CommonEvent.createSubscriber(CommonEventSubscribeInfo).then((data) => {
console.info("==========================>createSubscriberPromise=======================>");
});
Интерфейс
Подписка на общее событие (форма обратного вызова)
Описание параметров subscribe
Имя | Атрибут чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
subscriber | только для чтения | CommonEventSubscriber | да | Описывает объект подписчика |
callback | только для чтения | AsyncCallback | да | Определяет функцию обратного вызова для получения данных общего события |
Имя | Атрибут чтения/записи | Тип | Обязательный | Описание |
---|---|---|---|---|
event | только для чтения | string | да | Обозначает текущее полученное имя общего события |
bundleName | только для чтения | string | нет | Означает имя пакета |
code | только для чтения | int | нет | Используется для передачи данных типа int, обозначает код результата общего события |
data | только для чтения | string | нет | Используется для передачи строковых данных, обозначает пользовательские данные результата общего события |
COMMON_EVENT_POWER_SAVE_MODE_CHANGED | обычное событие POWER_SAVE_MODE_CHANGED | — | | COMMON_EVENT_USER_ADDED | обычное событие USER_ADDED | ohos.permission.MANAGE_LOCAL_ACCOUNTS | | COMMON_EVENT_USER_REMOVED | обычное событие USER_REMOVED | ohos.permission.MANAGE_LOCAL_ACCOUNTS | | COMMON_EVENT_ABILITY_ADDED | общее событие ABILITY_ADDED | ohos.permission.LISTEN_BUNDLE_CHANGE | | COMMON_EVENT_ABILITY_REMOVED | общее событие ABILITY_REMOVED | ohos.permission.LISTEN_BUNDLE_CHANGE | | COMMON_EVENT_ABILITY_UPDATED | общее событие ABILITY_UPDATED | ohos.permission.LISTEN_BUNDLE_CHANGE | | COMMON_EVENT_LOCATION_MODE_STATE_CHANGED | обычное событие location.MODE_STATE_CHANGED | — | | COMMON_EVENT_IVI_SLEEP | общее событие IVI_SLEEP | — | | COMMON_EVENT_IVI_PAUSE | общее событие IVI_PAUSE | — | | COMMON_EVENT_IVI_STANDBY | общее событие IVI_STANDBY | — | | COMMON_EVENT_IVI_LASTMODE_SAVE | общее событие IVI_LASTMODE_SAVE | — | | COMMON_EVENT_IVI_VOLTAGE_ABNORMAL | общее событие IVI_VOLTAGE_ABNORMAL | — | | COMMON_EVENT_IVI_HIGH_TEMPERATURE | общее событие IVI_HIGH_TEMPERATURE | — | | COMMON_EVENT_IVI_EXTREME_TEMPERATURE | общее событие IVI_EXTREME_TEMPERATURE | — | | COMMON_EVENT_IVI_TEMPERATURE_ABNORMAL | общее событие IVI_TEMPERATURE_ABNORMAL | — | | COMMON_EVENT_IVI_VOLTAGE_RECOVERY | общее событие IVI_VOLTAGE_RECOVERY | — | | COMMON_EVENT_IVI_TEMPERATURE_RECOVERY | общее событие IVI_TEMPERATURE_RECOVERY | — | | COMMON_EVENT_IVI_ACTIVE | общее событие IVI_ACTIVE | — | |COMMON_EVENT_USB_STATE | обычное событие hardware.usb.action.USB_STATE | — | |COMMON_EVENT_USB_PORT_CHANGED | обычное событие hardware.usb.action.USB_PORT_CHANGED | — | | COMMON_EVENT_USB_DEVICE_ATTACHED | обычное событие hardware.usb.action.USB_DEVICE_ATTACHED | — | | COMMON_EVENT_USB_DEVICE_DETACHED | обычное событие hardware.usb.action.USB_DEVICE_DETACHED | — | | COMMON_EVENT_USB_ACCESSORY_ATTACHED | обычное событие hardware.usb.action.USB_ACCESSORY_ATTACHED | — | | COMMON_EVENT_USB_ACCESSORY_DETACHED
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )