Get uri von der Kamera intents in android
klicken Sie auf
takePic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent m_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imageUri = getImageUri();
m_intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(m_intent, REQUEST_IMAGE_CAPTURE);
}
});
Auf Das Ergebnis:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE
&& resultCode == RESULT_OK) {
Log.d("test1",""+imageUri);
Intent shareIntent = new Intent(this, SharePicForm.class);
shareIntent.putExtra("photo",""+imageUri);
startActivity(shareIntent);
}
}
getImageUri()
private Uri getImageUri(){
Uri m_imgUri = null;
File m_file;
try {
SimpleDateFormat m_sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
m_curentDateandTime = m_sdf.format(new Date());
m_imagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + m_curentDateandTime + ".jpg";
m_file = new File(m_imagePath);
m_imgUri = Uri.fromFile(m_file);
} catch (Exception p_e) {
}
return m_imgUri;
}
Was ich erreichen möchte ist sehr einfach, rufen Sie Kamera auf Vorsatz und Holen Sie sich die uri des Ergebnisses Foto. Aber es scheint, gibt es eine inkonsistente des anderen Geräts und auf mein Gerät, es ist nicht an allen arbeiten. Ich habe versucht zu speichern, der Weg auf einer öffentlichen Variablen, aber wenn ich es abrufen , ist es null, gibt es formale und standard-Weg, um es zu implementieren und sollte die Arbeit auf alle Geräte? Auch, gibt es eine Möglichkeit für nicht die benutzerdefinierten Pfad aber bekommen die Standard-uri-Pfad von der Kamera-Vorsatz ?
Danke für die Hilfe
- verwenden onSavedInstance() und onRestoreInstanceState() zu speichern und wieder zu den Bildpfad.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Gerät nicht respektieren
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Sie noch verwenden können,in
onActivityResult(int requestCode, int resultCode, Intent data)
. Aber in den meisten Fällen, das problem ist, dass der Arbeitsspeicher begrenzt ist, und das system zerstört Ihre Tätigkeit zu geben genügend Speicher, um die Kamera-app zu erfüllen Ihrer Absicht. Daher, wenn das Ergebnis zurückgegeben, die die Felder Ihrer Tätigkeit sind nicht initialisiert, und Sie sollten Folgen Amit's Vorschlag und UmsetzungonSavedInstance()
undonRestoreInstanceState()
.Stellen Sie zunächst sicher, dass Ihr Verzeichnis wird erstellt......
auf die Schaltfläche klicken Sie auf diese Funktion aufrufen.
Stellen Sie sicher, fügen Sie die Erlaubnis in der manifest -
verwenden Sie einfach diese Uri imageUri = Daten.getData();
data.getData()
Methode immer null zurück. Sie sind falsch