Frage

Also ich versuche, die Kamera-Aktivität mit dem folgenden Code zu starten:

//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 das Ergebnis zu behandeln:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

Wo ich intent.putExtra(data) verwenden, um die kleine Bitmap zu der Absicht zu befestigen, und es als Miniaturansicht in der nächsten Aktivität verwenden, und die volle Größe Datei angeblich als /sdcard/image.jpg gespeichert wird.

Das ist das erwartete Verhalten (entsprechend die Dokumentation), eine kleine Bitmap für eine Miniaturansicht zu haben, und eine große Datei gespeichert. Wenn jedoch auf einem G1 und ein Eris Prüfung dieses, ich habe ein seltsames Verhalten seit einiger Zeit erleben.

Auf dem G1:

  • Obwohl die Result zeigt RESULT_OK die Absicht Daten, die zu dem Ergebnis Handler zurückgegeben wird, ist null.
  • Auch EXTRA_OUTPUT scheint völlig ignoriert zu werden, ich habe keine Ahnung, wo es das Bild zu speichern.

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 Speichern

Also meine Frage ist: Gibt es eine Möglichkeit für eine einheitliches Verhalten zu bekommen, was ich versuche, mit der Standard-Kamera-Aktivität zu tun? Ich könnte eine benutzerdefinierte Aktivität schreiben, um zu versuchen und bekommt es so, wie ich will zu arbeiten, aber ich würde es vorziehen, diesen Weg zu vermeiden.

War es hilfreich?

Lösung

Ich habe keine Antworten auf Ihre Frage, ich bin neu in der Java / Android Entwicklung Welt. Aber ich bin versucht, etwas Ähnliches, was Sie tun, es sei denn ich will einfach das Bild aufzunehmen und setzen Sie ihn in eine E-Mail-Nachricht.

I umgesetzt Teil Ihres Beispiel und war in der Lage zu überprüfen, ob die Kamera die Datei habe ich angegeben, und dass, wenn ich den gleichen Dateinamen für das nächste Bild verwenden, dass es die vorherige Datei überschrieben, das, was ich erwarten würde.

Aber was ich wirklich sagen würde, ist vielleicht werden Sie zu testen, wenn die pat „/ sdcard / ...“ tatsächlich existiert oder nicht. Auch Sie könnten möglicherweise Ihren Prozess vereinfachen, indem sie den Weg zur nächsten Aktivität übergeben.

Good Luck,

Jamie Irwin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top