我是安卓相机API的新手,代码中调用了PictureCallback,带有:
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
// Save the image JPEG data to the SD card
FileOutputStream outStream = null;
try {
String path = Environment.getExternalStorageDirectory() +"test.jpg";
outStream = new FileOutputStream(path);
outStream.write(data);
outStream.close();
} catch (FileNotFoundException e) {
Log.e(TAG, "File Note Found", e);
} catch (IOException e) {
Log.e(TAG, "IO Exception", e);
}
}
};
针对这一行指出的例外情况:
outStream = new FileOutputStream(path);
由于我是安卓世界的新手,我不知道这个Environment.getExternalStorageDirectory()指出的到底在哪里。
例外情况是:
Java.io.FileNotFoundException:/storage/emulated/0 est.jpg:打开失败:EACCES(权限被拒绝)
但在我的清单中:
<uses-feature android:name="android.hardware.Camera"/>
<uses-permission android:name="android.permission.CAMERA"/>
编辑:我修复了的路径
String path = Environment.getExternalStorageDirectory() +"/test.jpg";
但还是给了我:
java.io.FileNotFoundException:/storage/emulated/0/test.jpg:打开失败:EACCES(权限被拒绝)
java.io.FileNotFoundException:/storage/emulated/0/test.jpg:打开失败:EACCES(权限被拒绝)
你一定忘了添加
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Android使用linux。路径分隔符是/
而不是。此外,
t
还放入了一个选项卡,如果您想要一个实际的,则需要使用
\t