从Android上的文档打开文件

从Android上的文档打开文件

问题描述:

我在这篇文章中使用了文件助手类https://*.com/a/20559175/2281821,但它在每种情况下都无法正常工作。我正在使用Intent chooseIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);来启动文件选取器。我有Android Nougat,我从onActivityResult uri收到:content://com.android.externalstorage.documents/document/home%3Aimage.png 这是什么home:的含义?我怎样才能访问这个文件?我正在尝试Environment.getExternalStorageDirectory()System.getenv("EXTERNAL_STORAGE"),但我无法获得。从Android上的文档打开文件

+2

你是否得到任何错误或异常比PLZ粘贴在这里也 –

+0

没有错误,路径是不正确的,当我尝试创建位图,它是空的 – falsetto

下面的代码可用于获取文件的路径:

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/*"); 

您可以访问内容方案通过打开例如在URI的InputStream。

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

BitmapFactory.decodeFromStream(is)会很高兴地从您的流中读取。