繁体   English   中英

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

[英]Android - Receiving Canon (Camera) events from USB

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

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

当前正在使用的示例代码;

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

有什么想法如何从佳能读取数据吗? 目前看来相机没有发送任何东西,但我知道是。确切的型号是EOS 7D。

经过大量的反复试验和USB嗅探之后,设法使此工作正常进行。

尽管似乎没有在中断端点上发送任何内容,但端点却是相同的-而是我使用IN&OUT端点从摄像机请求事件,然后处理返回的事件列表。

另一个问题似乎是佳能使用了自定义PTP,可以将其他数据嵌入USB数据包中。

另一个区别是,对于尼康,我要查找的EventCode(ObjectAdded)为:0x4002,对于佳能,EventCode为0xC181

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM