在 macOS 上使用 Rust 实现 USB 热插拔检测——响应设备连接与断开

发布日期:2026-06-18 10:00:27   浏览量 :6
发布日期:2026-06-18 10:00:27  
6

所有测试均在一台使用了8年的 MacBook Air 上运行。所有结果均来自作为一名独立开发者发布的7款 Mac 应用程序。非赞助观点。

HiyokoAutoSync 和 HiyokoMTP 在连接 Android 设备时均能即时响应。无需轮询。无需“刷新”按钮。只需插入即可工作。以下是 Rust 在 macOS 上实现 USB 热插拔检测的原理。

方法:nusb 热插拔 API

nusb 提供了一个热插拔监听 API,它封装了 macOS 的 IOKit USB 通知:

use nusb::hotplug::{HotplugEvent, HotplugWatch};

fn watch_usb_devices(app_handle: AppHandle) {
    std::thread::spawn(move || {
        let watch = nusb::watch_devices().expect("Failed to start USB watch");

        for event in watch {
            match event {
                HotplugEvent::Connected(device_info) => {
                    if is_android_device(&device_info) {
                        app_handle.emit("device-connected", DeviceInfo {
                            name: device_info.product_string().unwrap_or_default(),
                            vendor_id: device_info.vendor_id(),
                            product_id: device_info.product_id(),
                        }).ok();
                    }
                }
                HotplugEvent::Disconnected(device_info) => {
                    if is_android_device(&device_info) {

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 订阅 数据