| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- import { startAbility, stopAbility } from '@ohos.ability.featureAbility';
- import { NotificationManager } from '@ohos.notificationManager';
- import { BusinessError } from '@ohos.base';
- import { Want } from '@kit.AbilityKit';
- export class ServiceManager {
- private static instance: ServiceManager;
- private constructor() {}
- public static getInstance(): ServiceManager {
- if (!ServiceManager.instance) {
- ServiceManager.instance = new ServiceManager();
- }
- return ServiceManager.instance;
- }
- // 启动服务并指定通知标题和内容
- startService(notificationTitle: string, notificationContent: string) {
- const want: Want = {
- bundleName: 'com.example.myapp',
- abilityName: 'MyService',
- parameters: {
- notificationTitle: notificationTitle,
- notificationContent: notificationContent
- }
- };
- startAbility(want, (err: BusinessError) => {
- if (err) {
- console.error(`Failed to start service. Code is ${err.code}, message is ${err.message}`);
- return;
- }
- console.info('Succeeded in starting service.');
- });
- }
- // 关闭服务
- stopService() {
- const want: Want = {
- bundleName: 'com.example.myapp',
- abilityName: 'MyService'
- };
- stopAbility(want, (err: BusinessError) => {
- if (err) {
- console.error(`Failed to stop service. Code is ${err.code}, message is ${err.message}`);
- return;
- }
- console.info('Succeeded in stopping service.');
- });
- }
- // 检测通知权限
- checkNotificationPermission() {
- return new Promise<boolean>((resolve, reject) => {
- NotificationManager.isNotificationEnabled((err: BusinessError, isEnabled: boolean) => {
- if (err) {
- reject(err);
- } else {
- resolve(isEnabled);
- }
- });
- });
- }
- // 申请通知权限
- requestNotificationPermission() {
- return new Promise<void>((resolve, reject) => {
- NotificationManager.requestEnableNotification((err: BusinessError) => {
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- });
- });
- }
- // 更新通知内容和标题
- updateNotification(notificationTitle: string, notificationContent: string) {
- const want: Want = {
- bundleName: 'com.example.myapp',
- abilityName: 'MyService',
- parameters: {
- notificationTitle: notificationTitle,
- notificationContent: notificationContent
- }
- };
- startAbility(want, (err: BusinessError) => {
- if (err) {
- console.error(`Failed to update notification. Code is ${err.code}, message is ${err.message}`);
- return;
- }
- console.info('Succeeded in updating notification.');
- });
- }
- }
|