如何访问我自己的相机活动拍摄的照片的Uri?

时间:2013-02-17 14:27:36

标签: java android

我已经写过相机活动拍照并将其保存到内存中,如何访问保存的照片的Uri?

以下是我的相机活动的一些代码:

    public void onPictureTaken(byte[] data, Camera camera) {

        File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
        if (pictureFile == null){
            Log.d("Errore Doorbin", "Error creating media file, check storage permissions: ");
            return;
        }

        try {
            FileOutputStream fos = new FileOutputStream(pictureFile);
            fos.write(data);
            fos.close();
            // these lines are for the gallery to scan the SDCard manually
            File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_PICTURES), "MyCameraApp");
                sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
                    Uri.parse("file://"+ mediaStorageDir)));
           /* MediaScannerConnection.scanFile(CameraActivity.this,
                    new String[] { fos.toString() }, null,
                    new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri) {
                    // code to execute when scanning is complete
                }
           });*/
           // fos.close();
        } catch (FileNotFoundException e) {
            Log.d("Errore Doorbin", "File not found: " + e.getMessage());
        } catch (IOException e) {
            Log.d("Errore Doorbin", "Error accessing file: " + e.getMessage());
        }
        catch (Exception e)
        {
            Log.d("Errore Doorbin", "errore Kolli dade!" + e.getMessage()) ;
        }
    }
};

1 个答案:

答案 0 :(得分:0)

此活动采用的文件为pictureFile,因此要访问它的Uri,您应该使用Uri的函数fromFile(),如下所示:

Uri photoUri = Uri.fromFile(pictureFile);