从Android Nougat上的文档打开文件

时间:2017-04-03 06:04:07

标签: java android android-intent

我正在使用此帖https://stackoverflow.com/a/20559175/2281821中的文件助手类,但在每种情况下都无法正常工作。我正在使用Local Git启动文件选择器。我有Android Nougat,我从onActivityResult uri收到:Intent chooseIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);content://com.android.externalstorage.documents/document/home%3Aimage.png意味着什么?如何访问此文件?我正在尝试使用home:Environment.getExternalStorageDirectory(),但我无法接受。

2 个答案:

答案 0 :(得分:0)

以下代码可用于获取文档路径:

Intent galleryIntent = new Intent();
        galleryIntent .setType("image/*");
        galleryIntent .setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(galleryIntent , getString(R.string.app_name)),REQUEST_CODE);

OnActivityResult():

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (resultCode == RESULT_OK) {
            if (requestCode == REQUEST_CODE) {
                Uri uri  = data.getData();
            } 
        }

    }

您可以使用“uri”变量值来获取位图。如果您还想打开其他图像,请删除以下行:

galleryIntent .setType("image/*");

答案 1 :(得分:0)

您可以通过在uri上打开一个InputStream来访问内容方案。

InputStream is = getContentResolver().openInputStream(uri);

BitmapFactory.decodeFromStream(是)将很乐意从您的信息流中读取。