HarmonyOS 关于calendarManager(日程管理能力的咨询)

在申请日历的读写权限之后 ,调用下面的代码获取用户的日程。

let calendarMgr = calendarManager.getCalendarManager(getContext());
calendarMgr?.getAllCalendars((err: BusinessError, data: calendarManager.Calendar[]) => {
  if (err) {
    console.error(`Failed to get all calendars, err -> ${JSON.stringify(err)}`);
  } else {
    console.info(`Succeeded to get all calendars, data -> ${JSON.stringify(data)}`);
    data.forEach((calendar) => {
      calendar.getEvents((err: BusinessError, event: calendarManager.Event[]) => {
        if (err) {
          console.error(`Failed to get events, err -> ${JSON.stringify(err)}`);
        } else {
          console.info(`Succeeded to get events, data -> ${JSON.stringify(event)}`);
        }
      });
    })
  }
});

但是,这里只能获取到通过下面:

addEvent(){
  const date = new Date();
  const event: calendarManager.Event = {
    type: calendarManager.EventType.NORMAL,
    title:'火车站接人',
    startTime: date.getTime()+ 60 * 60 * 1000* 48,
    endTime: date.getTime() + 60 * 60 * 1000*49
  };
  let calendarMgr = calendarManager.getCalendarManager(getContext());
  calendarMgr?.getCalendar((err: BusinessError, data:calendarManager.Calendar) => {
    if (err) {
      console.error(`Failed to get calendar, err -> ${JSON.stringify(err)}`);
    } else {
      console.info(`Succeeded to get calendar, data -> ${JSON.stringify(data)}`);
      data.addEvent(event).then((eventId: number) => {
        console.info(`Succeeded to add event, id -> ${eventId}`);
      }).catch((err: BusinessError) => {
        console.error(`Failed to addEvent, err -> ${JSON.stringify(err)}`);
      });
    }
  });
}

addEvent获取的日程,不能获取主动打开系统日历app ,自己手动添加的日程。

问题:

1.是否这个api只能获取通过调用addEvent添加的日程?

  1. 用户主动打开系统日历添加的日程是不是获取不到?

  2. 假如如App A通过createCalendar创建了日历,然后 创建了日程APP B是否能够获取到?

HarmonyOS
2024-12-27 15:02:51
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

1、calendarManager不止可以获取addEvent添加的日程,也可以通过calendarManager.getCalendar方法获取的Calendar对象,获取指定的日程。

2、用户通过系统日历添加的日程是可以被获取到的。具体来说,可以使用calendarManager.getCalendar方法来获取默认Calendar对象,或者使用getAccount和getConfig方法获取日历账户信息和配置信息。

3、因为数据安全隐私管控,三方APP只能获取本应用创建的日程,其他应用创建的日程都无法获取。

分享
微博
QQ
微信
回复
2024-12-27 17:31:58
相关问题
HarmonyOS 状态管理咨询
495浏览 • 1回复 待解决
咨询HarmonyOS应用加壳能力
431浏览 • 1回复 待解决
HarmonyOS 关于照片压缩咨询
139浏览 • 1回复 待解决
HarmonyOS 关于vp问题咨询
331浏览 • 1回复 待解决
HarmonyOS 请求队列管理咨询
145浏览 • 1回复 待解决
HarmonyOS 关于加密算法咨询
23浏览 • 1回复 待解决
HarmonyOS 关于struct index咨询
22浏览 • 1回复 待解决
HarmonyOS 关于状态管理
296浏览 • 1回复 待解决
HarmonyOS 关于内存管理
170浏览 • 0回复 待解决
HarmonyOS 关于仓颉咨询问题
144浏览 • 1回复 待解决
HarmonyOS 关于router.back问题咨询
587浏览 • 1回复 待解决
HarmonyOS 关于页面埋点方案咨询
632浏览 • 1回复 待解决
HarmonyOS 关于native aki库功能咨询
244浏览 • 1回复 待解决
HarmonyOS 关于GIF图片播放功能咨询
169浏览 • 1回复 待解决
日程id范围是多少?
323浏览 • 1回复 待解决
关于数据缓存问题咨询
507浏览 • 1回复 待解决
HarmonyOS 咨询关于短时后台任务
157浏览 • 1回复 待解决