1

インテントを使用せずにAndroidカスタムカメラアプリケーションを開発しています(Androidの組み込みカメラ機能を取得しないようにするため)。アプリでオート フォーカス機能を有効にしました。キーボリュームボタンを押して写真を撮っています。そして、パラメーターを設定するために以下のコードを使用しています。

    Camera.Parameters p = camera.getParameters();
    camera.autoFocus(autoFocusCallback);
    p.setFocusMode(Parameters.FOCUS_MODE_AUTO);
    camera.setParameters(p1);
    camera.takePicture(shutterCallback, rawCallback, jpgCallback);


    void setHandler(Handler autoFocusHandler, int autoFocusMessage) 
    {
           this.autoFocusHandler = autoFocusHandler;
           this.autoFocusMessage = autoFocusMessage;
    }

    private AutoFocusCallback autoFocusCallback = new AutoFocusCallback() 
    {
         private Object success;
         @Override
         public void onAutoFocus(boolean autoFocusSuccess, Camera camera)
         {  
              if (autoFocusHandler != null)
              {
                    Message message = autoFocusHandler.obtainMessage(autoFocusMessage, success);
                    autoFocusHandler.sendMessageDelayed(message, AUTOFOCUS_INTERVAL_MS);
                    autoFocusHandler = null;
              }
              else
              {

              }
         }
};

しかし、問題は、このコードが LG の電話でのみ正常に機能することです。それを実行した後、他のすべての電話で強制終了しています。

エラーログは次のようになります

http://textuploader.com/?p=6&id=kOc9G

私が間違っているところがわからない。助けてください!ありがとう!

4

3 に答える 3

1

「p.setFocusMode(Parameters.FOCUS_MODE_AUTO);」を使用しないでください。ライン。

デフォルトのフォーカス モードは FOCUS_MODE_AUTO です。

于 2013-09-11T13:29:35.623 に答える