Для разработки мобильного приложения в запросах к серверу мобильной платформы используются методы Android-фреймворка основного класса HyperHive.
Примечание. Перед выполнением методов выполните аутентификацию на сервере мобильной платформы с помощью метода аутентификации auth или authWithChangePassword.
Методы аутентификации реализованы в модуле AuthAPI, экземпляр которого доступен в классе HyperHive (hyperHive.authAPI).
Аутентификация пользователя по логину и паролю (auth)
Метод auth выполняет аутентификацию пользователя по логину и паролю.
Примечание. Перед выполнением метода убедитесь, что в проекте добавлены учётные данные для источника данных.
hyperHive.authAPI.auth(login, password, updateResources)
Входные параметры:
Параметр | Тип данных | Описание |
login | java.lang.String | Логин пользователя. |
password | java.lang.String | Пароль пользователя. |
updateResources | boolean | Обновление схемы ресурсов при успешном выполнении аутентификации.
Параметр принимает значения:
|
Пример:
private static final String userName = "user";
private static final String password = "password";
public void authentication() {
boolean status = hyperHive.authAPI.auth(userName, password, true).execute().isOk();
showStatus(status);
}
После выполнения примера будет получен токен пользователя и результат выполнения аутентификации.
Аутентификация пользователя со сменой пароля (authWithChangePassword)
Метод authWithChangePassword выполняет аутентификацию пользователя со сменой пароля и возвращает новый токен пользователя.
HyperHive.AuthAPI.authWithChangePassword(login, password, new_password, confirm_password, update_resources, headers)
Входные параметры:
Параметр | Тип данных | Описание |
login | String | Логин пользователя. |
password | String | Текущий пароль пользователя. |
new_password | String | Новый пароль пользователя. |
confirm_password | String | Подтверждение нового пароля пользователя. |
update_resources | Boolean | Обновление схемы ресурсов по результату запроса. |
headers | Map<String, String> | Дополнительные http-параметры. |
Пример:
private static final String LOGIN = "name";
private static final String PASSWORD = "123";
private void authWithChangePassword() {
Log.d(TAG, "authWithChangePassword()");
final string new_password = "123123";
BaseStatus status = hyperHive.authAPI.authWithChangePassword(
login,
password,
new_password,
confirm_password,
true,
null
).execute();
}
После выполнения примера будет получен токен пользователя и результат выполнения аутентификации.
Отмена аутентификации (unAuth)
Метод unAuth отменяет выполненную аутентификацию пользователя и возвращает экземпляр класса Call.
hyperHive.authAPI.unAuth()
Проверка аутентификации пользователя (isAuthorized)
Метод isAuthorized проверяет выполнение аутентификации пользователя и возвращает значение:
True. Пользователь успешно выполнил аутентификацию;
False. Пользователь не выполнил аутентификацию.
hyperHive.authAPI.isAuthorized()
Использование методов приведено в примерах «Примеры аутентификации на сервере мобильной платформы».
Проверка доступности сервера мобильной платформы (connectionStatus)
Метод connectionStatus выполняет проверку доступности сервера мобильной платформы.
Возможные варианты использования метода:
Call<BaseStatus> HyperHive.connectionStatus(String url)
Метод возвращает <BaseStatus> с данными запроса и ответа сервера мобильной платформы.
Call<T extends BaseStatus> HyperHive.connectionStatus(String url, Class<T> gson)
Метод возвращает <T extends BaseStatus> с данными запроса и ответа сервера мобильной платформы в виде десериализованного gson.
Пример запроса:
BaseStatus status = HyperHive.connectionStatus("http://<IP-адрес или DNS-имя сервера>");
Call<BaseStatus> hh.requestAPI.connectionStatus()
Метод возвращает <BaseStatus> с данными запроса и ответа сервера мобильной платформы.
Call<T extends BaseStatus> hh.requestAPI.connectionStatus(Class<T> gson)
Метод возвращает <T extends BaseStatus> с данными запроса и ответа сервера мобильной платформы в виде десериализованного gson.
Пример запроса:
BaseStatus status = hyperHive.requestApi.connectionStatus().execute();
Метод может использоваться в модуле RequestAPI, экземпляр которого доступен в классе HyperHive (hyperHive.requestAPI). Адрес сервера мобильной платформы определяется при создании объекта HyperHive.
Использование метода приведено в примере «Пример проверки доступности сервера мобильной платформы».
Методы данной области реализованы в модуле DatabaseAPI, экземпляр которого доступен в классе HyperHive (hyperHive.databaseAPI).
Открытие базы данных по умолчанию (openDefaultBase)
Метод openDefaultBase открывает базу данных по умолчанию.
public boolean openDefaultBase(java.lang.String key);
Аргументы:
key. Ключ к базе данных.
Метод возвращает значение True, если открытие базы данных по умолчанию выполнено успешно, иначе False.
Пример запроса:
openDefaultBase("12345");
Смена ключа шифрования базы данных (reKeyBase)
Метод reKeyBase выполняет смену ключа шифрования локальной базы данных.
Синтаксис:
fun reKeyBase(db_path: String, new_key: String): Boolean
public boolean reKeyBase(final String db_path, final String new_key)
Входные параметры:
Параметр | Тип данных | Описание |
db_path | String | Путь к базе данных в директории мобильного приложения. |
new_key | String | Новый ключ шифрования базы данных. |
Пример:
val hyperHive = this.getHyperHive()
hyperHive.databaseAPI.reKeyBase("/path/to/database.sqlite", "123")
HyperHive hyperHive = this.getHyperHive();
hyperHive.databaseAPI.reKeyBase("/path/to/database.sqlite", "123");
Примечание. Перед сменой ключа шифрования откройте базу данных с помощью метода openBase.
Открытие или создание базы данных (openBase)
Метод openBase открывает или создает базу данных с указанным ключом.
public boolean openBase(java.lang.String pathBase, java.lang.String key);
Аргументы:
pathBase. Путь к базе данных;
key. Ключ базы данных.
Если база еще не существует, то будет создана и открыта для работы новая база с использованием указанного ключа для шифрования.
Если база уже существует, то будет выполнена попытка открыть базу с указанным ключом.
Метод возвращает значение True, если открытие или создание базы данных выполнено успешно, иначе False.
Пример запроса:
openBase("my_database", "12345");
Загрузка схемы ресурсов (resources)
Метод служит для получения схемы доступных ресурсов и автоматического создания в базе данных соответствующих таблиц. Метод возвращает экземпляр класса Call. Метод обязательно выполняется после успешной аутентификации.
Если используемая база данных должна быть зашифрована, необходимо перед вызовом этого метода открыть базу данных с ключом шифрования:
resources(final String database, final Map<String, String> headers)
SQL-запрос к базе данных (query)
Метод query выполняет SQL-запрос к указанной базе данных.
Возможно несколько вариантов использования метода:
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
query(@NonNull java.lang.String query);
Аргументы:
query. Запрос SQLite к указанной базе данных.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
query("SELECT * FROM my_table);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
query(@NonNull java.lang.String query, java.lang.Class<T> tClass);
Аргументы:
query. Запрос SQLite к указанной базе данных;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
query("SELECT * FROM my_table, MyClass.class);
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
query(@NonNull java.lang.String databasePath,
@NonNull java.lang.String query);
Аргументы:
databasePath. Путь к базе данных;
query. Запрос SQLite к указанной базе данных.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
query("my_database", "SELECT * FROM my_table);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
query(@NonNull java.lang.String databasePath,
@NonNull java.lang.String query, java.lang.Class<T> tClass);
Аргументы:
databasePath. Путь к базе данных;
query. Запрос SQLite к указанной базе данных;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
query("my_database", "SELECT * FROM my_table, MyClass.class);
Получение наименования таблицы (getTablesName)
Метод getTablesName возвращает наименование таблицы.
Возможно несколько вариантов использования метода:
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
getTablesName(@NonNull java.lang.String resourceName,
@NonNull java.lang.String params);
Аргументы:
resourceName. Путь к базе данных;
params. Передаваемые параметры.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
getTablesName("postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}");
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
getTablesName(@NonNull java.lang.String resourceName,
@NonNull java.lang.String params, java.lang.Class<T> tClass);
Тип класса <T>.
Аргументы:
resourceName. Путь к базе данных;
params. Передаваемые параметры;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
getTablesName("postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}", BaseStatus.class);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
getTablesName(@NonNull java.lang.String databasePath,
@NonNull java.lang.String resourceName,
@NonNull java.lang.String params);
Аргументы:
databasePath. Путь к базе данных;
resourceName. Имя ресурса;
params. Передаваемые параметры.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
getTablesName("my_database", "postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}");
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
getTablesName(@NonNull java.lang.String databasePath,
@NonNull java.lang.String resourceName,
@NonNull java.lang.String params, java.lang.Class<T> tClass);
Тип класса <T>.
Аргументы:
databasePath. Путь к базе данных;
resourceName. Имя ресурса;
params. Передаваемые параметры;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
getTablesName("my_database", "postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}", BaseStatus.class);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Удаление таблиц из базы данных (dropCache)
Метод dropCache удаляет таблицы из базы данных.
Возможно несколько вариантов использования метода:
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
dropCache(@NonNull java.lang.String resourceName,
@NonNull java.lang.String params);
Аргументы:
resourceName. Имя ресурса;
params. Передаваемые параметры.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
dropCache("postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}");
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
dropCache(@NonNull java.lang.String resourceName,
@NonNull java.lang.String params, java.lang.Class<T> tClass);
Тип класса <T>.
Аргументы:
resourceName. Имя ресурса;
params. Передаваемые параметры;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
dropCache("postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}", BaseStatus.class);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public com.mobrun.plugin.api.Call<java.lang.String>
dropCache(@NonNull java.lang.String databasePath,
@NonNull java.lang.String resourceName,
@NonNull java.lang.String params);
Аргументы:
databasePath. Путь к базе данных.
resourceName. Имя ресурса;
params. Передаваемые параметры.
Метод возвращает экземпляр класса Call с результатом в строке.
Пример запроса:
dropCache("my_database", "postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}");
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Запрос:
public <T extends com.mobrun.plugin.models.BaseStatus>
com.mobrun.plugin.api.Call<T>
dropCache(@NonNull java.lang.String databasePath,
@NonNull java.lang.String resourceName,
@NonNull java.lang.String params, java.lang.Class<T> tClass);
Тип класса <T>.
Аргументы:
databasePath. Путь к базе данных.
resourceName. Имя ресурса;
params. Передаваемые параметры;
tClass. Ожидаемый класс для разбора.
Метод возвращает экземпляр класса Call с результатом в BaseStatus.
Пример запроса:
dropCache("my_database", "postgres_fruits", "{\"upsert_rows\": [[\"10001\", \"fruits10001\"]], \"delete_ids\": null}", BaseStatus.class);
Ответ:
BaseStatusV08{status=OK, httpStatus=HttpStatus{status=200, ... }
Закрытие базы данных по умолчанию (closeDefaultBase)
Метод closeDefaultBase закрывает базу данных по умолчанию.
public boolean closeDefaultBase();
Метод возвращает значение True, если закрытие базы данных по умолчанию выполнено успешно, иначе False.
Закрытие базы данных (closeBase)
Метод closeBase закрывает базу данных.
public boolean closeBase(java.lang.String pathBase);
Аргументы:
pathBase. Путь к базе данных.
Метод возвращает значение True, если закрытие базы данных выполнено успешно, иначе False.
Пример запроса:
closeBase("my_database");
Использование методов приведено в примере «Примеры работы с ресурсами».
Методы данной области реализованы в модуле RequestAPI, экземпляр которого доступен в классе HyperHive (hyperHive.requestAPI).
Примечание. В случае, если в источнике данных поменялась структура ресурса, то требуется его пересоздать в административной панели мобильной платформы, также следует пересоздать кэш в мобильном фреймворке. В противном случае ресурс будет отдаваться со старой структурой.
Добавление параметров запроса (setArgs)
Метод setArgs добавляет параметры запроса.
public void setArgs(java.util.Map<java.lang.String,java.lang.String> args);
Аргументы:
args. Принимает «Map» с параметрами ключ-значение.
Пример:
аргументы:
HashMap hashMap = new HashMap<>();
hashMap.put("hh_limit", "5");
запрос:
http://10.30.300.30/...?...&hh_limit=5&...
Запрос к ресурсу без загрузки в базу данных (request)
Метод служит для выполнения универсального запроса к ресурсу с произвольными параметрами. Доступные параметры указаны в классе RequestCallParams. Метод возвращает экземпляр класса Call.
request(@NonNull final String resourceName, final RequestCallParams requestCallParams, final Class<T> tClass)
Метод служит для выполнения запроса к WEB-ресурсу с произвольными параметрами. Доступные параметры указаны в классе WebCallParams. Метод возвращает экземпляр класса Call.
Вызывать метод необходимо при наличии схемы доступных ресурсов, полученной методом Resources после успешной аутентификации.
web(@NonNull final String resourceName, WebCallParams webCallParams, final Class<T> tClass)
Загрузка дельты в базу данных (deltaStream)
Метод служит для обновления и актуализации ресурса с помощью delta-stream в локальной базе данных. Доступные параметры указаны в классе DeltaStreamCallParams. Метод возвращает экземпляр класса Call.
Вызывать метод необходимо при наличии схемы доступных ресурсов, полученной методом Resources после успешной аутентификации.
deltaStream(String resource, DeltaStreamCallParams deltaStreamCallParams, Class<T> tClass)
Загрузка табличных данных в базу данных (tableStream)
Метод служит для обновления и актуализации некэшируемого ресурса с помощью delta-stream в локальной базе данных. Доступные параметры указаны в классе DeltaStreamCallParams. Метод возвращает экземпляр класса Call.
Вызывать метод необходимо при наличии схемы доступных ресурсов, полученной методом Resources после успешной аутентификации.
tableStream(String resource, TableStreamCallParams deltaStreamCallParams, Class<T> tClass)
Получение табличных данных ресурса без загрузки в базу данных (table)
Метод служит для получения табличных данных ресурса. Доступные параметры указаны в классе TableCallParams. Метод возвращает экземпляр класса Call.
table(String resource, TableCallParams tableCallParams, Class<T> tClass)
При получении данных из кэшируемого источника есть возможность ограничить набор возвращаемых данных по условиям, переданным в аргументах.
Аргументы для выборки можно задать в tableCallParams с помощью метода setArgs(Map<String, String> args).
Аргументы для пагинации:
hh_order. Задает имя столбца для упорядочивания строк и порядка сортировки. Примеры: {hh_order, name+asc}, {hh_order, name+desc};
hh_skip. Задает число строк таблицы, которые нужно пропустить при формировании ответа;
hh_limit. Задает число строк таблицы, которые нужно вернуть в ответе.
Аргумент для фильтрации по значению «col_id=value» – аргумент имеет название вида «col_<column_name>». Например: «col_id=123», вернет только данные, где в столбце id установлено значение 123.
Установка глобального обработчика ошибок (setRequestErrorListener)
Метод устанавливает RequestErrorListener для перехвата обработки любых ошибок, возникающих при выполнении запросов в RequestAPI. Для отписки можно выполнить метод setRequestErrorListener(null):
void setRequestErrorListener(RequestErrorListener requestErrorListener)
Возобновление загрузки ресурса (setUseDownload)
Метод setUseDownload определяет возобновление загрузки ресурса.
Синтаксис:
hyperHive.filesApi.setUseDownload(state)
hyperHive.filesApi.setUseDownload(state);
Входной параметр:
Параметр | Тип данных | Описание |
state | Boolean | Определение возобновления загрузки ресурса. Возможные значения:
|
Метод используется при неуспешной попытке загрузки ресурса для восстановления загрузки ресурса с сохранением состояния на момент прерывания. Если во время загрузки ресурса произошла ошибка или разрыв соединения с сервером мобильной платформы, то мобильное приложение будет выполнять повторные попытки запроса ресурса.
Для возобновления загрузки ресурса используйте свойства retryCount и retryIntervalSec вспомогательных классов RequestCallParams, TableCallParams, DeltaStreamCallParams при выполнении методов работы с ресурсами deltaStream, tableStream, table.
Порядок использования возобновления загрузки ресурса:
Укажите путь к папке с файлами текущего состояния загрузки ресурсов с помощью метода setDownloadPath после инициализации Android-фреймворка в директории мобильного приложения.
Включите возобновление загрузки ресурса. Для включения возобновления загрузки ресурса используйте метод setUseDownload со значением True.
Выполните необходимые методы работы с ресурсами.
Отключите возобновление загрузки ресурса. Для отключения возобновления загрузки ресурса используйте метод setUseDownload со значением False.
Пример:
// Укажем путь для хранения временных файлов
hyperHive.requestAPI.setDownloadPath(getCacheDir().getAbsolutePath() + "/tmp");
hyperHive.requestAPI.setUseDownload(true);
// Выполним запрос tableStream
val params = TableStreamCallParams()
params.dataBasePath = "/path/to/database"
params.retryCount = 10
params.retryIntervalSec = 1
hyperHive.requestAPI.tableStream("resource", params)
// Укажем путь для хранения временных файлов
hyperHive.requestAPI.setDownloadPath(getCacheDir().getAbsolutePath() + "/tmp");
hyperHive.requestAPI.setUseDownload(true);
// Выполним запрос tableStream
final TableStreamCallParams params = new TableStreamCallParams();
params.setDataBasePath("/path/to/database");
params.setRetryCount(10);
params.setRetryIntervalSec(1);
hyperHive.requestAPI.tableStream("resource", params);
Установка пути к папке с файлами текущего состояния загрузки ресурса (setDownloadPath)
Метод setDownloadPath устанавливает путь к папке в директории мобильного приложения, где будут храниться файлы текущего состояния загрузки ресурсов.
Синтаксис:
hyperHive.filesApi.setDownloadPath(path)
hyperHive.filesApi.setDownloadPath(path);
Входной параметр:
Параметр | Тип данных | Описание |
path | String | Путь к папке в директории мобильного приложения, где будут храниться файлы текущего состояния загрузки ресурсов. По умолчанию устанавливается путь к папке Documents. |
Использование метода приведено в примере для метода setUseDownload.
Использование методов приведено в примере «Примеры работы с ресурсами».
Методы данной области реализованы в модуле PushAPI, экземпляр которого доступен в классе HyperHive (hyperHive.pushAPI).
Получение списка активных токенов (getTokens)
Метод возвращает список токенов, привязанных к пользователю на сервере.
getTokens()
Отправка токена на сервер (addToken)
Метод служит для отправки токена на сервер.
addToken(@NonNull final String token)
Удаление токенов с сервера (removeTokens)
Метод служит для удаления переданных токенов с сервера.
removeTokens(@NonNull final List<String> tokens)
Получение списка тем сообщений (getTopics)
Метод возвращает список тем сообщений с дополнительной информацией, доступных для пользователя.
getTopics()
Подписка на сообщения (subscribe)
Метод служит для подписки на сообщения сервера с соответствующими топиками (темами). Метод возвращает экземпляр класса Call.
subscribe(final List<String> topics)
Отписка от сообщений (unsubscribe)
Метод служит для отписки от сообщений сервера с соответствующими топиками (темами).
unsubscribe(@NonNull final List<String> topics)
Использование методов приведено в примере «Пример работы с push-уведомлениями».
Скачивание файла с сервера (fileGet)
Метод fileGet скачивает файл с сервера мобильной платформы.
Синтаксис:
fun <T : BaseStatus> fileGet(local: String,
remote: String,
mount: String,
gson: Class<T> = BaseStatus::class.java,
key: String = ""): Call<T>
Call<BaseStatus> fileGet(String local, String remote, String mount);
Call<T extends BaseStatus> fileGet(String local, String remote, String mount, Class<T> gson);
Call<BaseStatus> fileGet(String local, String remote, String mount, String key);
Call<T extends BaseStatus> fileGet(String local, String remote, String mount, Class<T> gson, String key);
Входные параметры:
Параметр | Тип данных | Описание |
local | String | Абсолютный путь к файлу на мобильном устройстве. |
remote |
String | Относительный путь к файлу на сервере мобильной платформы. |
mount |
String | Точка монтирования на сервере мобильной платформы. |
gson |
Class<T> | Класс для десериализации GSON. По умолчанию используется BaseStatus::class.java. |
key |
String | Ключ локального шифрования файла. По умолчанию строка пустая. При указании ключа шифрования скачиваемый файл будет зашифрован с использованием данного ключа. |
Пример:
val loaded = hyperHive.filesApi.fileGet(
"/path/to/local.txt",
"./path/to/remote.txt",
"nfs4",
BaseStatus::class.java,
"password"
).execute().isOk
final boolean loaded = hyperHive.filesApi.fileGet(
"/path/to/local.txt",
"./path/to/remote.txt",
"nfs4",
BaseStatus.class,
"password"
).execute().isOk();
Загрузка файла на сервер (filePut)
Метод filePut загружает файл на сервер мобильной платформы.
Синтаксис:
fun <T : BaseStatus> filePut(local: String,
remote: String,
mount: String,
gson: Class<T> = BaseStatus::class.java,
key: String = ""): Call<T>
Call<BaseStatus> filePut(String local, String remote, String mount);
Call<T extends BaseStatus> filePut(String local, String remote, String mount, Class<T> gson);
Call<BaseStatus> filePut(String local, String remote, String mount, String key);
Call<T extends BaseStatus> filePut(String local, String remote, String mount, Class<T> gson, String key);
Входные параметры:
Параметр | Тип данных | Описание |
local | String | Абсолютный путь к файлу на мобильном устройстве. |
remote |
String | Относительный путь к файлу на сервере мобильной платформы. |
mount |
String | Точка монтирования на сервере мобильной платформы. |
gson |
Class<T> | Класс для десериализации GSON. По умолчанию используется BaseStatus::class.java. |
key |
String | Ключ локального шифрования файла. По умолчанию строка пустая. При указании ключа загружаемый файл будет расшифрован с использованием данного ключа и загружен на сервер мобильной платформы. |
Пример:
val uploaded = hyperHive.filesApi.fileGet(
"/path/to/local.txt",
"./path/to/remote.txt",
"nfs4",
BaseStatus::class.java,
"password"
).execute().isOk
final boolean uploaded = hyperHive.filesApi.fileGet(
"/path/to/local.txt",
"./path/to/remote.txt",
"nfs4",
BaseStatus.class,
"password"
).execute().isOk();
Расшифровка файла в новый файл или в буфер памяти (fileDecrypt)
Метод fileDecrypt расшифровывает файл и помещает расшифрованное содержимое в новый файл или в буфер памяти мобильного устройства.
Синтаксис:
fun fileDecrypt(from: String, to: String, key: String): Call<Unit> // расшифровка в новый файл
fun fileDecrypt(from: String, key: String): Call<ByteArray> // расшифровка в буфер памяти
Call<Void> fileDecrypt(String from, String to, String key) // расшифровка в новый файл
Call<ByteArray> fileDecrypt(String from, String key) // расшифровка в буфер памяти
Входные параметры:
Параметр | Тип данных | Описание |
from | String | Абсолютный путь к файлу на мобильном устройстве, который будет расшифрован. |
to |
String | Абсолютный путь к новому файлу на мобильном устройстве, в который будет загружено содержимое расшифрованного файла. |
key |
String | Ключ шифрования, который использовался при загрузке файла с помощью метода fileGet. |
Пример:
hyperHive.filesApi.fileDecrypt(
"/path/to/encrypted.txt",
"/path/to/decrypted.txt",
"password"
).execute()
val data = hyperHive.filesApi.fileDecrypt(
"/path/to/encrypted.txt",
"password"
).execute()
val string = String(data) // текстовый файл
val bitmap = BitmapFactory.decodeByteArray(data, 0, data.size) // изображение
... // файл в формате pdf и другие
hyperHive.filesApi.fileDecrypt(
"/path/to/encrypted.txt",
"/path/to/decrypted.txt",
"password"
).execute();
final byte[] data = hyperHive.filesApi.fileDecrypt(
"/path/to/encrypted.txt",
"password"
).execute();
final String string = new String(data); // текстовый файл.
final Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length) // изображение
... // файл в формате pdf и другие
Использование методов приведено в примере «Пример работы с файлами».
Методы данной области реализованы в модуле LoggingAPI, экземпляр которого доступен в классе HyperHive (hyperHive.loggingAPI).
Метод служит для инициации автоматической отправки логов по расписанию, полученному от сервера. Если инициирование выполнено успешно, возвращает значение True, иначе - False. Метод необходимо запускать после успешной аутентификации.
Метод необходимо запускать после успешной аутентификации. Если база данных должна быть зашифрована, перед вызовом метода нужно открыть базу данных с ключом шифрования.
initLogging()
Установка уровня логирования (setLogLevel)
Метод служит для установки минимального уровня логирования:
setLogLevel(int level)
Аргумент level принимает значения:
4. LOG_INFO;
5. LOG_WARNING;
6. LOG_ERROR.
Вывод лога работы фреймворка в консоль (setLogEnabled)
Метод setLogEnabled определяет вывод лога работы фреймворка в консоль.
hyperHive.loggingApi.setLogEnabled(enabled)
Входные параметры:
Параметр | Тип данных | Описание |
enabled | Bool | Определение вывода лога работы фреймворка в консоль. Возможные значения:
|
Пример:
hyperHive.loggingApi.setLogEnabled(true)
Создание логов (logTrace, logWarning, logFatal)
Каждый из методов сохраняет сообщение в журнале логов с указанием текущего времени и уровня логирования.
logTrace(@NonNull String message),
logWarning(@NonNull String message),
logFatal(@NonNull String message)
Методы данной области реализованы в модуле StateAPI, экземпляр которого доступен в классе HyperHive (hyperHive.stateAPI).
Сохранение состояния в базу данных (saveStateToDB())
Метод служит для сохранения текущего состояния (авторизационные данные и схема ресурсов) в базу данных. Метод возвращает значение True, если сохранение выполнено успешно, и False в ином случае.
saveStateToDB(String dbPath)
Восстановление состояния из базы данных (restoreStateFromDB())
Метод служит для восстановления состояния (авторизационные данные и схема ресурсов) из базы данных. Метод возвращает значение True, если восстановление выполнено успешно, и False в ином случае.
После восстановления состояния все открытые базы данных закрываются. При необходимости работы с зашифрованной базой данных после восстановления, её необходимо открыть с ключом шифрования, иначе все последующие запросы к этой базе данных будут безуспешны.
restoreStateFromDb(String dbPath)
Версия ядра (getVersionCoreAPI)
Метод служит для выдачи информации о версии используемого ядра:
getVersionCoreAPI(int depth)
Аргумент depth влияет на формат информации:
1. Самый краткий формат;
4. Самый подробный формат.
Версия плагина (getVersionPlugin)
Метод служит для выдачи информации о версии используемого плагина:
getVersionPlugin()
Сохранение произвольного параметра в базу данных (saveParamToDB())
Метод служит для сохранения в таблицу с именем «hhivePreference», для указанной базы данных dbPath, значение «value» с ключом «key». Метод возвращает значение True, если сохранение выполнено успешно, и False в ином случае.
boolean saveParamToDB(String dbPath, String key, String value)
Получение значения параметра из базы данных (getParamFromDB())
Метод служит для получения значения параметра с ключом «key» из таблицы с именем «hhivePreference», для указанной базы данных dbPath. Метод возвращает значение параметра, если он есть в таблице, и «null» в ином случае.
String getParamFromDB(String dbPath, String key)
Для инициализации и настройки Android обратитесь к разделу «Инициализация Android-фреймворка».
Для просмотра примеров использования Android-фреймворка обратитесь к разделу «Примеры использования Android-фреймворка».
См. также:
Фреймворк Android | Инициализация Android-фреймворка | Примеры использования Android-фреймворка