我在我的应用中使用EventKit,想知道日历属于哪个帐户。
iPhone日历应用程序显示按帐户分组的所有日历,帐户名称为“myname@me.com”或“Gmail myname”。我在哪里可以获得这些帐户名称?
我可以从EKCalendar
获取EKEventStore
的列表,我可以获取每个日历标题,但我不知道从哪里获取帐户名称。这有官方API吗?我还能如何检索这些信息? App Store上的某些应用程序会显示帐户名称,因此必须有一种方法(也会在审批过程中滑过......)
谢谢, 托马斯
更新 在其他地方,我发现了对私有财产的引用。在我自己开始寻找之前,有人知道该物业的名称是什么吗?
在其他地方,人们还建议解析description
(包括帐户),但这不是一种非常安全或优雅的方式,所以我想避免这样做。
更新2: 我确实发现有一个私人财产(和它的名字),它似乎工作正常。
答案 0 :(得分:2)
我查看了Apple的文档,并且似乎无法通过公共API提供帐户名称。如果您使用私有财产,您的应用程序将立即被拒绝,因此我认为App Store上的其他应用程序使用desciption解析方法。
我建议您向Apple发布错误报告,并请求他们通过公共API提供帐户名称。直到他们这样做(如果他们这样做),我认为你唯一的选择就是解析你的应用程序在App Store上的描述
答案 1 :(得分:0)
从iOS 5.0开始,您可以从EKCalendar访问EKSource。 你可以得到这个名字&该来源的类型。
EKEventStore * eventStore = [[EKEventStore alloc] init];
NSArray * calendars = [eventStore calendarsForEntityType:EKEntityTypeEvent];
NSArray * typeNames = [[NSArray alloc] initWithObjects:@"TypeLocal",@"TypeExchange",@"TypeCalDAV",@"TypeMobileMe",@"TypeSubscribed",@"TypeBirthdays", nil];
for (EKCalendar * calendar in calendars) {
NSString * calendarTitle = calendar.title;
EKSource * source = calendar.source;
NSString * accountName = source.title;
EKSourceType type = source.sourceType;
NSLog(@"%@ : %@ (%@)", calendarTitle, accountName, typeNames[type]);
}
生成的日志如下所示: