這幾天在做的項目網盤。上傳時需要用到調用系統自帶的文件管理器來選擇文件,後來就在考慮怎麼調用,網上也搜了很久,沒有很好的解決方法,後來在一瞬間發現了一篇不錯的文章,借鑑了一下代碼。
在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);
- }