質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

7261閲覧

【ios-swift】カメラへのアクセス許可のダイアログが出ない

wakabaya

総合スコア7

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/08/13 16:07

###前提・実現したいこと
バーコードを読むアプリを作ろうとしていて,カメラへのアクセス許可が必要です.

###発生している問題・エラーメッセージ

アプリの起動が初回にも関わらず,カメラへのアクセス許可をするダイアログが出ません.
下記のコードを用いて,確かに"not hear"が出力されるところまでは見ていますが,
ダイアログも出ず,勝手にアクセス拒否にされてしまいカメラを使うことができません.
どうすればよいでしょうか?

let status = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo) if status == AVAuthorizationStatus.Authorized { print("OK") // アクセス許可あり } else if status == AVAuthorizationStatus.Restricted { print("NG") // ユーザー自身にカメラへのアクセスが許可されていない } else if status == AVAuthorizationStatus.NotDetermined { print("not hear") // まだアクセス許可を聞いていない let handler:((Bool)->Void) = { bool in print(bool) } AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: handler) } else if status == AVAuthorizationStatus.Denied { print("Deny") // アクセス許可されていない }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

カメラへのアクセス許可のダイアログはアプリの本当に初回のインストール時しか表示されないと思います。

その後削除して再インストールしても前の条件を保持している様です。

上記のコードを使用してこちらでiOS9の端末で確認しましたが、ちゃんと許可、不許可の判定はできていました。

投稿2016/08/13 16:29

_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wakabaya

2016/08/13 16:49

再ビルドすれば,初回インストールに戻るということはないのでしょうか? 少なくとも私の環境では,初回にダイアログが出ずに不許可にされ, それ以降は拒否されているという状態になっています. iPadならばダイアログが出ましたが,iPhone6なら出ない という謎の状況になっています.
_Kentarou

2016/08/13 16:55

> 再ビルドすれば,初回インストールに戻るということはないのでしょうか? これはないです、アプリを入れなおしてもダメです。 設定から許可を選択するとちゃんと反映されます、初回に出なかった原因は分かりません。
_Kentarou

2016/08/13 17:34

Bundle Identifierをちょっとでも変えれば別アプリとして端末にインストールできますので、ダイアログの確認できると思います。
wakabaya

2016/08/13 17:51

Bundle Identifierを変えて試していますが,それでもダイアログは確認できませんでした. 端末,もしくはVersionなどに問題があるのでしょうか?
wakabaya

2016/08/13 17:54

プライバシーのカメラの項目には,アプリが表示されていません. なぜかダイアログは表示されないが自動的に”許可しない”が選択され, なおかつそれは一時的なものにとどまっていると考えられます.
wakabaya

2016/08/13 17:55

やはり開発環境,もしくはその設定に問題があるのでしょうか?
_Kentarou

2016/08/13 21:45

環境を教えてください。Xcodeのバージョン、試している実機のiOSバージョン、端末機種名 こちらで確認したのはXcode7.3.1 iOS9.0.1のiPhone5s、iOS8.4.1 iPhone6Plus、iOS8.0.2のiPadmini、です。 上記のコードでダイアログがでて、許可を切り替える度に状態が取得できることは確認しました。
TakeOne

2016/08/13 22:13

横からすみません。 Apple ConfiguratorやiPhone構成ユーティリティを使用して、問題の端末に対してカメラの使用を制限していないかも確認してみることをお勧めします。 (参考) https://book.mynavi.jp/macfan/detail_summary/id=27653 また、iPhone標準のカメラアプリが使えるか否かや、AppStoreからダウンロードしたカメラ系アプリでアクセス許可のダイアログが出るかどうかを確認すれば、自分のアプリの問題か端末の問題か切り分けしやすくなると思います。
wakabaya

2016/08/14 00:01

>kentarouさん ありがとうございます. Xcode 7.3.1 iOS 9.3.4のiPhone6 です. 他のiPhone6でも同じ現象になる他, iOS 8 のiPad miniならダイアログがでるという状況です. >takeoneさん ありがとうございます. 他のアプリではカメラ許可のダイアログ等が出るので 機能制限していることはなさそうです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問