我創建了一個Android應用程序的內容提供者,但我有一個問題,正確地匹配使用UriMatacher的URI。UriMatcher不匹配模式
例如,我添加了URI的匹配(從鏈接剪斷)
sURIMatcher.addURI("content://com.example", "people", PEOPLE);
sURIMatcher.addURI("content://com.example", "people/#", PEOPLE_ID);
sURIMatcher.addURI("content://com.example", "people/#/phones", PEOPLE_PHONES);
,然後嘗試訪問contacts/people/1/phones
。成功的比賽結果是PEOPLE_ID
而不是PEOPLE_PHONES
。
查詢最初由該代碼生成的。
Uri uri = Uri.parse("content://com.example/people/#/phones");
ContentUris.appendId(uri.buildUpon(), 1).build();
隨着拋出一些記錄語句,我看到以下內容:
的URI傳遞給query給出了這樣:
content://com.example/people/1#/phones
但uri.getPath()
給出了這樣的:
/people/1
URI的第三路徑部分清楚地下降,這EXPL ains爲什麼它匹配錯誤的uri。
從Android開發者網站的例子似乎表明,不應該有這個問題。我錯誤地創建了uri嗎?它只是一個錯誤?這是預期的功能(因此android開發人員的例子是一個壞的)?
你試圖交換的「人/#/手機」和「以人/#」命令sURIMatcher.addURI()調用? – sandrstar 2013-02-14 05:57:09
我試過改變訂單,但沒有什麼區別。我也嘗試徹底刪除除「people /#/ phones」之外的所有內容。在那種情況下,它只是失敗到我的默認情況。 – CoatedMoose 2013-02-14 05:59:07