Как исправить следующую ошибку при использовании камеры и библиотеки Android Image Cropper:
После съемки фотографии снова открывается камера и обрезается изображение.
Это откроется дважды для камеры,Кто-нибудь может сказать, где проблема?Я не могу решить эту ошибку.Пожалуйста, помогите мне.
Конфиг:
compileSdkVersion 28
minSdkVersion 18
targetSdkVersion 28
зависимости:
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
Мой Permission
и camera
код:
if (checkSelfPermission(Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA}, MY_CAMERA_REQUEST_CODE);
}
else
{
Intent camera_intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File file=new File(Environment.getExternalStorageDirectory(),"file"+String.valueOf(System.currentTimeMillis()+".jpg"));
Uri uri = FileProvider.getUriForFile(NewAdActivity.this, BuildConfig.APPLICATION_ID + ".provider",file);
camera_intent.putExtra("return-data", true);
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(camera_intent,1);
}
и onActivityResult
:
public void onActivityResult(int requestCode,int resultCode,Intent data)
{
if (requestCode==1&&resultCode==RESULT_OK) //camera
{
CropImage.activity(uri).setAspectRatio(1,1).setRequestedSize(512,512).start(this);
}
else if (requestCode==2&&resultCode==RESULT_OK) { //gallery
uri=data.getData();
CropImage.activity(uri).setAspectRatio(1,1).setRequestedSize(512,512).start(this);
}
else if (requestCode==CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE&&resultCode==RESULT_OK)
{
CropImage.ActivityResult result = CropImage.getActivityResult(data);
Uri resutlUri=result.getUri();
images.get(current_image).setImageURI(resutlUri);
fill_images[current_image]=true;
BitmapDrawable bd=((BitmapDrawable) images.get(current_image).getDrawable());
Bitmap bm=bd.getBitmap();
ByteArrayOutputStream bao=new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG,90,bao);
image_base64=Base64.encodeToString(bao.toByteArray(),Base64.DEFAULT);
checkConnection();
new upload_image().execute();
}
}