カレンダー・リマインダーにアクセスしているアプリをiOS 6のプライバシー設定に対応させる方法

公開日: : 最終更新日:2012/12/19 iOSアプリ開発

    

こんにちは。アキオ(@akio0911)です。

アプリからiOSのカレンダー情報にアクセスするためには、まずユーザーから許可を得る必要があります。

そこで、先日のアドレス帳にアクセスしているアプリをiOS 6のプライバシー設定に対応させる方法に引き続き、今日はカレンダーにアクセスしているアプリをiOS 6のプライバシー設定に対応させる方法を解説したいと思います。

関連 : アドレス帳にアクセスしているアプリをiOS 6のプライバシー設定に対応させる方法

関連 : iOSのEventKitでiPhoneのカレンダー情報を読み取る方法

スポンサード リンク

authorizationStatusForEntityType:メソッド

IMG 6434

    

+ (EKAuthorizationStatus)authorizationStatusForEntityType:(EKEntityType)entityType

EKEventStoreのauthorizationStatusForEntityType:メソッドを呼び出すと、ユーザーがアプリに対してカレンダー・リマインダーへのアクセスを許可しているのか拒否しているのかを確認することができます。

返り値の値は以下の通りです。

    

返り値 説明
EKAuthorizationStatusNotDetermined ユーザーにまだアクセスの許可を求めていない場合
EKAuthorizationStatusRestricted iPhoneの設定の「機能制限」でカレンダー・リマインダーへのアクセスを制限している場合
EKAuthorizationStatusDenied カレンダー・リマインダーへのアクセスをユーザーから拒否されている場合
EKAuthorizationStatusAuthorized カレンダー・リマインダーへのアクセスをユーザーが許可している場合

    

requestAccessToEntityType:completion:メソッド

IMG 6430

    

- (void)requestAccessToEntityType:(EKEntityType)entityType completion:(EKEventStoreRequestAccessCompletionHandler)completion

    

ユーザーに対して、カレンダー・リマインダーにアクセスする許可を求めます。

ユーザーが「OK」か「許可しない」のどちらかをタップすると、completionに渡したハンドラが呼ばれます。

    

EKEventStoreRequestAccessCompletionHandlerハンドラ

typedef void (^EKEventStoreRequestAccessCompletionHandler)(BOOL granted, NSError *error);

    

requestAccessToEntityType:completion:メソッドに渡すハンドラです。

ユーザーが「OK」をタップした場合は、grantedにtrueが入ります。

ユーザーが「許可しない」をタップした場合は、grantedにfalseが入ります。

    

コード例

コード例を以下に示します。

    

	self.eventStore = [[EKEventStore alloc] init];

    EKAuthorizationStatus status = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent];
    
    switch (status) {
        case EKAuthorizationStatusNotDetermined:
            [self.eventStore requestAccessToEntityType:EKEntityTypeEvent
                                            completion:^(BOOL granted, NSError *error)
            {
                if(granted){
                    [self fetchEventsAndDisplay];
                }else{
                    
                }
            }];
            break;
        case EKAuthorizationStatusDenied:
        case EKAuthorizationStatusRestricted:
            [self presentError];
            break;
        case EKAuthorizationStatusAuthorized:
            [self fetchEventsAndDisplay];
            break;
        default:
            break;
    }

    

あとがき

もし間違いなどありましたら、@akio0911までご指摘頂けると助かります。

    

関連記事

no image

検索キーワードにひらがなを入れてみよう

Tweet ども、@akio0911 です。 AppStoreでアプリを検索する時って、ひらが

記事を読む

no image

先はまだ長い

記事を読む

no image

iPhone adhoc ビルドの手順

iPhone のプログラムポータルで配信証明書を作成、ダウンロード 配信証明書をダブルクリ

記事を読む

dash-20130802-1818.jpg

【iOSアプリ開発】Dashでドキュメントのページ内を素早く検索する方法があった!

     以前紹介記事を書いた、クラスリファレンスを素早く検索・表示できるMacアプリ

記事を読む

skitched-20120521-122714.jpg

「15時間で覚える Twitterアプリ for iPhone開発講座」2日目 レポート

     こんにちは、アキオ(@akio0911)です。 先日、15時間でTwi

記事を読む

20140527-000424.jpg

CGPoint・CGSize・CGRectをログ出力する際に便利な関数

今日は、iOSアプリ開発でCGPoint・CGSize・CGRectをログ出力する際に便利な

記事を読む

20140304-013828.jpg

UISegmentedControlを使ってUIViewControllerを切り替える方法

先日紹介した「カスタムコンテナビューコントローラーを作る」の応用例として、UISegment

記事を読む

skitched-20110924-214605.jpg

第11回 南東京iPhone開発者勉強会に参加してきました

南東京iPhone開発者勉強会 11回目に参加してきました。 会場となった

記事を読む

skitched-20121219-175747

iOSで方角を取得する方法

CLLocationManagerを初期化する。 CLLocationMan

記事を読む

no image

ARkit for iPhone で遊んでる

簡単に使えて、New BSD License。 素晴らしいですね。

記事を読む

20140714-144729.jpg
サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

アップルの開発者向けイベント「WWDC2014」に参加するため

slooProImg_20140714064146.jpg
ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

slooProImg_20140713230358.jpg
十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

slooProImg_20140712085918.jpg
大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

20140625-114250.jpg
ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑