AKUAssetManager はUIImagePickerControllerの補助的なライブラリです。

iOS6以降 写真やGPSなどアクセスするのに許可が必要なものが増えてきていて、iOS8だとローカル通知やカメラ等もアクセス許可が必要です。

写真などはアクセスが無いときの表示はiOS側がやってくれるのでいいですが、カメラの場合は真っ黒な画面で撮影からキャンセルしないと戻れないというかなり微妙な事になります。

以前、iOS6でプライバシー > 写真へのアクセス許可があるかどうかを判定する方法 | Technology-Gymというので書きましたが、許可がでているかは取得することができるので、許可がない場合はアラートを出して設定画面で変更してもらう必要があります。

AKUAssetManagerはこれのカメラと写真を対象に手助けするライブラリです。

screenshot

という感じで、カメラを呼ぶときに許可があるかどうかを見てから呼び出すことができ、また設定画面へ行くように促す機能が入っています。

iOS8からアプリの設定画面へアクセス出来るようになっているので、iOS8の場合は設定へ直接誘導してくれます。

インストール

CocoaPodsでインストールできます。


pod "AKUAssetManager"

使い方

pod try AKUAssetManager

で試すのが早いです。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.manager = [[AKUImagePickerManager alloc] init];
}
// if allow to use camera, present UIImagePickerController
- (IBAction)openCamera:(id)sender {
    [self.manager openCameraWithDelegate:self];
}
// if allow to use photo, open UIImagePickerController
- (IBAction)openPhoto:(id)sender {
    [self.manager openPhotoAlbumWithDelegate:self inView:sender];
}

AKUImagePickerManager

のインスタンスにはカメラや写真をUIImagePickerControllerで開く + 権限チェック をしてくれるメソッドがそれぞれ生えています。

また、権限チェックだけを使いたい場合はAKUCaptureManager.hAKUAssetManager.hを見るといいでしょう。

(*カメラと写真の権限はそれぞれ別となっていて、カメラの権限はiOS7以降でしか触れません)

まだ、日本語しか入ってないのでローカライズが必要な場合はpull requestするといいと思います。

Post Navigation