标签: usb

如何查找 Android 手机或平板电脑是否支持 Android Open Accessory (AOA) 协议?

我正在开发一个应用程序来使用 Android 开放配件 (AOA) 协议连接配件。

我使用手机 (Android 4.2.2) 或平板电脑 (Android 4.1) 测试该应用程序。这两种设备均具有 USB Micro-B 插座,而配件则具有 USB A 型插座。我使用Micro-B 插头转 USB-A 插头电缆将前面提到的任何一台 Android 设备与 Accessory 连接。

一旦配件连接到手机或平板电脑,该应用程序就会弹出。

它在手机上按预期工作,但在平板电脑上却不然。在花费大量时间调试此问题后,我发现平板电脑可能不支持 AOA 协议。(JFYI:该表支持 OTG 模式)。

因此我的问题是:

1)有没有人遇到过可以告知设备是否支持AOA的应用程序?2)有谁知道在Android设备上检测AOA支持的编程方法吗?

预先感谢社区成员即将提供的帮助。

PS 我已经阅读过类似问题的答案 - 1)如何判断 Android 设备是否具有开放配件模式 2) Acer Iconia Tab A500 支持配件模式吗? 3)目前哪些 Android 平板电脑支持 ADK 开发的配件模式 4)哪些 Android 设备支持 ADK/开放配件 - 没有任何结果。

usb android android-open-accessory

2
推荐指数
1
解决办法
6476
查看次数

通过 USB 使用 HIDAPI 时对报告 ID 感到困惑

我是 USB HID 新手,我正在尝试在我的应用程序中使用 HIDAPI 。

我有一个关于使用 HIDAPI(在 Visual Studio 中)有关报告 ID 的问题。

当我尝试使用 HIDAPI 并连接到 Microchip 自定义演示时,我对这方面感到困惑:65 字节的报告对我来说没有意义!

即使我不想设置报告ID,我也需要将第一个字节设置为0并将65字节缓冲区发送到设备,但我只从Microchip设备接收64字节数据(因为报告是64 字节长)。

看起来像:

    **Host**                       **Device**

         *write_hid*
      65 byte  --------------->

          *read_hid*
       <------------------   64byte
Run Code Online (Sandbox Code Playgroud)

然而,这对我来说似乎很奇怪。

发送或接收的报告不是总是 64 字节吗?因为规范规定报告的最大长度应为 64 字节,并且每 1 毫秒发送一次。

如果答案是肯定的,为什么 API 为 1 字节的报告 ID 保留 65 字节?

报告ID是否包含在64字节中?

65 字节的数据长度对我来说没有意义。

usb hid hidapi

2
推荐指数
1
解决办法
3705
查看次数

将 USB 设备与 Xcode Simulator 一起使用

所以,我有这个扫描条形码的扫描仪设备。我希望它通过 USB 连接。我不确定扫描设备后如何从设备获取数据。我知道它以十六进制记录条形码信息,因此当数据到达应用程序时,必须进行一些转换。但是,我仍然对如何与设备进行实际数字连接和通信感到非常困惑。

我在网上看到尝试使用IOKit.framework,但我相信它是针对MAC的,我没有使用它。我正在尝试通过 iPhone 模拟器中的 iOS 来完成此操作。

我还有一个可以发送到设备的十六进制命令的命令列表,但是,我不知道如何实际将消息发送到设备。

如果我有点重复,请道歉。提前致谢!

usb xcode barcode-scanner ios ios-simulator

2
推荐指数
1
解决办法
2416
查看次数

查找带有 USB 设备 VID/PID 的 /dev 条目

我想制作一个程序来检测哪个/dev/sd*条目链接到已知的 USB VID/PID 对。

您知道如何获取显示为 的 USB 记忆棒的 VID/PID 吗/dev/sd*

linux usb usb-drive

2
推荐指数
1
解决办法
4566
查看次数

Android 设备无法识别

我正在尝试在华为平板电脑上运行 android apk。在 Android studio 中,连接的设备显示为无。在 Hisuite 中也显示为设备未连接。但设备出现在设备管理器中,我可以通过PC访问设备内部的数据。adb 无法识别。

截图1

截图2

设备 - 华为 Mediapad T3 10(Android 7.0)

电脑操作系统-Windows 7

安卓工作室2.3.3

海套件5.0.1.300_OVE

usb android adb huawei-mobile-services

2
推荐指数
1
解决办法
4555
查看次数

如何开始为 Linux 编写设备驱动程序?

我有一个用于笔记本电脑的 USB 3.0 PCI 卡。仅提供 Windows 7 及以上版本的驱动程序。我有的设备https://www.startech.com/Cards-Adapters/USB-3.0/Cards/2-Port-ExpressCard-SuperSpeed-USB-3-Card-Adapter~ECUSB3S22#dnlds

我有运行 Ubuntu 16 的旧笔记本电脑。我想为这张卡创建一个 Linux 驱动程序。

关于谁编写了该软件的一些提示。安装软件时,会显示不同的公司。这是公司https://www.renesas.com/en-us/products/software-tools/software-os-middleware-driver.html

我想知道是否可以利用一些 Windows 7 驱动程序文件和瑞萨电子规范来开始使用。

我没有关于 Linux 设备驱动程序的很好的参考。关于我可以从哪里开始的任何指导?我唯一的经验是很久以前在 MS Windows 上使用 C/C++ 以及使用 Java 的基于 Web 的业务应用程序。

usb linux-device-driver

2
推荐指数
1
解决办法
2769
查看次数

读取并识别多个USB键盘

我负责当地摄影俱乐部的技术工作,该俱乐部是英国马尔文的一家非营利慈善机构。我们有一个以数据库为中心的竞赛管理系统,是我在 Delphi 6 中自制的,现在我们希望为其添加一个评分系统。这需要将 5 个廉价的标准 USB 数字键盘连接到 PC(使用 USB 集线器),并能够在 5 名评委输入时以编程方式读取每个键盘上的击键。当然,他们会以完全并行和异步的方式敲击按键,所以我需要识别哪个法官敲击了哪个键,以便汇总他们单独输入的分数(即可能每次击键多次)。

据我所知,Windows 吸引了键盘设备的注意力并照顾它们生成的字符串,只需将字符喷射到正常的键盘队列中(我已经通过实验证实了这一点!)。这不能满足我的需求,因为我确实必须收集 5 组(可能是多个)按键,并将接收到的字符分配为 5 个单独的变量,供评分系统随后进行操作。

任何人都可以 (a) 建议在 Delphi 中执行此操作的方法并 (b) 提供一些可能需要的代码指南吗?虽然我非常了解 Delphi,但我没有访问 USB 设备或捕获其数据的经验。

任何帮助或指导将不胜感激!

delphi usb

2
推荐指数
1
解决办法
1180
查看次数

Android客户端应用程序(可能通过USB使用ADB)

手机信息:Droid Bionic Android 2.3.4 USB调试已启用

我正在考虑编写一个供个人使用的应用程序,我可以将数据从客户端(在电话上)发送到服务器应用程序(在我的计算机上),希望通过USB.我使用Android 2.3.4找到的唯一建议是使用ADB,然后使用TCP转发做一些事情.

我在使用端口8001的计算机之间编写了一个简单的服务器和客户端应用程序,但是在我的android上使用客户端与我的计算机上的服务器部分一起工作时遇到了问题.我可以创建一个套接字来与我的计算机(192.168.1.26,8001)交谈,但似乎无法让它工作,因为java设备上的java与我所做的comptuer客户端不同.有没有人知道一个非常简单的教程或示例我可以看看只是将客户端连接到服务器块?我之前看过的所有例子都很复杂.

至于USB部分,我希望能够让我的应用程序无需通过网络即可运行.我已经看到了使用"ADB forward tcp:port tcp:port"的事情,但是对于整个事情我有点困惑.如何为客户端上的套接字设置IP地址和端口号,是否将服务器保留在端口8001上?如果我不想使用端口8001,我可以通过ADB使用什么命令来执行此操作?

谢谢

java usb android adb

1
推荐指数
1
解决办法
3669
查看次数

在Android上的USB主机模式下需要有关UsbDeviceConnection.bulkTransfer的更多信息

我试图让bulkTransfer在USB主机模式下工作,但参考文档并没有真正解释它.

打电话的时候

bufferTmpLen = mDeviceConnection.bulkTransfer(mEPIN,
        bufferTmp, 4096, TIMEOUT_MS);
Run Code Online (Sandbox Code Playgroud)
  1. 为什么实际数据似乎总是在索引2中的2个字节后开始,在索引0和1中表示什么?总是这样吗?
  2. TIMEOUT_MS参数真的有用吗?我试图将其设置为5000,但该方法没有等待5秒钟来读取数据.大约1秒后出现的数据未被读取.那么如何让它接受在一定时间内收到的所有数据呢?
  3. 代码是否在TIMEOUT期间继续执行?那么例如TIMEOUT = 5000,后续语句是在5秒之后执行还是紧跟在bulkTransfer行之后执行?

我真的很困惑,这种方法的重要信息在任何地方都没有描述.

如果有比标准参考更好的来源,请告诉我.

多谢!

usb android

1
推荐指数
1
解决办法
2041
查看次数

node.js USB(hid)条形码扫描器读取缓冲区

我正在使用node.js从条形码扫描仪中读取数据.这是我的代码:

var HID = require('node-hid');
var usb = require('usb');

// Honeywell Scanner
var vid = 0xc2e;
var pid = 0xbe1;

var d = new HID.HID(vid, pid);

d.on("data", function (data) {

console.log(data);

});
d.on("error", function (error) {
console.log(error);
d.close();
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,我得到的缓冲区看起来像<Buffer 00 00 00 00 00 00 00 00>.扫描条形码(例如ID为12的条形码)后,控制台会返回类似的内容

<Buffer 00 00 53 00 00 00 00 00>
<Buffer 00 00 00 00 00 00 00 00>
<Buffer 00 00 53 00 00 00 00 00>
<Buffer 00 00 00 00 …
Run Code Online (Sandbox Code Playgroud)

usb buffer hid barcode-scanner node.js

1
推荐指数
1
解决办法
2457
查看次数