从共享视频文件中获取真实文件路径

Get the Real FilePath from a shared video file

大家早上好

我的应用程序中有这段代码,它是通过共享按钮从另一个应用程序接收文件。在这里,没问题。

Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
    if (type.startsWith("video/")) {
        Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
        String path = imageUri.getPath();
        // /item/4567592  --> whatsapp
        // /media/telegram/telegram docuemnts/name.mp4 --> telegram
        // no more apps tested
    }
}

问题是我要的是文件的absolute绝对路径,是的,我不想用一个File,或者别的,我要的是文件在设备上的实际路径。

我已经尝试了 1000 种方法,也尝试了使用 Cursor 的解决方案,但是它们 return 无效,或者其他令人费解的错误。

我试图将文件保存到内存或应用程序的缓存中,但我也没有得到。

建议? 谢谢!

I want the absolute absolute path of the file.

你不应该想要那个。只要您不必向外部库提供 'path' ,就没有理由这样做。

只需打开一个InputStream。从流中读取并保存到文件。

InputStream is = getContentResolver().openInputStream(imageUri);

您可以像使用文件输入流一样使用输入流。