与此操作关联的所有应用都已被禁用,阻止或未安装存储访问框架

时间:2017-04-07 16:51:15

标签: android storage-access-framework

在我的应用程序中,我试图通过Storage Access Framework获取 MS-Word PDF 文件,这些文件在我测试过但在三星note 4 API 6 我收到错误

  

与此操作相关联的所有应用均已被停用,阻止或   未安装

代码:

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);

            }
        });

2 个答案:

答案 0 :(得分:1)

我不确定这是否与您的问题直接相关,但它与我个人在使用Intent(错误)时遇到此错误的问题有关。尝试全局声明Intent时收到此错误。例如:

public class MyClass{

// Class Variables (BAD)
private Intent someActivity = new Intent(this, SomeClass.class);

    @Override
    protected void onCreate(Bundle savedInstanceState){
        // Some Code
    }

}

然后,当我这样做时,我发现这个问题已经解决了:

public class MyClass{

// Class Variables (Not Bad)
private Intent someActivity;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        someActivity = new Intent(this, SomeClass.class);
    }

} 

如果这对您的具体情况没有帮助,我希望这会在某些时候帮助某人。

在调试以查找此问题背后的原因时,我看不到生成文本的Toast的任何注释“已禁用,阻止或未安装与此操作关联的所有应用程序”。没有迹象表明这是一个“错误”。在我看来,对于不正确使用Intents来说,操作系统处理的异常更多。

答案 1 :(得分:0)

由于Intent的setType()方法将一个参数作为String,即MIME type及其强制因素,因为基于MIME type请求的android系统找到所有支持的动作。

例如,如果您想选择任何类型的内容,那么您只需编写setType("*/*")