J'essaie d'implémenter une application qui aide l'utilisateur à capturer une photo et à la recadrer ou à la recadrer, l'application fonctionne avec succès dans Android 4.4 mais quand essayer de la tester dans un autre appareil 5.1 et sélectionnez l'option de sauvegarde avec le message suivant unfortunately gallery has stopped
le code suivant comment je commence à recadrer.Galerie s'est arrêté
public void ImageCropFunction() {
try {
CropIntent = new Intent("com.android.camera.action.CROP");
CropIntent.setDataAndType(uri, "image/*");
CropIntent.putExtra("crop", "true");
CropIntent.putExtra("scaleUpIfNeeded", true);
CropIntent.putExtra("return-data", true);
startActivityForResult(CropIntent, 1);
} catch (ActivityNotFoundException e) {
}
}
et pour l'image de prendre de la caméra
public void ClickImageFromCamera() {
CamIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
file = new File(Environment.getExternalStorageDirectory(),
"file" + String.valueOf(System.currentTimeMillis()) + ".jpg");
uri = Uri.fromFile(file);
CamIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri);
CamIntent.putExtra("return-data", true);
startActivityForResult(CamIntent, 0);
}
et pour l'image de sélection de la galerie
public void GetImageFromGallery() {
GalIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(GalIntent, "Select Image From Gallery"), 2);
}
et demander exécuter l'autorisation de temps à l'aide
public void EnableRuntimePermission() {
if (ActivityCompat.shouldShowRequestPermissionRationale(StartUp.this,
Manifest.permission.CAMERA)) {
Toast.makeText(StartUp.this, "CAMERA permission allows us to Access CAMERA app", Toast.LENGTH_LONG).show();
} else {
ActivityCompat.requestPermissions(StartUp.this, new String[]{
Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,}, RequestPermissionCode);
}
}
et pour résultat get de ramasser ima ge ou demande la permission
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0 && resultCode == RESULT_OK) {
ImageCropFunction();
} else if (requestCode == 2) {
if (data != null) {
uri = data.getData();
ImageCropFunction();
}
} else if (requestCode == 1) {
if (data != null) {
Bundle bundle = data.getExtras();
Bitmap bitmap = bundle.getParcelable("data");
this.bitmap = bitmap;
imageView.setImageBitmap(bitmap);
buttonDetect.setVisibility(View.VISIBLE);
}
}
}
Logcat ne montrent aucun problème après l'accident se produire que montrer l'
START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView
Quelqu'un peut-il aider?
'catch (ActivityNotFoundException e) { }'? Vide? Mettez le habituel e.printStackTrace() et un Toast() où vous montrez e.getMessage() à l'utilisateur. Maintenant, votre utilisateur et vous ne savez pas ce qui se passe. – greenapps
'et pour obtenir le résultat de la sélection de l'image ou de l'autorisation de la demande' Vous ne pouvez pas utiliser onActivityResult pour obtenir une autorisation. Il ne sera pas appelé si vous en avez un. Implémentez onRequestPermissionsResult() à la place. – greenapps
@greenapps pour 'catch (ActivityNotFoundException e) {}' je l'essaie mais ne montre pas en question et toast n'apparaissent pas aussi. pour obtenir la permission que je veux dire vérifier la permission accordée ou non – Azak