MacOS Sequoia: как программно проверить, имеет ли вызывающее приложение разрешение «Локальная сеть»?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 MacOS Sequoia: как программно проверить, имеет ли вызывающее приложение разрешение «Локальная сеть»?

Сообщение Anonymous »

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

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-local-ne
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»