相机在三星开始时的关键问题

时间:2013-12-24 05:46:24

标签: android samsung-mobile

    final Dialog dailog = new Dialog(getActivity());
    LayoutInflater inflater = LayoutInflater.from(getActivity());

    dailog.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(DialogInterface dialog,int keyCode, KeyEvent event) {

            if (keyCode == KeyEvent.KEYCODE_BACK) {
                      getActivity().finish();//Line-9
            } 
    }
    });

    View dlgView = inflater.inflate(R.layout.xyz, null);
    dailog.setContentView(dlgView);
    ((Button) dlgView.findViewById(R.id.button_camera)).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
                intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
            startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
            dialog.dismiss();
        }
    });
    dialog.show();

当相机开始并按下后退键时,Line-9也会在某些设备中执行(如samsung s3)。有没有解决这个问题的解决方案?

2 个答案:

答案 0 :(得分:1)

当你开始摄像机时设置boolean isCamaraOn = true;

当相机开启且您按下后退按钮

然后

 if(!isCameraOn){//go in only if camera is off
       if (keyCode == KeyEvent.KEYCODE_BACK) {
                  getActivity().finish();//Line-9
        }
 }

在这里你可以将isCamaraOn设置为false;

试试这个,希望对你有用

答案 1 :(得分:0)

您的计划的行为是正确的。请告诉我们您要做的事情(预期行为)。这样我们就可以帮到你了