2016-07-21 3 views
3

我々のアプリは、バックグラウンドサービスとして実行され、正面カメラから画像を連続して取得し、画像で処理します。しかし、ユーザーがカメラを使用する別のアプリケーションを開こうとすると、新しいアプリケーションがクラッシュしたり、クラッシュしたり、クラッシュしたり、クラッシュしたり、新しいものがカメラにアクセスしたりする、2つのことが起こります。別のアプリがカメラを使用しようとしたときに検出する

私たちのアプリがカメラの制御を失った場合、私たちが捕まえることができる例外があります。そして、私たちはアクセスを得て物事が正常に戻るまでアクセスを試みることができます。

私たちのために他のアプリがクラッシュする問題があります。これを検出する方法はありますか?カメラにアクセスできるようになるまでアプリを一時停止できますか?

+0

関連[質問](http://security.stackexchange.com/questions/40284/how-can-i-detect-which-background-application-is-using-the-camera-microphone-or) – Bill

答えて

0

これは、カメラが排他的なリソースであるために発生します。

私が言うこれ、Camera documentationを読んですることをお勧めいたします:

をアプリケーションが適切にカメラを解放しない場合は、あなた自身の アプリケーションによるものも含めたカメラにアクセスするには、すべての 以降の試みが、失敗します。あなたまたは他のアプリケーションがシャットダウンする可能性があります。

+0

私たちのアプリはカメラに常にアクセスする必要があります。他のアプリがその理由を通知しなくてもちょうどクラッシュする(一部の携帯電話は通知し、バックグラウンドからアプリをフォアグラウンドに持ってくることさえあります)ので、別のアプリがそのアプリを使用しようとしたときにリリースしたいと考えています。私たちの分析をしてから、カメラをやり直すのは遅すぎるでしょう(カメラの開口部のテストは約350ミリ秒かかりますが、最低15 fpsで動作させる必要がありますが、20以上は良いでしょう) – AndydnA

+0

なぜあなたのアプリが開いていないときにカメラへのアクセスが必要ですか? onpauseメソッドでカメラを解放し、onresumeメソッドでカメラを再初期化できます。 – drew

+0

アプリが何らかの理由でカメラを開くことに失敗した場合、RuntimeExceptionがスローされます。便利なコード[here](http://stackoverflow.com/questions/15862621/how-to-check-if-camera-is-opened-by-any-application)があります。 –

関連する問題