Мне нужно настроить сервер OBEX в приложении на устройстве Android 2.3. Используя образец кода Bluetooth Chat, я смог установить сервер OBEX. Однако сервер должен использовать пользовательский UUID, чтобы служба не была зарегистрирована как 'OBEX-сервер'
# sdptool browse local
...(snip)...
Service Name: OBEX Object Push
Service RecHandle: 0x10000
Service Class ID List:
UUID 128: ab123abc-1a2b-3c4d-5d7f-1234567890ab
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 18
Поэтому, когда я получаю данные, это выглядит так, будто я получаю необработанный запрос на соединение OBEX:
80 00 07 10 00 04 00 00 00 00 ...(snip)... 00 00 00 (1kb file)
Есть ли реализация OBEX, которую я могу использовать, или мне нужно реализовать протокол самостоятельно?
Я не хочу использовать встроенный сервер OBEX - это должно быть в аппликации. я попробовал BleyCove, но я отказался от него, когда у меня возникли проблемы с регистрацией сервиса.
Да, я видел эту публикацию и читал в ней ссылку , но, по-моему, должен быть более простой способ!
-121--1943514-
У меня есть следующая функция в Postgres:
CREATE OR REPLACE FUNCTION point_total(user_id integer, gametime date)
RETURNS bigint AS
$BODY$
SELECT sum(points) AS result
FROM picks
WHERE user_id = $1
AND picks.gametime > $2
AND points IS NOT NULL;
$BODY$
LANGUAGE sql VOLATILE;
Она работает правильно, но когда пользователь запускается и не имеет точек, он очень разумно возвращает NULL. Как изменить его так, чтобы он возвращал 0.
Изменение тела функции на следующее приводит к ошибке "ERROR: syntax error at or near" IF ".
SELECT sum(points) AS result
FROM picks
WHERE user_id = $1
AND picks.gametime > $2
AND points IS NOT NULL;
IF result IS NULL
SELECT 0 AS result;
END;