Android调用系统自带的文件管理器进行文件选择

http://blog.csdn.net/zqchn/article/details/8770913

这几天在做的项目网盘。上传时需要用到调用系统自带的文件管理器来选择文件,后来就在考虑怎么调用,网上也搜了很久,没有很好的解决方法,后来在一瞬间发现了一篇不错的文章,借鉴了一下代码。

	/** 调用文件选择软件来选择文件 **/
	private void showFileChooser() {
		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) {
			// Potentially direct the user to the Market with a Dialog
			Toast.makeText(getActivity(), "请安装文件管理器", Toast.LENGTH_SHORT)
					.show();
		}
	}


在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);
}



 


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值