Как программно удалить файлы / var / lib / bluetooth / [adapter] / cache? - PullRequest
0 голосов
/ 27 октября 2018

Периферийное устройство, к которому я подключаюсь, имеет характеристику Service Changed, и, насколько я понимаю, при подключении, если присутствует характеристика Service Changed, клиент может не кэшировать атрибуты, если он не связан.Здесь есть хороший объяснение .

Теперь я начну с пустой директории /var/lib/bluetooth/[adapter].Если я использую bluetoothctl, чтобы включить сканирование, а затем выключить, я увижу свое устройство.Затем я подключаюсь к нему, и происходит обнаружение служб и характеристик (путем мониторинга сообщений ATT с использованием btmon).Большой!Теперь я отключаюсь.

Изучение каталога /var/lib/bluetooth/[adapter] показывает:

  • каталог /var/lib/bluetooth/[adapter]/[device]
  • файл /var/lib/bluetooth/[adapter]/cache/[device]

Теперь позвольте мне удалить устройство из bluetoothd:

bt-device -r [device]

Изучение каталога /var/lib/bluetooth/[adapter] теперь показывает:

  • file /var/lib/bluetooth/[adapter]/cache/[device]

Это беспокоит.И если я снова запускаю bluetoothctl, включаю сканирование, выключаю его и подключаюсь, я больше не вижу характерного обнаружения.Только открытие сервиса.Это не соответствует контракту характеристики «Изменено обслуживание».

Если вместо этого вручную удалить /var/lib/bluetooth/[adapter]/cache/[device], то я вижу обнаружение характеристики.

Вопрос:

Даночто bt-device -r [device] НЕ удаляет файл cache/[device], как мне программно удалить этот файл без запуска процесса sudo rm?

...