从外部存储器打开文件

yhxst69z  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(425)

我正在尝试使用intent在外部存储中打开文件,但我不知道为什么它会显示我 could not find item ! 我也在不同的文件上尝试过,但它做的是相同的,我在manifest中使用的权限

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

     File temp = new File(address,mylist.get(position));

    if (temp.isFile()){
        //Toast.makeText(getApplicationContext(),"This is File !!",Toast.LENGTH_SHORT).show();
        String  sfile = temp.getPath();
        Uri uri = Uri.parse(sfile);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setType("image/*");
        intent.putExtra(Intent.ACTION_VIEW,uri);

        startActivity(Intent.createChooser(intent,"Open file"));

    }else {

        ref(address+"/"+mylist.get(position).toString());

    }

}
6kkfgxo0

6kkfgxo01#

你能出示样品吗 address 值(文件的路径)?您可能将文件保存在某个限制区域(例如,应用程序的私人数据文件夹),您必须提供 FileProvider 和格兰特 Uri 对另一个应用程序的访问权限,以允许它使用您的应用程序文件夹。一些文件和样品在这里和这里
假设
could not find item ! Toast 不是来自你的应用程序(我没有看到这样的代码)-它可能会被另一个应用程序显示,它只是无法访问 File 以上都假设 File 存在于适当的目录中(两者都是 isFile() 以及 exists() 退货 true ) :)

相关问题