问题标签 [android-usb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1207 浏览

android - Android、AOA2、USB 同步音频接口(流)

环境:

  • 三星 Galaxy 5,安卓 4.4.2
  • Windows 桌面 (x64) USB 连接到 Android 设备
  • 优盘

执行

根据此链接,我正在尝试从我的三星 G5 设备接收 USB 同步音频(流),我将设备切换到附件模式,同时使用请求 58 将音频模式设置为 44100x2x16。

设备成功切换到附件模式,显示为“0x2D05 - 附件 + 音频 + adb”。

我成功连接到同步端点(#0x83)并开始读取同步数据包/帧。

然而,虽然数据包被成功接收,但没有有效载荷......

问题

我应该设置上述以外的任何东西吗?我应该向端点和/或音频接口发送任何 USB 控制命令吗?

0 投票
1 回答
946 浏览

android - ioctl 在 android USB 批量传输中返回 -1

我有一个 android 应用程序,它创建与 USB 设备的连接,并且必须通过特定端点接收数据。我正在处理本机代码中的数据传输部分。该应用程序能够找到设备、打开连接并找到所需的端点。数据读取部分在本机代码中,其中在 while 循环中进行 ioctl 调用。

这个 g_fileDescriptor 是 USB 连接的描述符。

第二个参数表示是批量传输。

第三个参数有结构usbdevfs_bulktransfer(它有端点地址,bufferlength - 16KB,数据占位符,timeout-1000msec)

我使用两个 USB 设备进行了尝试。第一个设备运行良好。正在成功读取数据。

第二台设备似乎出现了一些问题。我的应用程序找到设备,连接到它,找到所需的端点。但是 ioctl 调用总是返回 -1。我注意到两次连续 ioctl 调用之间的时间间隔平均为 0.99 秒(大约等于我设置的超时值)。

所以我在这里有三个问题。

  1. 我可以得出结论,超时是 ioctl 返回 -1 的原因吗?

  2. strerror(errorno) 可以找出问题所在吗?(因为我读到 ioctl 在错误时返回 -1 并在系统的 'errno' 变量中设置相应的错误代码)

  3. 批量传输时出现超时的情况有哪些?

0 投票
0 回答
607 浏览

android - android中绑定服务的安全异常来自单独应用程序中提到权限拒绝的活动

我在 android 中开发了一个有界服务应用程序,以通过 USB 串行端口从血糖仪设备获取数据。我在另一个应用程序中开发了另一个活动,从那里我启动服务以在活动屏幕中获取数据。

当我尝试在我的设备上安装活动应用程序时出现以下错误

我在我的活动和服务应用程序的清单文件中声明了以下权限。

这是我的服务应用程序的清单文件

这是我的 Activity 应用程序的清单文件

我已经添加了

在我的两个应用程序中。

当我首先安装服务应用程序时,它正在安装但后来我尝试安装活动应用程序,它抛出错误

尝试调用时出现以下错误(在 logcat 中)

从活动

我没有从本网站的现有问题中得到任何解决方案。

对此问题的任何答案表示赞赏。

0 投票
1 回答
26758 浏览

android - 如何授予使用 USB 管理器打开 USB 设备的权限?openDevice() 总是返回 null

我想在以下代码中使用 USB 设备。它成功列出了 USB 设备并对其进行了迭代。在以下代码中,对象“设备”是我需要打开的 USB 设备。除了总是返回空值的 OpenDevice() 方法外,一切似乎都很好!

device_filter.xml 包含以下几行:

当我尝试 bool hasPermision = manager.HasPermission(device); 我看到 hasPermission 是假的。谁能告诉我如何授予在 xamarin 中打开 USB 设备的权限?谢谢你的帮助。

0 投票
2 回答
1278 浏览

java - 抑制 UsbRequestJNI / ALOGD 日志消息

我正在开发一个 Android 应用程序,它从一些自定义硬件流式传输串行数据。我正在使用 mik3y 的usb-serial-for-android库在 OTG 模式下通过 USB 获取串行数据,经过一些调整后工作正常。

但是,对于通过 USB 接口进行的每项事务,UsbRequestJNI都会记录一个initclose消息。这使 LogCat 每秒有数千条日志消息(注意时间戳):

我知道我可以在 IDE 中过滤这些,但我想阻止它们,这样它们就不会占用调试器带宽。

据我所知,UsbRequestJNI是一个操作系统提供的 JNI 库,所以我不能只编辑源代码。那么如何告诉它在仍在运行调试构建的同时停止记录这些调试消息,以便我可以看到其他相关的调试信息?

谷歌搜索只产生了this,这基本上是相同的问题,但没有适用于此处的解决方案。

(我的开发设备运行的是 Android 4.3,我正在 Android Studio 1.0.1 上开发)

更新:刚刚找到UsbRequest 的来源,相关行是 ALOGD 语句(第 45 和 71 行)。所以我想问题变成了:如何抑制 ALOGD 消息?

更新2:我已经setprop log.tag.UsbRequestJNI SUPPRESS按照这个答案进行了尝试,但令人沮丧的是它对我的设备没有影响。

0 投票
1 回答
471 浏览

android - 如何将 USB 设备与我的 Android 设备连接

在 github 中给出的示例链接中,我无法使用此示例检测我的 USB 设备,而且任何人都可以告诉我如何将设备产品 ID 和供应商 ID 指定给 device_filter.xml。我测试这个示例的主要想法是使用 USB 将 android 设备连接到热敏打印机 POS,所以首先如果这个示例检测到我的设备,我可以进一步使用这个库在我的 POS 和 android 设备之间进行握手。

如果您有任何其他建议想法,请帮助我。

谢谢

0 投票
1 回答
966 浏览

android - 使用 controlTransfer 将数据传输到 USB 设备

谁能清楚地向我解释一下 USB 主机模式下的 controlTransfer。参数具体是什么意思。

我想了解 requestType、requestID、value 和 index。

谢谢

0 投票
1 回答
4082 浏览

android - 如何从 Android 中的 USB OTG Pen Drive 读取数据?

我正在开发一个使用 OTG 笔式驱动器的应用程序,所以像从 OTG 笔式驱动器读取数据但所有用户可能不是同一个设备的概念。

我已经在 5-6 台设备上进行了测试,这些设备给了我不同的 USB OTG 路径。即使在同一设备上,我也移除了笔式驱动器并再次插入,它显示了不同的路径文件夹名称。所以我无法找到所有用户的确切路径。所以,我的问题是:

  1. 如何以编程方式获取设备是否支持 OTG?
  2. 如何以编程方式为支持 OTG 的所有设备找到 USB Pen Drive OTG 的确切路径?
  3. 如果用户多次插入/删除,它会响应相同的路径吗?如果用户也可以格式化笔式驱动器?
0 投票
1 回答
1267 浏览

java - 与 usbserialhost 到 Android 的通信

我是 android 编程智能卡检测(读取)的新手。我们使用 otg 电缆将 RFC 读卡器 (RFID-RC522) 连接到 android 设备。使用 USB 串行端口 API 检测到 RFC 读卡器,但无法从 RFC 读卡器读取卡。我们已经在java中实现了读卡,但无法在android中实现。

1) 如何获取相当于windows COM端口的端口号

2)如果不可能,我该如何使用 connection.controlTransfer(UsbConstants.USB_DIR_OUT, 0x00, 0x0000, 0, null, 0, 0); 方法

3) 连接设备的Java代码

4) 请告诉我如何在 android 上进行交流,就像在 java 上一样

0 投票
3 回答
4431 浏览

android - 升级到 Lollipop (Sony Xperia Z3) 后 Adb 未检测到设备

就在昨天,我的 adb 工作正常,我正在平静地开发我的应用程序......今天我将我的 xperia z3 更新为棒棒糖(从索尼自动更新)......并且 adb 停止检测设备(在 mac os yosemite 上)。

到目前为止我检查的内容:1)我安装了最新版本的 android sdk 2)我尝试了 adb kill-server 和 adb start-server 3)我仔细检查了设备上启用了开发人员模式 4)我仔细检查了 USB 连接是在大容量存储模式下

没有任何作用!请帮忙。