首页 文章

Android - 从USB接收佳能(相机)事件

提问于
浏览
1

使用Android USB框架,我检索相关的 endpoints 并使用这些 endpoints 与系留相机进行通信 . 我可以从尼康相机连接和接收事件,它从中断 endpoints 发送事件 . 但是,连接到佳能相机时,不会从此 endpoints 接收数据/事件 .

我在某处读到佳能不遵守PTP,并从BULK IN endpoints 发送事件,但是,相机也没有从该 endpoints 发送任何数据/事件 .

目前使用的示例代码;

byte[] data = new byte[4096];
int bytesRead = usbDeviceConnection.bulkTransfer(interruptEndpoint, data, data.length, 1000);
if(bytesRead > 0)
{
  // Read event
}

有关如何从佳能读取数据的任何想法?目前似乎相机没有发送任何东西,但我知道它是 . 确切的型号是EOS 7D .

1 回答

  • 1

    经过大量的试验和错误以及USB嗅探后,管理这个工作 .

    虽然似乎没有通过中断 endpoints 发送任何东西,但 endpoints 结果是相同的 - 而是我使用IN和OUT endpoints 来请求来自摄像机的事件,然后处理返回的事件列表 .

    另一个问题似乎是佳能有一个自定义的PTP,它可以在USB数据包中嵌入额外的数据 .

    另一个区别是,对于尼康,我正在寻找的事件(ObjectAdded)是:0x4002,而对于佳能来说,事件代码是0xC181

相关问题