Ich versuche das Bild zu lesen und anzuzeigen, das mit der Kamera Intent aufgenommen wurde. Mein Code basiert auf Beispiele in android docs gefunden:Mit der Kamera aufgenommenes Bild lesen Absicht
public void takeSidePhoto(View view) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile(REQUEST_IMAGE_CAPTURE_SIDE);
} catch (IOException ex) {
}
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this, "my.app.package.fileprovider", photoFile);
imageSide = photoURI.toString();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE_SIDE);
}
}
}
private File createImageFile(int imageCaptureCode) throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
return image;
}
Das Problem ist, dass die photoURI
zu takePictureIntent
geben wird (Beispiel): file:/storage/emulated/0/Android/data/my.app.package/files/Pictures/JPEG_20160921_123241_562024049.jpg
Aber wenn ich meine Testgerätespeicher mit Dateimanager bin gerade, Ich kann sehen, dass das aufgenommene Bild gespeichert wird unter: file:/storage/Android/data/my.app.package/files/Pictures/JPEG_20160921_123241_562024049.jpg
Was passiert und wie bekomme ich den Pfad zur realen Datei?
'FileProvider' nicht zurück' Uri' Werte mit einem 'file' Schema von' getUriForFile() '. Es gibt 'Uri'-Werte mit einem' content'-Schema zurück. Darüber hinaus erläutern Sie bitte genau, was "Dateimanager" Sie verwenden. – CommonsWare