Android Intent.Action_view 文件权限被拒绝

标签 android file android-intent view action

我正在尝试从我的存储中获取媒体文件并通过 action_view Intent 播放它。它保存在缓存中。我的代码如下所示:

@Override
    public void onClick(View arg0) {

        Intent viewMediaIntent = new Intent();
        viewMediaIntent.setAction(android.content.Intent.ACTION_VIEW);
        File file = new File(prefs.getAssetDir() + "/" + poi.getRoute().getId() + "/"
                + poiMedia.getContentMedia().getMedia().getFileName());
        Log.w("Karl",file.exists()+" < File exists"); 
        // returns true
        viewMediaIntent.setDataAndType(Uri.fromFile(file), "video/*");
        viewMediaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(viewMediaIntent);
    }
};

我收到的错误是权限被拒绝错误。我已经在 list 中获得了用户权限 WRITE_EXTERNAL_STORAGE 。

有人可以帮我吗?

编辑:

日志猫:

Failed to open file '/data/data/nl.kloeg.beleefroutes/cache/beleefRoutes/com.burokloeg.beleefroutes.0210OpPadMetRembrandt1/38669.mp4'. (Permission denied)
E/AwesomePlayer(1931): cannot create dataSource
W/AwesomePlayer(1931): onPrepareAsyncEvent() finishSetDataSource_l error(-2147483648)
W/AwesomePlayer(1931): abortPrepare() mIsAsyncPrepare (1), err (-2147483648)

最佳答案

这可能晚了,但我遇到了同样的事情。 我通过添加解决这个问题的方法

    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

希望这对某人有帮助。

关于Android Intent.Action_view 文件权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18274001/

相关文章:

java - 为什么我的数据包没有发送到我的其他 Activity ?

javascript - 所选插件似乎不适用于移动浏览器

android - 如何显示包名称中的应用程序名称列表

android - ndk-gdb 找不到 gdb.setup 但 x86 下有

c - 在 C 中使用 fscanf,得到奇怪的输出

Python客户端/服务器发送大尺寸文件

android - 如何将用户定义的 Intent 限制在您的应用程序中

android - 使用ytd-android库将视频从android设备上传到youtube后,如何返回url?

perl - 如何将变量和文件传递给 perl -p -e 命令

android - 将字符串从一个 Activity 传递到另一个 Activity 时出现问题