我遇到了问题。我从我自己的应用程序开始,内置PhotoApplication与Photo-Intent。
String photoName = System.currentTimeMillis() + ".jpg";
File file = new File(getFilesDir(),//Environment.getExternalStoragePublicDirectory(
//Environment.DIRECTORY_DCIM),
photoName); // Anlegen der Datei im entsprechenden
// Verzeichnis
FileOutputStream fos = null;
try {
fos = openFileOutput(photoName, Context.MODE_WORLD_WRITEABLE);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputFileUri = Uri.fromFile(file);
intentPhoto.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
//startActivity(intentPhoto);
startActivityForResult(intentPhoto, TAKE_PICTURE);
这是我启动活动的代码。如您所见,我要做的第一件事就是在目录中设置文件,然后给意图提供存储文件的位置。
但每次我拍照时它都不会保存到图片目录中。保存图片的唯一方法是关闭手机并重新启动它。然后我拍摄的每张照片都在那里。自上次更新到4.1.1以来就会发生这种情况。 Befor我更新了手机,一切正常,但自更新以来我遇到了这个问题。
有人能帮助我吗?有没有人有同样的问题?
答案 0 :(得分:4)
确保您提供要扫描的新文件:
MediaScannerConnection.scanFile(this,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
// code to execute when scanning is complete
}
});
如果您不需要在扫描程序提取时通知OnScanCompletedListener,则可以传入空参数,但您可能希望至少在那里放置日志语句。
答案 1 :(得分:1)
现在工作正常,问题是我自己创建了文件,其中包含:
File file = new File(..);
但你必须使用:
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "IMG_"+ timeStamp+.jpg");
并将其置于保存文件的意图中,而无需重新启动手机。