2

カメラの懐中電灯を使うアプリを作っています。

私はカメラを開きます:

 Camera cam = Camera.open();

アプリを起動すると、別のアプリが既にカメラを使用している場合、エラーが発生します:

java.lang.RuntimeException: Fail to connect to camera service

まず、カメラが別のアプリで既に開かれている場合、カメラを引き続き使用する方法はありますか?

それが不可能な場合は、アプリがクラッシュする代わりに「カメラは既に使用されています」というメッセージを表示したいと考えています。

この場合、カメラが別のアプリによって既に開かれているかどうかをどのように検出できますか?

4

2 に答える 2

5

カメラが別のアプリケーションで使用されている場合、そのアプリが何らかの方法でカメラをリリースするまで、できることはあまりないと思います。ただし、try-catchブロックを実装して、例外をキャッチできます。

try {
    Camera cam = Camera.open();
}
catch(RuntimeException exception) {
    Toast.makeText(this, "The camera and flashlight are in use by another app.", Toast.LENGTH_LONG).show();
    // Exit gracefully
}
于 2012-07-18T21:59:09.643 に答える
3

Android CameraService では、2 つのクライアントが同時にカメラにアクセスすることはできません。デバイスに 2 つのカメラ (前面と背面) がある場合でも、そのうちの 1 つしか操作できず、一度に 1 つのアプリしか操作できません。サムが提案したように、「優雅に終了する」以外に選択肢はありません。

于 2012-07-18T23:01:15.067 に答える