Content API содержит следующие компоненты:
Content API предоставляет функциональность для поиска контента, содержащего изображения, видео, музыку и др. Имеется возможность искать специфический контент с помощью фильтров. API также поддерживает настройки атрибутов конкретного контента.
Тип хранилища, в котором размещается контент хранится в перечислении ContentDirectoryStorageType.
enum ContentDirectoryStorageType { quot;INTERNALquot;, quot;EXTERNALquot; };
INTERNAL – внутреннее хранилищеEXTERNAL –внешнее хранилищеТип контента определяется в перечислении ContentType.
enum ContentType { quot;IMAGEquot;, quot;VIDEOquot;, quot;AUDIOquot;, quot;OTHERquot; };
IMAGE - изображенияVIDEO – видео AUDIO - аудиоOTHER – другой контентТип аудиоконтента описывается в перечислении AudioContentLyricsType.
enum AudioContentLyricsType {quot;SYNCHRONIZEDquot;, quot;UNSYNCHRONIZEDquot;};
SYNCHRONIZED- синхронизированныйUNSYNCHRONIZED - несинхронизированныйОриентация изображения описывается в перечислении ImageContentOrientation.
enum ImageContentOrientation {quot;NORMALquot;, quot;FLIP_HORIZONTALquot;, quot;ROTATE_180quot;, quot;FLIP_VERTICALquot;, quot;TRANSPOSEquot;, quot;ROTATE_90quot;, quot;TRANSVERSEquot;, quot;ROTATE_270quot; };
NORMAL – нормальная ориентацияFLIP_HORIZONTAL – отражение по горизонталиROTATE_180 – поворот на 180 градусовFLIP_VERTICAL – отражение по вертикалиTRANSPOSE -переносROTATE_90 – поворот на 90 градусовTRANSVERSE - перемещениеROTATE_270 – поворот на 270 градусовИдентификатор контента определяется типом ContentId.
Идентификатор каталога, в котором хранится контент определяется типом ContentDirectoryId.
Тип плейлиста определяется типом PlaylistId.
Определяет тип экземпляра объекта Tizen.
Объект tizen.content предоставляет доступ к функциональности модуля Content.
Интерфейс ContentManager предоставляет методы для извлечения и манипуляции контентом.
Синхронное обновление атрибутов в базе данных контента
Асинхронное обновление пакета атрибутов в базе данных контента
Дает список каталогов, в которых содержится контент
Находит контент, удовлетворяющий условиям, заданным с помощью фильтра.
Этот пример описан на сайте Tizen (https://developer.tizen.org/dev-guide/2.3.0/org.tizen.web.apireference/html/device_api/mobile/tizen/content.html).
Создадим новый проект Tizen Web Application. Назовем проект content. Вначале нужно добавить привилегии в файл config.xml:
(рис 18.1)
Запишем в файл index.html следующий код:
lt;!DOCTYPE htmlgt;
lt;htmlgt;
lt;headgt;
lt;meta charset=quot;utf-8quot;/gt;
lt;meta name=quot;viewportquot; content=quot;width=device-width, initial-scale=1.0, maximum-scale=1.0quot;gt;
lt;meta name=quot;descriptionquot; content=quot;A single-page template generated by Tizen Web IDEquot;/gt;
lt;titlegt;Tizen Web IDE - Tizen - jQuery Mobile - Single-Pagelt;/titlegt;
lt;link rel=quot;stylesheetquot; href=quot;./css/jquery.mobile-1.3.2.cssquot;/gt;
lt;script type=quot;text/javascriptquot; src=quot;./js/jquery-1.9.1.jsquot;gt;lt;/scriptgt;
lt;script type=quot;text/javascriptquot; src=quot;./js/jquery.mobile-1.3.2.jsquot;gt;lt;/scriptgt;
lt;script type=quot;text/javascriptquot; src=quot;./js/main.jsquot;gt;lt;/scriptgt;
lt;link rel=quot;stylesheetquot; href=quot;./css/style.cssquot; /gt;
lt;script type=quot;text/javascriptquot;gt;
// The following example retrieves all songs from the album quot;The Joshua Treequot;, by artist quot;U2quot;, ordered by the name.
var count = 100;
var offset = 0;
var sortMode = new tizen.SortMode(quot;namequot;, quot;ASCquot;);
var artistFilter = new tizen.AttributeFilter(quot;artistsquot;, quot;EXACTLYquot;, quot;U2quot;);
var albumFilter = new tizen.AttributeFilter(quot;albumquot;, quot;EXACTLYquot;, quot;The Joshua Treequot;);
var filter = new tizen.CompositeFilter(quot;INTERSECTIONquot;, [albumFilter, artistFilter]);
function errorCB(err) {
console.log( apos;The following error occurred: apos; + err.name);
}
function printContent(content, index, contents) {
console.log(apos;Name: apos; + content.name + apos; Title: apos; + content.title + apos;URL: apos; + content.contentURI + apos;MIME: apos; + content.mimeType);
}
function findCB(contents) {
console.log(apos;The Joshua Tree by U2:apos;);
contents.forEach(printContent);
// Increase the offset as much as the count and then find content again.
if (contents.length === count) {
offset += count;
tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
}
}
tizen.content.find(findCB, errorCB, null, filter, sortMode, count, offset);
lt;/scriptgt;
lt;/headgt;
lt;bodygt;
lt;div data-role=quot;pagequot; gt;
lt;div data-role=quot;headerquot; data-position=quot;fixedquot; data-tap-toggle=quot;falsequot; gt;
lt;h1gt;Single-page application lt;/h1gt;
lt;/divgt;lt;!-- /header --gt;
lt;div data-role=quot;contentquot; gt;
lt;pgt;This is a single page boilerplate template that you can copy to build your first jQuery Mobile page.lt;/pgt;
lt;/divgt;lt;!-- /content --gt;
lt;div data-role=quot;footerquot; data-position=quot;fixedquot; data-tap-toggle=quot;falsequot; gt;
lt;h4gt;Footer contentlt;/h4gt;
lt;/divgt;lt;!-- /footer --gt;
lt;/divgt;lt;!-- /page --gt;
lt;/bodygt;
lt;/htmlgt;
(рис 18.2)
Когда приложение создает или обновляет содержание, этот метод позволяет сканировать его, а затем вставить или обновить содержание в базе данных контента.
Определяет слушатель, получающий уведомления об изменении контента.
Сбрасывает слушателя для того, чтобы отписаться от получения уведомлений об изменении контента.
Получает все плейлисты.
Создает новый плейлист
Создадим новый проект content1, добавим в него те же привилегии, что и в первом примере. В файле index.html добавим следующий скрипт:
lt;script type=quot;text/javascriptquot;gt;
var gPlaylists;
var gPlaylist;
function getPlaylistsFail(err) {
console.log(quot;getPlaylists failed: quot; + err.message);
}
function getPlaylistsSuccess(playlists) {
var cur, i;
gPlaylists = playlists;
for(i = 0; i lt; gPlaylists.length; ++i) {
cur = gPlaylists[i];
console.log(quot;[quot; + i + quot;] name:quot; + cur.name + quot; num tracks:quot; +
cur.numberOfTracks);
}
}
function findSuccess(contents) {
if (contents.length gt; 0) {
gPlaylist.add(contents[0]);
}
tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
}
function findFail(err) {
console.log(quot;find FAIL: quot; + err.message);
}
function createSuccess(playlist) {
console.log(quot;create SUCCESSquot;);
gPlaylist = playlist;
tizen.content.find(findSuccess, findFail, null,
new tizen.AttributeFilter(quot;typequot;, quot;EXACTLYquot;, quot;AUDIOquot;));
}
function createFail(err) {
console.log(quot;create FAIL: quot; + err.message);
}
tizen.content.createPlaylist(quot;My new playlistquot;, createSuccess, createFail);
lt;/scriptgt;
(рис 18.3)
Удалят плейлист.
Создадим новый проект content2, добавим в него те же привилегии, что и в первом примере. В файле index.html добавим следующий скрипт:
lt;script type=quot;text/javascriptquot;gt;
var gPlaylists;
function removePlaylistSuccess() {
console.log(quot;removePlaylist SUCCESSquot;);
}
function removePlaylistFail(err) {
console.log(quot;removePlaylist FAIL: quot; + err);
}
function getPlaylistsFail(err) {
console.log(quot;getPlaylists failed: quot; + err);
}
function getPlaylistsSuccess(playlists) {
var cur, i;
gPlaylists = playlists;
for(i = 0; i lt; gPlaylists.length; ++i) {
cur = gPlaylists[i];
console.log(quot;[quot; + i + quot;] name:quot; + cur.name + quot; num tracks:quot; +
cur.numberOfTracks);
}
if(gPlaylists.length lt; 1) {
console.log(quot;Please add at least 1 playlistquot;);
return;
}
console.log(quot;will remove playlist at index [0] name:quot;
+ gPlaylists[0].name);
tizen.content.removePlaylist(gPlaylists[0].id, removePlaylistSuccess,
removePlaylistFail);
}
tizen.content.getPlaylists(getPlaylistsSuccess, getPlaylistsFail);
lt;/scriptgt;
(рис 18.4)
Этот API предоставляет методы для асинхронной загрузки контента по URL в хранилище.
Набор полей HTTP-заголовков определяется в типе DownloadHTTPHeaderFields
Состояние загрузки определяется в перечислении DownloadState
enum DownloadState {quot;QUEUEDquot;, quot;DOWNLOADINGquot;, quot;PAUSEDquot;, quot;CANCELEDquot;, quot;COMPLETEDquot;, quot;FAILEDquot;};
QUEUED - Указывает, что операция загрузки перечислена в очереди.DOWNLOADING - Указывает, что операция загрузки активнаPAUSED - Указывает, что операция загрузки находится в состоянии паузы по запросу пользователя.CANCELED - Указывает, что операция загрузки отменяется по запросу пользователяCOMPLETED - Указывает, что операция загрузки находится на стадии завершенияFAILED - Указывает, что операция загрузки не удалась в силу ряда причинТип сети описывается в перечислении DownloadNetworkType.
enum DownloadNetworkType { quot;CELLULARquot;, quot;WIFIquot;, quot;ALLquot; };
CELLULAR – Загрузка производится только в сотовой сетиWIFI - Загрузка производится только в сети Wi-FiALL - Загрузка производится только во всех сетяхИнтерфейс DownloadRequest определяет объект запроса загрузки.
Пример полей заголовков HTTP-запроса.
var req = new tizen.DownloadRequest(quot;http://download.tizen.org/tools/README.txtquot;); req.httpHeader[quot;Pragmaquot;] = quot;no-cachequot;; req.httpHeader[quot;Cookiequot;] = quot;version=1; Skin=newquot;; req.httpHeader[quot;X-Agentquot;] = quot;Tizen Sample Appquot;;
Интерфейс DownloadManager обрабатывает запросы на загрузку. О каждом шаге операции загрузки можно получить уведомление через обратные вызовы.
Ниже приводится пример использования DownloadManager.
lt;script type=quot;text/javascriptquot;gt;
// Check if Download API is supported not on a device.
var download_api_capability = tizen.systeminfo.getCapability(quot;http://tizen.org/feature/downloadquot;);
if (download_api_capability === false) {
console.log(quot;Download API is not supported on this device.quot;);
//return;
}
var listener = {
onprogress: function(id, receivedSize, totalSize) {
console.log(apos;Received with id: apos; + id + apos;, apos; + receivedSize + apos;/apos; + totalSize);
},
onpaused: function(id) {
console.log(apos;Paused with id: apos; + id);
},
oncanceled: function(id) {
console.log(apos;Canceled with id: apos; + id);
},
oncompleted: function(id, fullPath) {
console.log(apos;Completed with id: apos; + id + apos;, full path: apos; + fullPath);
},
onfailed: function(id, error) {
console.log(apos;Failed with id: apos; + id + apos;, error name: apos; + error.name);
}
};
// Starts downloading the file from the Web with the corresponding callbacks.
var downloadRequest = new tizen.DownloadRequest(quot;http://download.tizen.org/tools/README.txtquot;, quot;documentsquot;);
var downloadId = tizen.download.start(downloadRequest, listener);
// If you want to download a large file through Wi-Fi,
var wifi_capability = tizen.systeminfo.getCapability(quot;http://tizen.org/feature/network.wifiquot;);
var wifiDownloadRequest = new tizen.DownloadRequest(quot;http://download.tizen.org/tools/archive/14.02.2/Ubuntu_12.04/qemu_1.6.0rc3.orig.tar.gzquot;, quot;downloadsquot;, null, quot;WIFIquot;);
if (wifi_capability === true) {
var downlodId_wifi = tizen.download.start(wifiDownloadRequest, listener);
} else {
// If you call tizen.download.start(), NotSupportedError will be thrown.
console.log(quot;This device doesnapos;t support Download API through Wi-Fi.quot;);
}
lt;/scriptgt;
Exif API предоставляет интерфейсы и методы для манипулирования данными Exif из файла в формате JPEG. Объект ExifManager предоставляет методы для извлечения объекта ExifInformation из файла JPEG и сохранения данных Exif объекта ExifInformation в файле JPEG. Объект ExifInformation обеспечивает функциональность для получения и установки атрибутов Exif в соответствующий тег Exif.
Режим баланса белого изображения описывается в перечислении WhiteBalanceMode.
enum WhiteBalanceMode { quot;AUTOquot;, quot;MANUALquot; };
AUTO – режим автоматического баланса белогоMANUAL - режим ручного баланса белогоПрограмма баланса экспозиции описывается в перечислении ExposureProgram.
enum ExposureProgram {quot;NOT_DEFINEDquot;, quot;MANUALquot;, quot;NORMALquot;, quot;APERTURE_PRIORITYquot;, quot;SHUTTER_PRIORITYquot;, quot;CREATIVE_PROGRAMquot;, quot;ACTION_PROGRAMquot;, quot;PORTRAIT_MODEquot;, quot;LANDSCAPE_MODEquot;};
NOT_DEFINED - Информация о программе экспозиции нет или неизвестнаMANUAL - В ручном режиме можно независимо устанавливать, как скорость затвора, так и диафрагму вручную (чувствительность ISO также установливается вручную)APERTURE_PRIORITY – он же, режим Av (значение диафрагмы) позволяет ручное управление апертурой, выдержка рассчитывается с помощью камеры для правильной экспозиции (учитывая чувствительность ISO)SHUTTER_PRIORITY – он же S, Tv (значение времени) позволяет ручное управление скоростью затвора и диафрагмы рассчитывается с помощью камеры для правильной экспозиции (учитывая чувствительность ISO)CREATIVE_PROGRAM - камера рассчитывает, как выдержку, так и диафрагму (заданная вручную или автоматически выбранным ISO)ACTION_PROGRAM - Режим активных действий или спорта может увеличить ISO и использовать более высокую скорость затвора, чтобы получить удачный снимокPORTRAIT_MODE - Портретный режим расширяет апертуру, чтобы фон был не в фокусе. Камера может распознать и сфокусироваться на лице человекаLANDSCAPE_MODE – Ландшафтный режим позволяет получить высокую глубину резкостиОбъект tizen.exif позволяет получить доступ к данным Exif файла в формате.
Ниже приводится пример использования объекта tizen.exif.
lt;script type=quot;text/javascriptquot;gt;
// Defines success callback
function onSuccess(exifInfo) {
console.log(quot;success to get Exif information objectquot;);
}
// Defines error callback
function onError(error) {
console.log(quot;error occurred: quot; + error.name);
}
function resolveSuccess(file) {
tizen.exif.getExifInfo(file.toURI(), onSuccess, onError);
}
function resolveFail(error) {
console.log(quot;error occurred: quot; + error.name);
}
tizen.filesystem.resolve(quot;images/flower.jpgquot;, resolveSuccess, resolveFail);
lt;/scriptgt;
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.