Я пробовал эту ссылку: Stackoverflow
Но все еще не работает в моем приложении. [Android 5.1.1, API 22]
На самом деле, пользователь может выбирать между файлами из галереи или с помощью камеры, результаты которой помещаются в ArrayList
.
Ибо с камеры я хочу, чтобы пользователь брал ее непрерывно без подтверждения, где результаты переходят непосредственно к ArrayList
, а затем к RecyclerView
.
Таким образом, пользователь может видеть результаты фото из RecyclerView.
Можно ли напрямую использовать встроенную камеру с устройства Android?
Действие для фотографирования
private void activeTakePhoto() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra("android.intent.extra.quickCapture",true);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
String fileName = "temp.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
mCapturedImageURI = getContentResolver()
.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
values);
takePictureIntent
.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
Результат деятельности
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { //taken from camera
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor =
managedQuery(mCapturedImageURI, projection, null,
null, null);
int column_index_data = cursor.getColumnIndexOrThrow(
MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String picturePath = cursor.getString(column_index_data);
preparedObjectDataImage("_file", "Taken From Camera", picturePath);
}
}
private void preparedObjectDataImage(String title, String description,
String picturePath) {
Image image = new Image();
image.setTitle(title);
image.setDescription(description);
image.setDatetime(System.currentTimeMillis());
image.setPath(picturePath);
images.add(image);
imageAdapter.notifyDataSetChanged();
}
Спасибо за вашу помощь.