オートフォーカスや露出はアプリ側がプレビューをハンドリングしながら行う。アプリ側のロジックでカメラを制御していく感じです。細かな制御ができるようになった分、アプリが複雑になった印象です。シャッタースピードとか感度設定の新機能は今回試して無いのでよくわかりません。撮影で数ステップのコールバックによる非同期処理が必要になります。整理すると以下のようになります。そのまま実装するといわいるコールバック地獄になります。Googleのサンプルコードからこれを読み取るのに1日かかりました。オリジナルのサンプルGoogleのサンプルを元に最小構成のサンプルを独自に作ってみます。簡略化のため以下の機能を削ります。バックグラウンドスレッドと排他制御(全部UIスレッド)画面回転対応(縦置固定)状態遷移マシンコールバック地獄回避のため状態遷移を導入します。Googleのサンプルから読み取った各状態を整理した物が以下になります。TextureViewの初期化。Safaceとして使えるようになるのを待ます。初期化済の場合はスルー。カメラデバイスの開始。ImageReaderやTexcureViewの設定を行います。キャプチャセッションの接続。ここが安定状態となります。オートフォーカス(AF)中。AF要求を発行して焦点が合うまでコールバックを受け続けます。自動露出(AE)調整中。AE要求を発行して露出が合うまでコールバックを受け続けます。撮影要求を発行して完了を待ちます。コールバックに返されます。全てのリソースを開放します。新しい仕組みでカメラから画像を受け取る為のAPIです。これに各種要求を発行して結果をコールバックで貰うのが基本パターンになります。ドキュメントを参照してください。