Hallo zusammen,
ich habe folgendes Problem: Ich möchte, dass eins mit der Kamera geschossenes Foto im internal Storage meiner App abgespeichert wird. Die Kamera App hat jedoch keine Schreibrechte in meinen Ordner zu schreiben, daher benutze ich einen FileProvider um mit einer URI den Zugriff zu erlauben. In der Android Doku wird es so beschrieben. Jedoch funktioniert das nicht. Der Einzige Unterschied zum Beispiel aus der Android Doku ist, dass dort " File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES)" verwendet wird, was ich jedoch nicht möchte, da der Befehl auf die SD-Karte zugreift.
Kann mir da jemand weiterhelfen?
Code
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(context.getPackageManager()) != null) {
String dirpath = context.getFilesDir() + File.separator + "images";
File file = new File(dirpath, "foto.jpg");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
} else {
file.delete();
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Uri photoURI = FileProvider.getUriForFile(context,
BuildConfig.APPLICATION_ID + ".fileprovider", image);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
((Activity)context).startActivityForResult(takePictureIntent, new StructsAndEnums().new OnActivityResult().camera);
Alles anzeigen
Code
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path name="imagepath" path="images/"/>
</paths>
Code
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="de.mypackage.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/imagepath" />
</provider>