0

我有个问题。我从我自己的应用程序开始,即带有 Photo-Intent 的内置 Photoapplication。

        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 后发生的。在我更新手机之前,一切正常,但自从更新后我遇到了这个问题。

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

4

2 回答 2

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 传入一个空参数,但您可能希望至少在其中放置一个日志记录语句。

于 2012-07-20T14:45:32.160 回答
1

现在工作正常,问题是我自己创建了文件,其中:

File file = new File(..); 

但是你必须使用:

ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, "IMG_"+ timeStamp+.jpg"); 

并将其放入意图立即保存文件而无需重新启动手机。

于 2012-07-30T07:28:03.257 回答