所以,这里是我的问题......我一直在研究存储一些地理定位数据的SQLite数据库,我想从相机插入图像。我读过更好插入图像路径而不是图像,但我找不到获取图像路径的方式。从Android相机插入图片到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;
}
谢谢!
感谢您的快速回答!那么你认为我可以在我的getOutputMediaFile函数中添加这个吗? – PFUser
是的,你可以。但是,您首先要确保在保存文件时不会引发异常,否则您可能会将某个位置保存到您的数据库,但由于某些错误而不存在该数据库。另一个选择是像在getOutputMediaFile函数中所说的那样执行它,然后如果引发异常,请将其删除。 – WIllJBD
对不起,但我对此很新...当我把它放在我的函数上时,我无法从函数中取出字符串来打印它。 – PFUser