http://blog.csdn.net/zqchn/article/details/8770913
这几天在做的项目网盘。上传时需要用到调用系统自带的文件管理器来选择文件,后来就在考虑怎么调用,网上也搜了很久,没有很好的解决方法,后来在一瞬间发现了一篇不错的文章,借鉴了一下代码。
在catch,我们可以做更多的操作,比如会跳转到一个下载文件管理器的页面或者等等。
对于返回的数据怎么处理呢。我项目中的上传是如下接收
/** 根据返回选择的文件,来进行上传操作 **/ @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (resultCode == Activity.RESULT_OK) { // Get the Uri of the selected file Uri uri = data.getData(); String url; try { url = FFileUtils.getPath(getActivity(), uri); Log.i("ht", "url" + url); String fileName = url.substring(url.lastIndexOf("/") + 1); intent = new Intent(getActivity(), UploadServices.class); intent.putExtra("fileName", fileName); intent.putExtra("url", url); intent.putExtra("type ", ""); intent.putExtra("fuid", ""); intent.putExtra("type", ""); getActivity().startService(intent); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); }
---------------------------------------------------------
private static final int FILE_SELECT_CODE = 0; private static final String TAG = "VideoActivity"; private void chooseFile() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult(Intent.createChooser(intent, "选择文件"), FILE_SELECT_CODE); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(this, "亲,木有文件管理器啊-_-!!", Toast.LENGTH_SHORT).show(); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (resultCode != Activity.RESULT_OK) { Log.e(TAG, "onActivityResult() error, resultCode: " + resultCode); super.onActivityResult(requestCode, resultCode, data); return; } if (requestCode == FILE_SELECT_CODE) { Uri uri = data.getData(); Log.i(TAG, "------->" + uri.getPath()); } super.onActivityResult(requestCode, resultCode, data); }