2011-12-27 14 views
19

私はインテント(MediaStore.ACTION_IMAGE_CAPTURE)によって起動されたデフォルトのデバイスカメラアプリケーションを使用して複数の写真を撮ろうとしています。私がテストしているデバイスでは、カメラが起動し、写真を撮り、確認を求めてから、結果を処理する私の活動に戻ります。カメラの意図を消す前に複数の写真を撮るには?

私は、ブロードキャストレシーバーコールバックまたはコンテンツオブザーバーを使用することを検討しました。しかし、私はカメラを起動し、ユーザーが終了するまでアクティブに保つ方法を見つけることができません。可能であれば、カスタムカメラアプリケーションの開発を避けたいと考えています。

これは、ユーザーが複数の写真を連続して撮影する必要があり、一部のデバイスではカメラの起動時間が5秒以上で、ソフトウェアを使用するユーザーが連続して10〜30枚の写真を撮るためです;それだけでなく、さまざまなカメラパラメータを制御する必要があります。

カメラインテントを起動する方法はありますか?は、ユーザーがカメラアプリケーションを終了すると、自分のアクティビティに戻るだけですか?

答えて

18

私は静止画モードでカメラを起動し、ユーザーが活動を終了するまで終了しないデバイスのカメラのための代替目的のアクションがあることをSDKのドキュメントによって発見:

と相まって
Intent intent = new Intent(
    MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); 
this.startActivity(intent); 

ContentObserverはこれが私が達成するのに必要なものでした。

+0

これはうまく動作していますが、キーを押しているときに戻ってきます。nullポインタ例外が発生しました。どのようにして取り除くことができますか? – Meghna

+0

@Chris Hutchinson:その複数の画像を撮る。キャプチャされたイメージパスやfileNameをアプリケーションに取り込む方法はありますか? – John

+0

これはかなり前のことでしたが、私が遭遇した最善の方法は、ContentObserverを使ってイメージが作成されたことを検出することでした。十分に信頼できるものが見つからない場合は、パスが電話のカメラディレクトリ内にあるかどうかを確認できます。このディレクトリを見つけるためのAPIがあるかもしれません。私は覚えていない。 –

関連する問題