1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Swift】カメラと写真のアクセス許可を取得する

1
Posted at

はじめに

Swiftで開発していて、カメラと写真のアクセス許可を取得する実装する機会があったので備忘録として記事にします。

カメラのアクセス許可

カメラのアクセス許可は、AVCaptureDeviceで取得できるようです。

  // カメラのアクセス許可の状態を取得する
  let status = AVCaptureDevice.authorizationStatus(for: .video)
  switch (c) {
    case .authorized:
      print("camera is authorized")
    case .denied:
      print("camera is denied")
    case .restricted:
      print("camera is restricted")
    case .notDetermined:
      print("camera is notDetermined")
    @unknown default:
      print("camera is unknown")
  }

写真のアクセス許可

写真のアクセス許可は、PHPhotoLibraryで取得できるようです。

注意事項
iOS14以降ではauthorizationStatus(for:)を使わないと、「選択した写真」という許可状態(.limited)が取得できないみたいです。
authorizationStatus()を使うと、「選択した写真」という許可状態は.authorizedで返ってきます。

var status: PHAuthorizationStatus
if #available(iOS 14, *) {
  status = PHPhotoLibrary.authorizationStatus(for: .readWrite)
} else {
  status = PHPhotoLibrary.authorizationStatus()
}
        
switch (status) {
  case .authorized:
    print("photo is authorized")
  case .denied:
    print("photo is denied")
  case .restricted:
    print("photo is restricted")
  case .notDetermined:
    print("photo is notDetermined")
  case .limited:
    print("photo is limited")
  @unknown default:
  print("photo is unknown")
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?