Как всегда поддерживать связь SAP между приложением Android (потребитель) и приложением Gear (поставщик)?
У нас есть приложение для Android, которое обнаруживает отслеживание сна (может работать до 12 и более часов) от различных датчиков, и мы хотели бы добавить к нему серию Tizen Gear.
Мы используем много способов взаимодействия с каждым (BLE, сервер-сервер и т. Д.)
Что я сделал до сих пор -
У меня есть простое приложение с пользовательским интерфейсом Tizen (поставщик), для которого работает только таймер, позволяющий увидеть, как долго выполняется измерение, и который взаимодействует с приложением Android (потребитель) с помощью SAP. Мой базовый код взят из примера HelloAccessory, который выглядит хорошо.
У меня также есть сервисное приложение, которое блокирует процессор и запускает отслеживание датчика HRM и ACC. Приложение "Служба" прекрасно работает даже в течение нескольких часов и, похоже, не потребляет заметного заряда батареи, поскольку я запрашиваю его периодически и не всегда.
Дело в том, что через несколько часов и, может быть, даже через несколько минут соединение кажется потерянным (я получаю 513 - соединение закрыто), и я не могу его восстановить вообще. Также кажется, что мне нужно открыть приложение Gear, прежде чем открывать приложение Android, чтобы соединение было живым.
Теперь мне не нужно сохранять соединение в течение всего времени, а только для запуска и остановки приложения-службы и получения записанных данных и, возможно, для одного или двух дополнительных событий.
Я хочу взаимодействовать с приложением Gear ТОЛЬКО из приложения Android, то есть даже если приложение Gear закрыто, я все равно хотел бы запустить его и запустить приложение Service, но кажется, что соединение с пользовательским интерфейсом Tizen не работает. приложение. Это вообще возможно? Возможно ли использовать BLE/GATT для этого типа соединения? Я хочу иметь возможность подключаться к приложению Gear по требованию ВСЕГДА.
Любая помощь будет оценена. Если код нужен, пожалуйста, дайте мне знать.
Спасибо!
1 ответ
Что касается моего опыта разработки Tizen, то сценарий таков, что ваш процесс / приложение завершается системой. После недавнего обновления ОС Tizen стал очень агрессивно относиться к управлению энергоресурсами.
Я еще не видел ни одной функции API в Accessory SDK для запуска приложения tizen с помощью телефона Android, это всего лишь канал связи. Я бы посоветовал вам запустить приложение tizen с самого конца tizen, используя Tizen appControl, когда вам это нужно. Проверяя ваши требования, Alarm API будет для вас разумным способом. Например: используйте функцию alarm_schedule_after_delay (), чтобы запустить приложение после необходимого периода. Вы можете вызвать функцию в app_terminate_cb (). Таким образом, каждый раз, когда приложение (service/UI) убивается, оно устанавливает расписание для восстановления.
Кроме того, вы можете проверить этот вопрос. В вопросе OP поделились некоторыми хорошими способами, чтобы приложение Tizen оставалось живым / работающим, некоторые могут подойти для вашего случая.