[解決済み] iOSでカメラの権限を検出する
2022-04-27 17:51:26
質問
非常にシンプルな動画アプリを開発しています。公式のコントロールを使っています。UIImagePickerControllerを使用しています。
ここで問題です。UIImagePickerControllerを初めて提示するとき、iOSは許可を求めます。ユーザーは、「はい」か「いいえ」をクリックできます。ユーザーが「いいえ」をクリックした場合、コントロールは解除されません。その代わり、ユーザーがスタートボタンをクリックし続けると、画面が常に真っ黒のままタイマーが進み、ユーザーはタイマーを止めることも戻ることもできなくなる。ユーザーができることは、アプリを終了させることのみです。次にUIImagePickerControllerが表示されると、やはり黒い画面になり、ユーザはスタートをクリックしても戻ることはできません。
バグかなと思っていたのですが。カメラのパーミッションを検知して、UIImagePickerControllerを表示するかどうか判断する方法はないでしょうか?
どのように解決するのですか?
を確認します。
AVAuthorizationStatus
を作成し、ケースを適切に処理してください。
NSString *mediaType = AVMediaTypeVideo;
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
if(authStatus == AVAuthorizationStatusAuthorized) {
// do your logic
} else if(authStatus == AVAuthorizationStatusDenied){
// denied
} else if(authStatus == AVAuthorizationStatusRestricted){
// restricted, normally won't happen
} else if(authStatus == AVAuthorizationStatusNotDetermined){
// not determined?!
[AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
if(granted){
NSLog(@"Granted access to %@", mediaType);
} else {
NSLog(@"Not granted access to %@", mediaType);
}
}];
} else {
// impossible, unknown authorization status
}
関連
-
dyld: ライブラリがロードされていません。エラーの解決
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み】iOSアプリの名前を変更する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS classic error Undefined symbols for architecture XXX:
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み] swiftで電子メールアドレスを検証する方法は?