我对在 Mac 上开发应用程序完全陌生。在这里,我只使用 Qt 开发了 2-3 个应用程序,而没有使用 Objective-c / cocoa / xcode 开发的应用程序。
在 Qt 4(特别是 4.8)中,有没有办法检测 SD 卡何时插入 Mac mini(OS X Lion)?
我在网上和 stackoverflow 上(重新)搜索了很多 - 并且出现了一些结果 - 但都是针对 Android 和 Windows - 与 Mac(mini OS X Lion)无关。
直到现在我发现了这个:
- 在 Mac (mini) 上,读卡器的处理方式与任何其他 USB 设备一样
- 我还在 Mac Developer Library 中找到了这个示例。我希望所有人都可以访问此链接。
此示例...“演示了使用 IOKitLib 和 IOUSBLib 在 USB 设备连接到系统或从系统中移除时设置异步回调”。因此是可以实现的。
我想在 Qt 中做同样的事情。
我想检测何时插入了 SD 卡,然后我想显示我的应用程序,获取一些输入并将所选文件从卡移动到本地磁盘。
显然,一切都很简单——仅检测卡片并显示应用程序(从托盘或最小化状态)是重要且困难的部分。
如果您能指出正确的方向,我将不胜感激。
提前致谢!!
更新:
我进一步研究发现:
- 在 Linux 上我们可以用它
udev(libudev)
来实现这样的事情。 - 但后来我发现udev 是 Linux 特定的,在 OS X 中找不到。这里
的答案建议. 我在这里和这里发现了一些非常相似的东西,但是对于使用udev规则的 Linux :(use the diskutil activity command to continuously monitor disks being mounted or ejected
- 最新且看似最相关的发现是:
diskutil
plist
并且IOKit(DiskArbitration)
必须成为我寻求的解决方案的一部分
- 最后,在这里我发现
launchd
plist
了Lingon
现在......我有比昨天更多的东西,但我仍然需要帮助将所有这些放在一起并在 Qt 应用程序中使用它。我非常感谢有人指导我达到最终结果。如果我真的能创造出有用的东西,我会继续努力并更新。
提前致谢!!:)