Also ich versuche, die Kamera-Aktivität mit dem folgenden Code zu starten:EXTRA_OUTPUT auf Eris ignoriert, verursacht die Daten G1 null zurück
//In onActivityResult()
...
case REQUEST_CAMERA:
Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
intent.putExtra(data);
startActivity(intent);
CurrentScreen.this.finish();
...
: das Ergebnis
//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);
Und dann zu handhaben
Wo verwende ich intent.putExtra(data)
, um die kleine Bitmap an die Absicht anzuhängen, und verwenden Sie es als eine Miniaturansicht in der nächsten Aktivität, und die Datei in voller Größe wird angeblich als /sdcard/image.jpg
gespeichert.
Dies ist das erwartete Verhalten (gemäß der Dokumentation), ein kleines Bitmap für ein Thumbnail und eine große Datei gespeichert zu haben. Als ich dies jedoch an einer G1 und einer Eris getestet habe, habe ich seltsames Verhalten beobachtet.
Auf der G1:
- Obwohl die Result RESULT_OK zeigt, um die Absicht Daten, die dem Ergebnis-Handler zurückgegeben wird, ist null.
- Auch EXTRA_OUTPUT scheint komplett ignoriert zu werden, ich habe keine Ahnung, wo es das Bild speichert.
Auf der Eris:
- Die Absicht Daten kommt zurück OK
- EXTRA_OUTPUT wird ebenfalls ignoriert, aber es wird die Bilder in den regulären Medien Speicher bei
/sdcard/dcim/100media
So Speichern Meine Frage ist: Gibt es eine Möglichkeit, konsistentes Verhalten für das, was ich mit der Standard-Kamera-Aktivität versuche, zu bekommen? Ich könnte eine benutzerdefinierte Aktivität schreiben, um zu versuchen, es so zu machen, wie ich es möchte, aber ich würde diese Route lieber vermeiden.
Ich habe eigentlich tat das in meiner Anwendung einrichten Prüfung, aber ich weggelassen, dass ein Teil in meinem Beitrag Dinge kürzer zu halten. Was ich am Ende zu tun habe, ist wahrscheinlich meine eigene Kameraaktivität zu schreiben, weil ich aufgrund der unterschiedlichen Kameraanwendungen, die verschiedene Hersteller mit ihren Handsets verwenden, die Inkonsistenz aufzeigen kann. Nicht alle von ihnen behandeln die Absicht ACTION_IMAGE_CAPTURE richtig. – jvergeldedios