URI不适用于小米/华为

时间:2018-08-16 08:41:16

标签: android

所以我已经编写了一些使用URI的脚本。 但是,有很多抱怨称该功能在小米/ Redmi /华为中不起作用。此编码经过了测试,并且可以在模拟器中正常运行。 Get filename and path from URI from mediastore No response on full screen activity (different android version?)

那么有人对此有任何建议/解决方法吗? 解决方法1:使用资产文件夹(已尝试使用图片文件夹,但大多数情况下都可以使用,但不适用于视频文件。)

到目前为止,我将代码范围缩小到

videoUri = Uri.parse("android.resource://" + getPackageName() + "/raw/" + filename);

以上仅适用于仿真器,不适用于小米/华为
我们该怎么办?

videoUri = Uri.parse("android.resource://" + getPackageName() + R.raw.filename);

以上内容在模拟器和真实手机中均能很好地工作。

有人对此有任何想法吗?

尝试1
How to read file from res/raw by name

int videoID = getResources().getIdentifier("filename","raw", getPackageName());
videoUri = Uri.parse("android.resource://" + getPackageName() + "/" + 
videoID);

结果:使用模拟器,但仍无法使用Redmi Note 2

1 个答案:

答案 0 :(得分:0)

您需要使用以下路径:

"android.resource://" + getPackageName() + "/" + R.raw.filename;

文件应存储在 res / raw / filename 下,并且应为 .mp4 类型。

我已经在Redmi note 3和Redmi 3s Prime手机上对此进行了测试。

编辑

videoUri = Uri.parse("android.resource://"+getPackageName()+"/raw/"+"crop");

我已经在提到的Redmi设备上对此进行了测试,并且可以正常工作。