如何使用Media.Files获取pdf和doc文件

时间:2017-03-29 16:57:23

标签: android file-handling

现在我正在使用一段特殊的代码来获取我的文件,这些代码工作正常,但在某些手机中没有像google驱动器这样的软件我得到的消息就像没有安装应用程序的请求一样。所以我搜索并发现我们可以使用Media.Files获取文件但是没有足够的文档来执行任务。

代码:

warantyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                intent.setType("application/pdf,application/msword");
                Intent i = Intent.createChooser(intent, "File");
                getActivity().startActivityForResult(i, FILE_REQ_CODE);
               //Toast.makeText(getContext(),"Files",Toast.LENGTH_SHORT).show();
            }
        });


@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == FILE_REQ_CODE) {
            if (resultCode == RESULT_OK) {
                String path="";
                Uri uri = data.getData();
                if (uri != null) {
                    try {
                        file = new File(getPath(getContext(),uri));
                        if(file!=null){
                            ext = getMimeType(uri);
                            sendFileToServer(file,ext);
                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

        }

    }

public static String getPath(Context context, Uri uri) throws URISyntaxException {
        if ("content".equalsIgnoreCase(uri.getScheme())) {
            String[] projection = { "_data" };
            Cursor cursor = null;

            try {
                cursor = context.getContentResolver().query(uri, projection, null, null, null);
                int column_index = cursor.getColumnIndexOrThrow("_data");
                if (cursor.moveToFirst()) {
                    return cursor.getString(column_index);
                }
            } catch (Exception e) {
                // Eat it
            }
        }
        else if ("file".equalsIgnoreCase(uri.getScheme())) {
            return uri.getPath();
        }

            return null;
        }

0 个答案:

没有答案