Я совершенно не знаком с разработкой приложений на Mac. Здесь я разработал только 2-3 приложения, использующие Qt и не используя objective-c/cocoa/xcode.
Есть ли способ обнаружить, когда SD-карта вставлена в Mac mini (OS X Lion) в Qt 4 (4,8)?
I (re) много искал в Интернете, а также в stackoverflow - и некоторые результаты появились - но все для Android и Windows - ничего не связано с Mac (mini OS X Lion).
До сих пор я нашел это:
- на Mac (mini) устройство чтения карт рассматривается как любое другое USB-устройство.
- Я также нашел этот пример в Mac Developer Library. Надеюсь, эта ссылка доступна для всех.
Этот пример... "демонстрирует использование IOKitLib и IOUSBLib для настройки асинхронных обратных вызовов, когда USB-устройство подключено к системе или удалено из системы". Следовательно, это достижимо.
Я хочу сделать то же самое в Qt.
Я хочу определить, когда была вставлена SD-карта, затем я хочу показать свое приложение, получить ввод и переместить выбранные файлы с карты на локальный диск.
Ясно, что все просто: просто обнаружить карту и показать приложение (из лотка или сведенного к минимуму состояния) является важной и сложной частью.
Я бы очень признателен, если вы можете указать мне в правильном направлении.
Спасибо заранее!
Update:
Я еще исследовал и обнаружил, что:
- в Linux мы можем использовать
udev(libudev)
для достижения таких вещей. - но потом я обнаружил, что udev - это конкретный Linux и не найдет этого в OS X.
Ответы здесь предлагаюuse the diskutil activity command to continuously monitor disks being mounted or ejected
.
Я нашел нечто очень похожее здесь и здесь, но для Linux с использованием правил udev: ( - последним и, по-видимому, наиболее актуальным является то, что:
-
diskutil
plist
иIOKit(DiskArbitration)
должны быть частью решения, которое я ищу
-
- Наконец, здесь я узнал о
launchd
plist
иLingon
Теперь... У меня намного больше, чем вчера, но мне все равно нужна помощь, чтобы собрать все это вместе и использовать его в приложении Qt. Я был бы очень признателен за то, что кто-то направил меня к окончательному результату. Я буду продолжать работать над этим и обновлять, если я действительно могу создать что-то полезное.
Спасибо заранее!:)