写Android代码用到里面某些方法 有点不解 由于版本跟新问题 附上时间版本。
一、isDocumentUri getDocumentUri
DocumentContract.java
isDocumentUri:
final List<String> paths = uri.getPathSegments();
if(paths.size() == 2 && PATH_DOCUMENT.equals(paths.get(0))) {
return isDocumentProvider(context, uri.getAuthority());
}
...
return false;
getDocumentId
final List<String> paths = uri.getPathSegments();
if (paths.size() >= 2 && PATH_DOCUMENT.equals(paths.get(0))) {
return paths.get(1);
}
...
uri 例子:
/document/primary:Desktop
/document/primary:Picture%2FA
觉得有点奇怪 为什么一边是判断等于2 一边是判断>=2 标准不一样。
这个当我将第二个uri写成 /document/primary:Picture/A 的时候 识别认为不是DocumentUri。(不过在实际操作中 因为他会把 / 转移成 %2F 所以判断的时候是OK的,问题是在于当我用
adb shell am start -d content://com.android.externalstorage/document/primary:Picture/A
的时候 不好用 isDocumentUri 这个方法。不理解)