我正在尝试获取保存在手机本地的图像的字节数组。我正在使用代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.upload);
// Look in the Device
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), 1);
// Look in the SD Card
// startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI), 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
Cursor Cur = Upload.this.managedQuery(selectedImage, null, null, null,null);
if (Cur.moveToFirst()) {
File Img = new File(selectedImage.getPath());
long Length = Cur.getLong(Cur.getColumnIndex(ImageColumns.SIZE));
byte[] B = new byte[(int)Length-1];
FileInputStream ImgIs;
try {
ImgIs = new FileInputStream(Img);
ImgIs.read(B);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i = B.length;
}
}
}
但它抛出一个FileNotFound exception上
ImgIs = new FileInputStream(Img) 我如何获得字节?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
没关系,我找到了答案,请参阅http://www.mail-archive.com/android-developers@googlegroups.com/msg66448.html
Cursor cursor = getContentResolver().query(uri, null, null, null, null); cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); String absoluteFilePath = cursor.getString(idx); FileInputStream fis = new FileInputStream(absoluteFilePath);