【发布时间】:2021-06-29 13:28:04
【问题描述】:
我的活动获取共享视频的 Uri 并将其保存到数据库中:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type.startsWith("video")){
Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
Log.i("MyActivity", uri.toString());
// save uri.toString() to database
// ...
}
}
如果视频与 Android 的文件资源管理器共享,则 Log.i 打印
content://media/external/video/media/8719
如果视频与 MxPlayer 共享,则 Log.i 打印
content://com.mxtech.videoplayer.pro.fileprovider/external_storage_root/Movies/20201026_192614.mp4
重启应用后,只能使用第一个 Uri 播放视频。使用后一个 Uri 会导致
Caused by: java.io.FileNotFoundException: No content provider: content://com.mxtech.videoplayer.pro.fileprovider/external_storage_root/Movies/20201026_192614.mp4
如何处理来自第三方应用的 Uris?是否可以将共享的 Uri 转换为“通用”格式?是权限问题吗?
【问题讨论】:
-
但是你可以在收到 uri 时播放它吗?
-
是的,视频已播放
标签: android android-intent uri android-fileprovider