1

Как мне нажимать кнопку «назад» и кнопку камеры? Например, у меня есть открытая камера, чтобы сделать снимок, но без захвата фотографии я нажимаю кнопку «назад» на аппаратном уровне. Когда это произойдет, мое приложение выйдет из строя.Как справиться с нажатием кнопки «назад», когда камера открыта.

Как обращаться с нажатием кнопки «Назад»?

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(); 
       } 
     } 
    }   
+0

Добро пожаловать на переполнение стека! Я немного изменил ваш вопрос. Когда вы получите этот крах, есть ли что-нибудь в LogCat? –

ответ

0

Вы можете использовать следующий метод, чтобы сообщить приложению, что делать при нажатии кнопки назад:

@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 

} 

Надеется, что это помогает вам.

1

Вам не нужно обращаться с обратным прессом, это делается приложением камеры. Ваше приложение разбивается, потому что намерение в случае RESULT_CANCELED равно null. Если вы хотите «Перезапуск» камера снова вы должны сделать новое намерение:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     startActivityForResult(cameraIntent, CAMERA_REQUEST); 
Смежные вопросы