1

EventKit フレームワークを使用してデバイスで同期されたカレンダーを取得myname@gmail.comし、EKCalendarオブジェクトでカレンダーのタイトルを取得しています。これは素晴らしいことです! ただし、このアカウントのサービス プロバイダーが誰であるかを知る必要があります。wW サフィックスが「@gmail.com」の場合、Google アカウントであることがわかりますが、「@mycoolsite.com」を含む Google アカウントである可能性もあります。実際にシステムからサービス プロバイダーを取得するにはどうすればよいでしょうか。

アカウントのタイトルを取得する方法は次のとおりです。

    EKEventStore * eventStore = [[EKEventStore alloc] init];
NSMutableArray*calendars = [[NSMutableArray alloc]init];
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    if (granted)
    {
        dispatch_async(dispatch_get_main_queue(), ^{
            NSArray * accountsArray = [eventStore calendarsForEntityType:EKEntityTypeEvent];// ios 6 ^


            for (int i = 0; i < [accountsArray count]; i++) {
                NSString *cal = [[accountsArray objectAtIndex:i] valueForKey:@"title"];
                if ([cal rangeOfString:@"@"].location != NSNotFound) {
                    [calendars addObject:[[accountsArray objectAtIndex:i] valueForKey:@"title"]];
                }
            }
            [self gotCalendars:calendars];
        });
    }
4

1 に答える 1

2

sourceTypeサービス プロバイダーを実際に取得することはできませんEKSource

于 2013-08-28T12:59:03.970 に答える