Topic: Получение телефона объекта по API
Добрый вечер уважаемые! Вопрос связан с JAVA-SDK официальный пакет для работы в Java приложениях, пример(github.com/wialon/java_wialon_sdk/blob/master/JavaWialonSdkExamples/src/com/wialon/java/test/UnitsSearchExample.java):
При попытке обратится к поиску с помощью API с запросом "дай мне пожалуйста ВСЕ объекты(units)"(запрос из примера в документации) с флагами:
SearchSpec searchSpec = new SearchSpec();
//Set items type to search avl_units
searchSpec.setItemsType(Item.ItemType.avl_unit);
//Set property name to search
searchSpec.setPropName("sys_name");
//Set property value mask to search all units
searchSpec.setPropValueMask("*");
//Set sort type by units name
searchSpec.setSortType("sys_name");
и собственно самим запросом:
session.searchItems(searchSpec, 1, Item.dataFlag.base.getValue(), 0, 10, new SearchResponseHandler() -> ...);
Мы получаем 10 первых объектов, с информацией по базовому флагу. В него входит необходимый для расшифровки JSON атрибут cls. Пока все в порядке, и хорошо работает с SDK на Java предоставленным Wialon в документации. Однако, нам необходимо получить номера телефонов данного объекта, для этого мы используем флаг DEC 256 (sdk.wialon.com/wiki/ru/sidebar/remoteapi/apiref/format/unit#osnovnye_svojstva) в котором указано, что эти телефоны есть.
session.searchItems(searchSpec, 1, 256L, 0, 10, new SearchResponseHandler() -> ...);
(да, в вашей библиотеке отсутствует данный флаг, нужно добавить, а то придется делать форк)
В этом случае:
1. мы теряем необходимый атрибут cls(его просто не отсылается, из-за другого флага, и ответ падает с Null, т.к. это поле обязательно).
2. Номера телефонов нам там в ответе и не дают.
Окей, тогда мы пробуем флаг 4611686018427387903 DEC а-ля дай нам пожалуйста всю информацию по объекту.
session.searchItems(searchSpec, 1, 4611686018427387903L, 0, 10, new SearchResponseHandler() -> ...);
(да, этого флага в библиотеке тоже нет) Как и телефонов.
Главный вопрос:
1. Как достать номера телефонов и имя объекта одним запросом? А если нельзя одним, тогда несколькими?
Заранее спасибо за ответы.