Можно ли программно запустить брандмауэр bluetooth?

У меня есть двойной пульт bluetooth, соединенный с моим телефоном Android. Удаленный затвор работает как клавиатура bluetooth.

Мое приложение успешно обрабатывает события клавиатуры, созданные удаленным затвором, но удаленный затвор переходит в режим сна через 90 секунд и требует нажатия одной клавиши, чтобы разбудить его, прежде чем он отправит следующее нажатие клавиши.

Мне нужен механизм для того, чтобы держать пульт затвора бодрствующим, чтобы я не потерял это первое нажатие клавиши. (Да, я понимаю, что режим сна - это экономия энергии, но мне нужна низкая латентность).

Я попытался подключиться к устройству как к клиенту, так и к серверу, надеясь, что я могу отправить что-то на OutputStream на устройство. Но я не смог создать соединение.

Есть ли какой-либо способ программно не запускать удаленный затвор?

На основании следующих ответов я подозреваю, что не

Для полноты деталей парного устройства:

  • name = AB Shutter3
  • MAC = Some_MAC_ADDRESS
  • btclass= 2540
  • btType = 1
  • UUID, = [00001124-0000-1000-8000-00805f9b34fb, 00000000-0000-1000-8000-00805f9b34fb]

Ответ 1

Нет программного способа сделать это, но у вас есть 3 возможных решения для вашей проблемы:

  • Получить затвор, который не спит
  • Сделайте свой собственный затвор, используя Arduino или Raspberry Pi
  • Измените затвор AB, добавив дополнительную схему, которая позволяет вашему устройству каждый раз, когда он выключается. Для этой цели вы можете воспользоваться преимуществами этих ссылок, чтобы узнать больше о схеме и как ее изменить: http://www.the-bridge.cc/ct137s15/?p=2647 и https://shkspr.mobi/blog/2016/02/cheap-bluetooth-buttons-and-linux/

Ответ 2

Похоже, что это полностью зависит от прошивки удаленного затвора: если он переходит в режим сна через 90 секунд после последнего нажатия клавиши - нет возможности разбудить его программно (если не изменить его прошивку). Самое простое решение - использовать дистанционный затвор без спящего режима (или кнопку DIY bt/ble). И все же вы можете использовать внешнюю схему (например, на основе 555 таймера), питаемую от батареи затвора, и параллельно подключенную к одной из кнопок затвора, которая генерирует импульс каждые 90,1 с для имитации первого нажатия клавиши и срабатывания затвора.

Ответ 3

Да, можно поддерживать другой конец соединения, если он принимает входные сигналы.

Как вы упомянули,

Я попытался подключиться к устройству как к клиенту, так и к серверу, надеясь, что я могу отправить что-то на OutputStream на устройство. Но я не смог создать соединение.

Это лучший способ удержать Bluetooth-устройство. Это является устройством, которое я использовал для отправки сигналов на мой Nexus Player удаленно программно [Linux Platform]. Первоначально я использовал команды HIDD и RFCOMM на терминале Linux, а затем начал внедрять соединение в C.

Другим способом является изменение прошивки устройства в соответствии с вашими требованиями (если возможно).

Исключение: если прошивка устройства BT была спроектирована таким образом, что только нажатие на кнопку удерживает ее, и никакой другой входной сигнал не может reset таймер или счетчик, тогда ничего не может быть сделано из внешний мир этого устройства. И Reading Здесь дается подсказка, что AB Shutter является одним из них (все еще не уверен, хотя).