Вы можете отлаживать приложение камеры на физическом устройстве с помощью отладки по USB.
Чтобы сделать снимок и сохранить его, вам потребуется обратный вызов, подобный следующему:
`
Camera.PictureCallback mPictureCallback = новая камера.PictureCallback () {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
try {
File sdTargetDirectory = new File("/sdcard/directory");
sdTargetDirectory.mkdirs(); // make the above directory if it does not exist
FileOutputStream fos = null;
String fileName = "temp";
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
fos = new FileOutputStream(sdTargetDirectory.toString() +"/" + fileName + ".jpg");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bitmap.compress(CompressFormat.JPEG, 100, bos);
bos.flush();
bos.close();
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
Вы можете реализовать этот обратный вызов в случае прикосновения или кнопки следующим образом:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
camera.takePicture(null, null, mPictureCallback);
break;
}
return true;
}