Eine Funktion meiner App beinhaltet die Kamera. Der Benutzer macht ein Bild und die App zeigt das Bild an.ACTION_IMAGE_CAPTURE gibt imagefile als Extra statt Daten zurück
Ich starte eine Absicht mit ACTION_IMAGE_CAPTURE mit StartActivityForResult und erfassen die Antwort mit onActivityResult. Normalerweise Ich kann einfach getData() auf die Absicht, die ich in onActivityResult erhalten und rufen Sie den Inhalt uri für den MediaProvider.
Mein Problem ist das folgende: Eines meiner Testgeräte, ein Huawei ALE-L21, hat die Absicht, die ich in onActivityResult bekomme, keine Daten, aber stattdessen hat es ein parabelable Extra. Wie kann ich das Benutzerfoto daraus machen? Android Studio hat mir nicht den Namen des parcellable Extra entweder
Haftungsausschluss: Ich nenne getActivity(), weil ich in einem Fragment diesen Code bin mit
Dies ist, was Ich benutze die Kamera.
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(takePictureIntent, getResources().getInteger(R.integer.RQ_PERMISSION_WRITE_EXTERNAL_STORAGE));
}
Und hier ist der Code in meinem onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultIntent) {
super.onActivityResult(requestCode, resultCode, resultIntent);
switch (requestCode) {
case 1: //RQ_ImageCapture
case 2: //RQ_ImageSelected
if (resultIntent != null) {
try {
Uri selectedImage = resultIntent.getData();
if(selectedImage != null) {
Bitmap bitmap =
MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage);
setImageAsBackground(selectedImage, bitmap);
}
} catch (IOException e) {
e.printStackTrace();
}
}
break;
}
}