图片不会保存在三星Nexus上

时间:2012-07-20 14:06:12

标签: android

我遇到了问题。我从我自己的应用程序开始,内置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我更新了手机,一切正常,但自更新以来我遇到了这个问题。

有人能帮助我吗?有没有人有同样的问题?

2 个答案:

答案 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"); 

并将其置于保存文件的意图中,而无需重新启动手机。