2016-04-19 2 views
3

Вот мой 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(...) 
      

Я пытался отлаживать и ничего не находить. Ури выглядит хорошо, и ури тоже хорош, но совпадение не соответствует ему. Можете ли вы помочь мне в этом вопросе? Заранее спасибо!

+0

Возможно, он не может обрабатывать два подстановочных сегмента ('#/*'). – CommonsWare

+0

Держу пари на 'mUriMatcher.addURI (OneSpaceContract.CONTENT_AUTHORITY, OneSpaceContract.PATH_FILE +"/* ", FILE_ID);' [UriMatcher с заменой android.net.Uri с java.net.URI] (http://ideone.com/jLvXyo) – Selvin

+1

, но если вы переместите эту строку в конце метода 'buildUriMatcher' ... [Это должно работать] (http://ideone.com/ACyIvY) – Selvin

ответ

2

Как указал Сельвин на своем примере, проблемным правилом является тот, который связывает FILE_ID. Первая часть сегмента соответствует, поэтому не будет пытаться найти какое-либо другое правило, которое соответствует этому сегменту. Переместите это правило в конце, и все должно быть хорошо.

+0

Твой права, спасибо! –

Смежные вопросы