自分用にアプリ開発時、よく使用するユーザーアクセス許可判定を関数化しメモしました。
コピペで即時利用可能ですので、お役立ていただければと思います。
目次
- アルバム・カメラ・マイク・プッシュ通知のアクセス許可判定一覧
- まとめ
アルバム・カメラ・マイク・プッシュ通知のアクセス許可判定一覧
カメラとマイクのアクセス判定は、事前に AVFoundation Framework をインポートしておく必要があります。
アルバム
[code]
func checkPhotoAuthorizationStatus() {
let status: PHAuthorizationStatus = PHPhotoLibrary.authorizationStatus()
switch (status) {
case .Authorized:
// ユーザーがアクセス許可を承認
break;
case .Restricted:
// まだアクセスが許可されていない
break;
case .NotDetermined:
// ユーザーがまだ選択を行っていない
break;
case .Denied:
// ユーザーがデータへアクセスすることを拒否
break;
}
}
[/code]
カメラ
[code]
import AVFoundation
func checkCameraAuthorizationStatus() {
let status = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
switch (status) {
case .Authorized:
// ユーザーがアクセス許可を承認
break;
case .Restricted:
// まだアクセスが許可されていない
break;
case .NotDetermined:
// ユーザーがまだ選択を行っていない
break;
case .Denied:
// ユーザーがデータへアクセスすることを拒否
break;
}
}
[/code]
マイク
[code]
import AVFoundation
func checkMicrophoneAuthorizationStatus() {
let status = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeAudio)
switch (status) {
case .Authorized:
// ユーザーがアクセス許可を承認
break;
case .Restricted:
// まだアクセスが許可されていない
break;
case .NotDetermined:
// ユーザーがまだ選択を行っていない
break;
case .Denied:
// ユーザーがデータへアクセスすることを拒否
break;
}
}
[/code]
プッシュ通知
[code]
func pushNotificationAuthorizationStatus() -> Bool {
return UIApplication.sharedApplication().isRegisteredForRemoteNotifications()
}
// 使用例
let isPushNotification: Bool = pushNotificationAuthorizationStatus()
[/code]
まとめ
アプリがこれらの機能のアクセスを必須とする場合、判定時に許可されていない、選択をおこなっていない、拒否している場合にはアラートを出し、再度アクセス許可を促すようにすればいいかと思います。
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。