我无法从其他活动返回的uri获取文件路径。如何从变量类型获得绝对路径Uri
我发现许多解决方案如何将Uri转换为绝对文件路径like this one,但它始终依赖于给定链接中的音频等内容类型。
我的应用程序提供了一个活动来发送任何类型的文件..这表示我的意图过滤器设置为
mimetype */*
但是当我走在文件浏览器,并从相机中的照片文件夹中选择一个图像文件我得到像/ external/images/media/288这样的路径,但是如果我选择一个音乐文件,我会得到像外部/音频/媒体/ 1336
但另一方面,如果我选择非媒体文件类型pdf或zip)然后我得到已经在Uri的绝对路径
因此,哟你可以看到它不知道Uri有什么路径取决于我选择用我的应用程序发送的文件。
一个可能的解决方案是对所有类型的媒体进行光标查询,例如音频视频和图像,如果它们返回null,然后检查Uri.getPath(),但我认为这是非常糟糕的做法或效率低下的方式!
有没有办法从任何Uri获得绝对路径(给定文件存在)而不检查每种类型的uri?
http://developer.android.com/guide/topics/providers/document-provider.html#open有两个例子如何获取任何uri资源的内容。请参阅输入流和位图示例。 – zapl