【问题标题】:How to handle pressing of the "back" button when the camera is open相机打开时如何处理按下“返回”按钮
【发布时间】:2015-04-15 09:21:55
【问题描述】:

我应该如何处理按下“返回”按钮和相机按钮?就像,我有一个打开的相机来拍照,但没有拍照我按下硬件“返回”按钮。发生这种情况时,我的应用程序会崩溃。

我应该如何处理按下“返回”按钮?

if (requestCode == 100) {
        if (resultCode == RESULT_OK) {
            if (intent == null) {
                // The picture was taken but not returned
                /*Toast.makeText(
                        getApplicationContext(),
                        "The picture was taken and is located here: "
                                + fileUri.toString(), Toast.LENGTH_LONG)
                        .show();  */              
            } else {
                // The picture was returned
                Bundle extras = intent.getExtras();
                temp_photo = (Bitmap) extras.get("data");
                image1.setImageBitmap(temp_photo);

            }
        }
        else if(resultCode == RESULT_CANCELED)
        {
                if (intent.resolveActivity(getPackageManager()) != null) {
                    startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
                }
                else
                {                 
                    finish();
                }
        }
    }        

【问题讨论】:

  • 欢迎来到 Stack Overflow!我已经编辑了你的问题。当您遇到此崩溃时,LogCat 中是否有任何内容?

标签: android android-intent sdk android-camera android-camera-intent


【解决方案1】:

您可以使用以下方法告诉应用程序在按下后退按钮时要做什么:

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
       if ((keyCode == KeyEvent.KEYCODE_BACK)) {
           onBackPressed();
       }
       return true;
    }
   @Override
    public void onBackPressed() {
        super.onBackPressed();
// Enter your code here

}

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    您不必处理后按,这是由相机应用程序完成的。 您的应用程序正在崩溃,因为在 RESULT_CANCELED 为空的情况下的意图。 如果你想再次“重新启动”相机,你应该做一个新的意图:

    Intent cameraIntent = new  Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多