Как сделать, чтобы Content Provider использовал следующие пу
Добавлено: 17 апр 2012, 10:47
В приложении используется WebView. HTML страницы, картинки, скрипты, данные, которые загружаются в WebView, будут храниться в Базе Данных на Android устройстве. Как сделать, чтобы Content Provider использовал следующие пути:
Все выше описанные файлы будут храниться в БД с таблицей вида <Имя_ФАЙЛА СОДЕРЖИМОЕ_ФАЙЛА>
В БД так же есть таблицы представляющие собой целые объекты(например: Object_1, Object_2, и т.д.). Как сделать, что бы Content Provider мог воспринимать обращения следующего вида:
Формировал выборку, например из таблицы Object_1, всех записей где Status=Good
Выводил запись из таблицы Object_1, записи где Id=123456
Это будет применяться в HTML файле, для его формирования. Запись в таком виде нужна для более наглядного отображения текста
Понимаю, что копать нужно в направлении UriMatcher:
Не знаю, иду ли в правильном пути.......
И как сделать, что бы задать запросы, например, вида: .....?Id=123456
Код: Выделить всё
content://com.example.webviewdataprovider/images/имя_картинки.jpg
content://com.example.webviewdataprovider/scripts/имя_скрипта.js
content://com.example.webviewdataprovider/styles/имя_стиля.css
В БД так же есть таблицы представляющие собой целые объекты(например: Object_1, Object_2, и т.д.). Как сделать, что бы Content Provider мог воспринимать обращения следующего вида:
Код: Выделить всё
content://com.example.webviewdataprovider/ObjectList.htm?Status=Good
Код: Выделить всё
content://com.example.webviewdataprovider/Object.htm?Id=123456
Это будет применяться в HTML файле, для его формирования. Запись в таком виде нужна для более наглядного отображения текста
Понимаю, что копать нужно в направлении UriMatcher:
Не знаю, иду ли в правильном пути.......
Код: Выделить всё
public static final String AUTHORITY = "com.example.WebViewDataProvider";
private static final String IMAGES_FOLDER_STR = "images";
private static final String SCRIPTS_FOLDER_STR = "scripts";
private static final String STYLES_FOLDER_STR = "styles";
private static final String OBJECT_LIST_STR = "ObjecList.htm";
private static final String OBJECT_STR = "Objec.htm";
private static final int IMAGES_FOLDER_ID = 15;
private static final int SCRIPTS_FOLDER_ID = 16;
private static final int STYLES_FOLDER_ID = 17;
private static final int OBJECT_LIST_ID = 18;
private static final int OBJECT_ID = 19;
private static final UriMatcher sUriMatcher;
static
{
sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
sUriMatcher.addURI(AUTHORITY, IMAGES_FOLDER_STR, IMAGES_FOLDER_ID);
sUriMatcher.addURI(AUTHORITY, SCRIPTS_FOLDER_STR, SCRIPTS_FOLDER_ID);
sUriMatcher.addURI(AUTHORITY, STYLES_FOLDER_STR, STYLES_FOLDER_ID);
sUriMatcher.addURI(AUTHORITY, OBJECT_LIST_STR, OBJECT_LIST_ID);
sUriMatcher.addURI(AUTHORITY, OBJECT_STR, OBJECT_ID);
}