【问题标题】:Detecting mounted USB devices in OS X在 OS X 中检测已安装的 USB 设备
【发布时间】:2015-02-27 20:01:48
【问题描述】:

所以我试图在我的 Mac Mini 上检测 OS X 中已安装和未安装的 USB 设备

我已按照其他指南进行操作,但我似乎没有收到任何通知。

这是我拥有的代码,我也尝试将其放置在视图控制器类中,但无济于事。

@implementation AppDelegate

- (void)deviceMounted: (NSNotification *) notification
{
    NSLog(@"Mounted");
}
- (void)deviceUnmounted: (NSNotification *) notification
{
    NSLog(@"Unmounted");
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
   NSNotificationCenter *notificationCenter2 = [[NSWorkspace sharedWorkspace] notificationCenter];

    // Notification for Mountingthe USB device
    [notificationCenter2 addObserver:self selector:@selector(deviceMounted:)  name:NSWorkspaceDidMountNotification object:nil];

    // Notification for Un-Mountingthe USB device
    [notificationCenter2 addObserver:self selector:@selector(deviceUnmounted:)  name:NSWorkspaceDidUnmountNotification object:nil];
}

【问题讨论】:

    标签: macos usb


    【解决方案1】:

    您的代码尝试记录的方式不正确,NSLog 是您需要的:

    - (void)deviceMounted: (NSNotification *) notification
    {
        NSLog(@"Mounted");
    }
    - (void)deviceUnmounted: (NSNotification *) notification
    {
        NSLog(@"Unmounted");
    }
    

    结果

    2015-02-27 04:07:00.593 notify[32431:16256290] Mounted
    2015-02-27 04:07:11.587 notify[32431:16256290] Unmounted
    

    【讨论】:

    • 对不起,我在那里有自己的日志宏,我已经根据您的建议更新了示例(和我的代码),但我仍然没有收到通知(否则日志正在工作)。
    • 您希望如何收到通知...通知可以是对话框、警报等。目前您获得的代码只是观察卸载、安装过程 - 但没有什么告诉它要做什么从那里开始。
    • 只要我真的收到通知,我应该可以从那里去执行任何其他任务,现在我只想获取日志文本。好的,我刚刚意识到问题是我希望收到任何插入的 USB 设备的通知,但显然此代码仅适用于记忆棒等设备,在这种情况下它可以正常工作。就我而言,我想识别连接的 FTDI 设备...
    • 是的,您需要稍微不同的代码来处理它。正如人们所期望的那样,您的代码确实适用于memory sticks.dmg'setc.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2013-01-31
    • 2013-12-02
    • 2012-09-06
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多