まるのヘタレ日記

技術ビビリなSEが、覚えた事を記述し、次回以降はびびらないで済むように復習します。

「Appのバックグラウンド更新」の設定をObjective-Cから判断する

iOSから追加された「Appのバックグラウンド更新」の設定について、
許可されてるかをObjective-Cから判断する方法について調べました。
A new picture

今ジオフェンスを使ったアプリを作っているのですが、
「Appのバックグラウンド更新」がOFFだとうまく動作しないみたい。

判定方法について書いてる記事探したけど、
「OFFにすると電源長持ちするよー」って記事ばっかw


以下が判定用プログラムソース

    //「Appのバックグラウンド更新」の設定値を取得
    UIBackgroundRefreshStatus status = [UIApplication sharedApplication].backgroundRefreshStatus;

    //判定処理
    switch (status) {
        case UIBackgroundRefreshStatusAvailable:
            //Appの自動更新がON
            NSLog(@"%@",@"利用できる");
            break;
        case UIBackgroundRefreshStatusDenied:
           //Appの自動更新がOFF もしくは、ONだがこのアプリはOFF
            NSLog(@"%@",@"拒否された");
            break;
        case UIBackgroundRefreshStatusRestricted:
            //ペアレンタルコントロール時に入るかも
            NSLog(@"%@",@"制限");
            break;
        default:
            //どんなケースで入るのか不明
            NSLog(@"%@",@"どれでもない");
            break;
    }


公式ドキュメント見た感じだと、
backgroundRefreshStatusってプロパティはiOS7以降から利用可能みたい。
UIApplication Class Reference