Вот мой Uri СличительUri Сличитель не соответствует URI
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(...)
Я пытался отлаживать и ничего не находить. Ури выглядит хорошо, и ури тоже хорош, но совпадение не соответствует ему. Можете ли вы помочь мне в этом вопросе? Заранее спасибо!
Возможно, он не может обрабатывать два подстановочных сегмента ('#/*'). – CommonsWare
Держу пари на 'mUriMatcher.addURI (OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE +"/* ", FILE_ID);' [UriMatcher с заменой android.net.Uri с java.net.URI] (http://ideone.com/jLvXyo) – Selvin
, но если вы переместите эту строку в конце метода 'buildUriMatcher' ... [Это должно работать] (http://ideone.com/ACyIvY) – Selvin