2011-09-13 6 views
11

私はバックグラウンドで実行されているサービスを開発しており、画像やデータをウェブにアップロードしています。カメラを使って、バックグラウンドで写真を撮るにはどうすればいいですか?

カメラで撮影した画像をアップロードします。

Android 2.2でプレビューせずにバックグラウンドサービスでカメラを使用することはできますか?

ウェブでさまざまなコントラストの回答が見つかりました。

どうすればいいですか?

答えて

9

ダミービューでプレビューせずに写真を撮ることができます。

よう

SurfaceView view = new SurfaceView(this); 
c.setPreviewDisplay(view.getHolder()); 
c.startPreview(); 
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback); 
+2

ここに記載されているように、これはすべてのデバイスで動作しません:http://stackoverflow.com/a/5384913/318870 –

+1

c、shutterCallbackおよびすべての変数は何ですか?コード全体を指定してください。 – jyomin

+2

このコードはありません正しい。 'windowManager'に' view'を追加する必要がありました。また、 'view.getHolder()'にコールバックを追加し、 'surfaceCreated'でプレビューを設定し、プレビューを開始して画像を撮る必要がありました。 – Sam

1

プレビュー/表面表示なしでは不可能です。

+0

確かに、あなたはまだ、このような透明プレビューや1x1のプレビューとしてトリックを使用することができます。また、いくつかの携帯電話では、表示されていないダミーの 'SurfaceTexture'や' SurfaceView'を使うことができます。 – Sam

+0

一部のデバイス(My note 2など)ではSurfaceviewなしで動作しますが、すべてのデバイスで動作しません。 したがって、SurfaceViewを使用する必要があります。 – TheOnlyAnil

関連する問題