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