2017-01-18 39 views
0

我需要打开一个文件选择器,让用户选择一个zip文件。用户选择zip文件后,onActivityResult返回data = null。我不确定我做错了什么。Zip文件意图选择器返回(data = null)onActivityResult

 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.setType("application/zip"); 
     startActivityForResult(intent, SELECT_ZIP_FILE); 

我试着寻找其他问题,并将其作为解决方案之一。这也没有用。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     intent.addCategory(Intent.CATEGORY_OPENABLE); 
     intent.setType("*/*"); 
     String[] mimetypes = {"application/zip", "text/plain"}; 
     intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes); 
    } else { 
     intent.setType("application/zip"); 
    } 
    startActivityForResult(intent, SELECT_ZIP_FILE); 

对此的任何帮助表示赞赏。

注意:如果我使用setType(“*/*”)而没有提及MIME_TYPE,我可以打开任何文件,但不能打开zip文件。我在我的清单中提到了适当的权限。

+0

“用户选择压缩文件后,onActivityResult返回data = null” - 在选择处理ACTION_GET_CONTENT请求的任何应用程序中都会出现一个错误。 – CommonsWare

+0

@CommonsWare我试图用不同的文件选择器打开。工作正常。你是对的。谢谢。 :) –

回答

1

如果ACTION_GET_CONTENT请求返回RESULT_OKonActivityResult(),你没有得到一个Uri所选择的内容,有以任何处理的ACTION_GET_CONTENT请求的错误。不幸的是,除了让用户知道他们选择了一款错误的应用之外,你对此可以做的事情很少。

相关问题