这是我的Uri Matcher
static UriMatcher buildUriMatcher() {
UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
// Bind uriMatcher int constants and uris
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_DRIVE, DRIVE_LIST);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_DRIVE + "/#", DRIVE_ID);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE, FILE_LIST);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE + "/*", FILE_ID);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE + "/drive/#", FILE_LIST_WITH_DRIVE_ID);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE + "/file/*", FILE_LIST_WITH_FOLDER_ID);
mUriMatcher.addURI(OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE + "/drive/#/*", FILE_LIST_WITH_DRIVE_ID_AND_FOLDER_ID);
// Return the new matcher!
return mUriMatcher;
}这是PATH_FILE常数
public static final String PATH_FILE = "file";UriMatcher和我的uri不匹配
Uri:content://olexiimuraviov.ua.onespace_diplomaproject/file/drive/11/root
这里有一个例外
java.lang.UnsupportedOperationException:
Unknown uri: content://olexiimuraviov.ua.onespace_diplomaproject/file/drive/11/root
at OneSpaceProvider.query(...)我试着调试却一无所获。Uri模式看起来很好,给定uri也很好,但是matcher不匹配它。你能帮我解决这个问题吗?提前感谢!
发布于 2016-04-19 18:08:40
正如Selvin在他的例子中指出的,有问题的规则是绑定FILE_ID的规则,段的第一部分匹配,所以它不会尝试在该段中找到任何匹配的规则。把那条规则移到最后,那就没问题了。
https://stackoverflow.com/questions/36723358
复制相似问题