2016-08-19 7 views
0

Я использую Android 5.0 для реализации приложения, которое позволяет автоматически захватывать и сохранять изображение в моем телефоне. В настоящее время я использую следующий код, но для этого требуется нажать кнопку захвата в Capture UI моего телефона. Можно ли сохранить и сохранить изображение без нажатия кнопки захвата? Например, я просто вызываю функцию myCaptureandSave(), затем на телефоне будет отображаться пользовательский интерфейс Capture и промежуточное захват изображения и сохранение, мне не нужно делать больше шагов.Как автоматически захватывать и сохранять изображение без нажатия кнопки захвата в Android?

 public void myCaptureandSave() { 
     String image_path = Environment.getExternalStorageDirectory() +"/"+System.currentTimeMillis()+".jpg"; 
     Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     //File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 
     File output = new File(image_path); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(output)); 
     startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
     } 
+1

Вы не можете сделать это с намерением. Цель открывает другие приложения. Вы должны сделать свое собственное приложение для камеры. Folow [this] (https://developer.android.com/guide/topics/media/camera.html#custom-camera) для инструкций –

ответ

1

Вы должны использовать Camera Api. Создайте службу, работающую в фоновом режиме, которая содержит ссылку на эту api и текущую SurfaceTexture, необходимо, чтобы камера была «просматривать в никуда». после этого вы сможете делать снимки, даже если устройство обнаружено.

1

Да, это возможно, но я считаю, что вы не можете сделать это, используя внутреннюю камеру (называющую намерение). Вы должны использовать Camera2 API.

Я сделал библиотеку использовать Camera2 API, вы можете посмотреть на него, если вы хотите:

https://github.com/omaflak/Android-Camera2-Library

В вашем случае, просто передать фиктивный SurfaceTexture для предварительного просмотра и вызвать takePicture().

Надеется, что это поможет

+0

Отлично, я тестирую – Jame

+0

Спасибо, но у меня есть ошибка, когда я запускаю на своем устройстве , Я сообщил в https://github.com/omaflak/Android-Camera2-Library/issues/2 – Jame

+0

И я также хочу использовать приложение «Встроенная камера» на Android. Является ли это возможным? – Jame

 Смежные вопросы

  • Нет связанных вопросов^_^