只给出一个字符串的位置,是否有一种可靠的方法来确定这是一个本地文件(例如/mnt/sdcard/test.jpg)还是远程资源(例如http://www.xyz.com/) test.jpg)?
用Uri.parse将它转换为Uri似乎没有给我任何东西来指示文件的位置.
我真的不想在字符串中查找//!
Cam*_*ham 20
您也可以查看android.webkit.URLUtil课程
URLUtil.isFileUrl(file)
Run Code Online (Sandbox Code Playgroud)
小智 8
uri格式是
<protocol>://<server:port>/<path>
Run Code Online (Sandbox Code Playgroud)
本地文件有:
file:///mnt/...
Run Code Online (Sandbox Code Playgroud)
要不就
/mnt
Run Code Online (Sandbox Code Playgroud)
所以如果字符串开头
\w+?://
Run Code Online (Sandbox Code Playgroud)
这不是file://那么这是url
我也遇到了同样的问题,并尝试使用 Penkov Vladimir 解决方案,但它没有用,因为 Uri 的“内容”模式也不是远程资源。
我使用了以下代码,效果很好。
List<Uri> urls = new ArrayList<>();
List<Uri> locals = new ArrayList<>();
for (Uri uri : uris) {
if (uri.getScheme() != null && (uri.getScheme().equals("content") || uri.getScheme().equals("file"))) {
locals.add(uri);
} else {
urls.add(uri);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9026 次 |
| 最近记录: |