使用Kitkat打开文档对话框(存储访问框架)时,Google云端硬盘的Mime类型

时间:2014-02-07 18:31:51

标签: android google-drive-api mime-types android-4.4-kitkat

我正在使用Android的新文件选择器让用户打开我的文件。我正在尝试选择一个私钥文件(* .key,pem格式化):

    Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    i.addCategory(Intent.CATEGORY_OPENABLE);
    [...]
    construct supportedMimeTypesArray as array with
    "application/x-pem-file"
    "application/pkcs8"
    [...]
    i.putExtra(Intent.EXTRA_MIME_TYPES, supportedMimeTypesArray);

从内部存储中选择文件时,此方法有效。但是当我尝试从Google打开文件时,Google驱动器会删除该文件。

使用浏览器上传文件。

有没有办法显示Google驱动器认为该文件是什么类型的mime?

1 个答案:

答案 0 :(得分:0)

要做的是使用mime类型“ / ”请求文件,然后让自己显示返回的URI的元字段。事实证明,“。key”文件有一个mime类型的“application / x-iwork-keynote-sffkey”

这里给出了一种快速和简单的方法:

    @Override
    public void onActivityResult(int requestCode, int resultCode,
                                 Intent resultData) {
        if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
            Uri uri = null;
            if (resultData != null) {
                uri = resultData.getData();
                Log.i(TAG, "Uri: " + uri.toString());

                Cursor c = getActivity().getContentResolver().query(uri, null, null, null, null);
                try {
                    String r = "";
                    c.moveToFirst();
                    do {
                        for (int i = 0; i < c.getColumnCount(); i++) {
                            r += c.getColumnName(i) + "      " + c.getString(i) + "\n";

                        }
                        r += "\n";
                    } while (c.moveToNext());
                    mResultView.setText(r);
                } finally {
                    c.close();
                }

            }
        }
    }