我正在尝试让我的应用程序从相机拍摄照片,然后将其保存到设备内存中。在下面的代码中,我尝试获取SD卡的路径,然后使用相机捕获的数据创建一个文件。但是,我收到一个FileNotFoundException。代码工作正常,直到这一点,日志显示data []中存储的字节数,所以我假设相机不是问题。任何帮助将不胜感激...谢谢!!
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Log.d("testing", "wrote bytes: " + data.length);
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File file = new File(path, "Image.jpg");
try {
OutputStream os = new FileOutputStream(file);
os.write(data);
os.close();
MediaScannerConnection.scanFile(instance, new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.d("ExternalStorage", "Scanned " + path + ":");
Log.d("ExternalStorage", "-> uri=" + uri);
}
});
} catch (IOException e) {
Log.d("testing", "error writing file :(");
} finally {
Log.d("testing", "finally...");
camera.stopPreview();
camera.release();
camera = null;
Toast.makeText(getApplicationContext(), "Image Taken!", Toast.LENGTH_LONG).show();
}
}
};
答案 0 :(得分:0)
你试过这个:
Environment.getExternalStorageDirectory().getAbsolutePath();
这应该会给你一张SD卡的路径。