안녕하세요. 

뭐 아시는 분들은  다 알만한 것이지만,   저는 이거 찾는데  몇시가 걸렸답니다.


Content Provider 를   데이타를 요청할 때,  URI를  이용하여  요청하는데요.

예들 들면,

content://com.bolero.provider/address

 이런식으로  요청을 하게 됩니다. 

가끔 여기에 글보면,    URI의 마지막  단어가  테이블 명이라고 하시는 분들도 계시던데요.
위 예 에서는  address  가 되겠지요.

이거 테이블 명 아니구요.  그냥  구분자  입니다.  
내부에서   테이블이 뭐 그런것들으 찾기 위한  키워드 쯤으로 생각하시면 됩니다.

아무튼  여기저기 예제를 찾다 보면, 

ID 값을  추가하는 것은 쉽게 찾을 수가 있습니다.

Uri    CONTENT_URI = Uri.parse("content://com.bolero.provider/address");

위와 같은  Content URI 가 있을 때,  여기 ID 값을 추가하는 것은 

Uri contentUri = ContentUris.withAppendedId(CONTENT_URI,  1);

이런식으로   하시면,

content://com.bolero.provider/address/1

이런 URI를  만드실 수 있습니다.



그냥 유추해 보면,  ID를  저렇게 붙였으니까 ,  파라미터도   ContentUris  이 클래스 보면 뭐 메소드가 있겠지 하고 생각할 수 있지요.


http://developer.android.com/reference/android/content/ContentUris.html

그런데, 없더군요 ㅡ.ㅡ


그럼,  Uri 클래스에 있나?

http://developer.android.com/reference/android/net/Uri.html

그런데,  희한한 것이  Uri 클래스 에도  마땅한 것이 없더라구요. 
가져오는  getQueryParameter 는  있는데,   set 이나 add 관련 메소드가 없더라구요ㅡ.ㅡ


음,  도대체 추가는 어디서 하는 걸까  한참 찾았답니다.


파라미터는  또 전혀 다른 클래스 해서 하더군요.


Uri.Builder uribuilder = CONTENT_URI.buildUpon();
uribuilder.appendQueryParameter("limit", "10,5");
Uri newUri = uribuilder.build();


이런 식으로  Uri.Builder 라는  클래스를 이용해야 하더군요.

위와  코드를 실행하면, 

content://com.bolero.provider/address?limit=10%2C5

이렇게 바뀐 답니다.

%2C 는  , 에 해당하구요.


이런식으로  Uri에  원하는 파라미터를  마음대로 추가할 수 있답니다.


수고하세요^^