CameraShot über Intent Problem

  • Antworten:1
TheEvilOne
  • Forum-Beiträge: 311

20.03.2012, 13:01:09 via Website

Hallo,



ich habe eine MalApp geschrieben. Sie ist soweit fertig, nur heute ist mir noch ein Bug aufgefallen. Und dieser Bug hindert mich als einzigstes noch vor der Veröffentlung im Market *argh*



Und zwar kann man in der App die Kamera aufrufen und ein Foto machen. Das Foto wird dann der Zeichenfläche hinzugefügt und man kann es bemalen. Auf allen Smartphones funktioniert es einwandtfrei.



Jetzt konnte ich die Funktion heute früh auf einem Samsung Galaxy Tab und einem Acer Iconia testen und bei beiden fliegt mir die Anwendung an der Stelle um die Ohren.



In der Anwendung rufe ich über ein Intent die Kamera auf:



1Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
2
3intent.putExtra(MediaStore.EXTRA_OUTPUT, true);
4
5startActivityForResult(intent, CAM_REQUESTCODE);



Nachdem man ein Bild gemacht hat, kann man auf der Kamera "Fertig" oder "Speichern" klicken, dann wird folgender Code ausgeführt:



1if(data != null){
2
3Uri selectedImage = data.getData();
4
5String[] filePathColumn = { MediaStore.Images.Media.DATA };
6
7Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
8
9...



Wie gesagt, bei Smartphones funktioniert es super. Bei Tablets ist die Uri "selectedImage" null und ich bekomme eine NullPointerException.



Ich möchte, dass die Kamera das Bild in ihrem vom System vorgegebenen Ordner ablegt. Von dem geschossenen Bild erstelle ich mir eine Kopie und zeige diese in der Zeichenfläche an, ohne sie zu diesem Zeitpunkt in das Dateisystem zu schreiben.



Ich dachte erst, es könnte vielleicht daran liegen, dass die Camera meines Smartphones die Bilder auf der SD-Karte und das Tablets die Bilder in den internen Speicher ablegt. Aber dann würde ich doch eine andere Fehlermeldung bekommen.



Kennt jemand das Problem oder kann mir irgendwie weiterhelfen?



Danke und viele Grüße

Antworten