|
在Rexsee里常常听到有同僚抱怨拍照时有问题,根据我写android的经验来看~这并不一定是Rexsee代码的问题。。
接收图片的代码在Android的不同版本里是不一样的,android2.3和2.2就不同(至少从gallery里选照片时是不同的),但是同一版本是一样的。
在onActivityResult里,系统返回的路径可能是file开头的,也可能是content开头的。需要做一个判断才行。至于拍照的路径,在喂进去的intent里给定路径就好。
判断路径的代码如下:
UriselectedImage=data.getData();
StringfilePath=null;
if(selectedImage.getScheme().equalsIgnoreCase("content")){
String[]filePathColumn={MediaStore.Images.Media.DATA};
Cursorcursor=getContentResolver().query(selectedImage,filePathColumn,null,null,null);
cursor.moveToFirst();
intcolumnIndex=cursor.getColumnIndex(filePathColumn[0]);
filePath=cursor.getString(columnIndex);
cursor.close();
}else{//selectedImage.getScheme().equalsIgnoreCase("file")
filePath=selectedImage.getPath();
}
总的说来,照相机应用程序不是标准Android系统的一部分,而是各个手机厂商甚至第三方开发的,经过测试,不同手机对Intent的处理方式差异很大,在同一Android版本上也有不同,rexsee目前是读了媒体库最后一张照片,适用的情况相对来讲已经是最广泛的。
有兴趣的朋友可以仔细研究一下Rexsee针对拍照所提供的原生源码,http://www.rexsee.com/CN/helpReference.php |
|