Я поддерживаю несколько приложений C++/Qt, целью которых является взаимодействие с устройствами в локальной сети (через функции TCP и UDP API сокетов BSD).
Они обычно работают нормально под MacOS, но Apple по своей мудрости добавила разрешение «Локальная сеть» на панель настроек «Безопасность и конфиденциальность», и если приложения там не указаны и не включены, то пользователю кажется, что они сломаны, и я получаю сообщение отчет об ошибке от раздраженного пользователя.
Поэтому я хотел бы, чтобы мои приложения явно проверяли состояние этого разрешения при запуске, чтобы, если у них его нет, разрешение включено. Я могу показать пользователю диалоговое окно с явными инструкциями о том, в чем проблема и как включить разрешение локальной сети.
Мой вопрос: как я могу явно проверить наличие/ отсутствие этого разрешения в моем приложении? (Конечно, я могу провести своего рода тест, попытавшись отправить/получить данные по локальной сети и посмотреть, работает ли это, но я бы предпочел проверить настройку разрешения напрямую, поскольку угадывание его состояния по соответствующему поведению сети в некоторых случаях может привести к ошибочному диагнозу).
Подробнее здесь: https://stackoverflow.com/questions/791 ... s-local-ne
MacOS Sequoia: как программно проверить, имеет ли вызывающее приложение разрешение «Локальная сеть»? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение