在Android中将照片从相机插入SQLite

时间:2014-07-03 15:45:42

标签: android image sqlite path camera

所以这是我的问题......我一直在研究存储一些地理定位数据的SQLite数据库,我喜欢从相机插入图像。我读过的最好是插入图像路径而不是图像,但我无法找到获取图像路径的方法。

这就是我已经拥有的。

Camera.PictureCallback mPicture = new Camera.PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            File pictureFile = getOutputMediaFile();
            if (pictureFile == null) {
                return;
            }
            try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();


            } catch (FileNotFoundException e) {

            } catch (IOException e) {
            }
        }

    };

    public File getOutputMediaFile() {

        File mediaStorageDir = new File(
                Environment
                        .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                "MyCameraApp"
        );
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.d("MyCameraApp", "failed to create directory");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;
        mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
        return mediaFile;

    }

谢谢!

2 个答案:

答案 0 :(得分:0)

file.getAbsolutePath();

那么简单:)

所以在上下文中它可能看起来像这样

           try {
                FileOutputStream fos = new FileOutputStream(pictureFile);
                fos.write(data);
                fos.close();

                saveFileLocation(pictureFile.getAbsolutePath);

            } catch (FileNotFoundException e) {

            } catch (IOException e) {
            }

其中saveFileLocation是一个函数,它接受路径字符串并将其保存到sql db。

答案 1 :(得分:0)

您可以mediaFile.getAbsolutePath()获取要存储在数据库中的路径。