Неявное намерение для захвата камеры в Android
Я сталкиваюсь с очень странной проблемой. У меня есть неявное намерение открыть камеру по умолчанию.
Существует изображение с иконкой камеры, которая при нажатии открывает камеру по умолчанию.
Иногда при нажатии на изображение открывается камера, но иногда нет. Когда я нажимаю кнопку "Назад", она открывает камеру по умолчанию. Я озадачен этим. Это проблема в моем коде или ошибка устройства.
Представление изображения находится в виде сетки. Как я создаю вид сетки из захваченных изображений. Первое изображение будет значком камеры, а затем сетка будет иметь захваченные изображения.
Я публикую свой код:
Манифест разрешения:
<uses-feature android:name="android.hardware.camera" />
Java-код:
public void openCamera(String _path, String file_name) {
File file = new File(_path);
if (!file.exists()) {
file.mkdirs();
}
mImageFile = new File(file + file_name);
// create new Intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
mActivity.startActivityForResult(intent, 1);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
//user is returning from capturing an image using the camera
if(requestCode == CAMERA_CAPTURE){
//sets the adapter
}
}
}
1 ответ
Попробуй это и наслаждайся
File file = new File(Environment.getExternalStorageDirectory() + "/DCIM/", "image" + new Date().getTime() + ".png");
Uri imgUri = Uri.fromFile(file);
String imgPath = file.getAbsolutePath();
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, setImageUri());
startActivityForResult(intent, CAPTURE_IMAGE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_CANCELED) {
if (requestCode == CAPTURE_IMAGE) {
imgUser.setImageBitmap(BitmapFactory.decodeFile(imgPath));
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}