问题标签 [android-open-accessory]

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 回答
220 浏览

android - 连接到模拟 USB 配件时,Logcat 不工作

我正在开发的应用程序连接到我在用于编程/调试的同一台 PC 中模拟的 USB 附件。
问题是,每当平板电脑更改为附件模式时,我都无法通过 USB 连接到 Logcat。(adb 中的平板电脑名称更改为数字 ID)
我可以通过 WiFi 连接到它,但每当我重新连接平板电脑时(例如重置 USB 附件模式) adb 连接重置回 USB。
我知道在配件模式下可以让 Logcat 在 USB 上运行。我只是不知道为什么这对我不起作用。

我已按照 adt-bundle 的安装步骤进行操作;尝试重新安装;尝试使用 Android Studio。

有任何想法吗?

0 投票
1 回答
669 浏览

android - 发送大数据包后,Android Open Accessory USB 通信失败

我有一部使用 AOA 与 Linux 机器通信的安卓手机。Linux 机器设置为启动连接,然后等待传入数据并将其原样回显给手机。这适用于来自电话的小数据包(小于 1024 字节)。但是,如果我正好发送 1024 个字节,它似乎可以从 Android 端工作,但计算机永远不会看到数据包,只是后面的任何更小的数据包。如果手机尝试发送大于 1024 的数据包,计算机会收到这些数据包,但安卓手机将无法再接收来自计算机的任何数据包。进一步混淆了这个问题,这在过去确实有效,但回滚到手机上传输/接收代码的早期版本似乎没有任何效果。计算机上的代码没有更改。

android 应用程序在启动时检查 USB 附件,如果找到,它会启动侦听器和发送者线程。发送者线程在阻塞队列上等待传出数据包,并在收到它们后立即发送它们。侦听器线程不断尝试从输入流中读取,这会阻塞直到数据可用。这是我用于设置和运行线程的代码:

过去,我在让监听器和发送器工作时遇到问题,直到我发现一些用于创建文件流的中间对象正在被垃圾收集,但仍然需要。我现在将所有这些中间对象存储到成员变量(mUSBManager、mAccessory、mParcelFileDescriptor、mFileDescriptor)中,以赋予它们持久性。我怀疑这个问题是类似的,但我一直无法取得任何进展。我一直在努力解决这个问题,但没有任何成功,我真的希望其他人能对造成这种情况的原因有所了解。

0 投票
1 回答
358 浏览

android - 我们可以使用 Arduino ADK 为 Android 构建定制的移动充电器吗?

我计划使用带有 Android Open Accessory 协议的 Arduino ADK 构建自定义移动充电器。我的计划是将定制充电器用作与 Android 手机一起使用的耦合设备。只有那个可以用来给手机充电。如果任何其他充电器尝试为手机充电,则安装在该手机中的应用程序会将此视为盗窃事件并提供警报。我将在充电器中放置一个 IC,它可以通过 USB 电缆向手机发送和接收信号。我的 android 应用程序使用USB ACCESSORY模式来检测自定义充电器并与之通信。我不熟悉硬件设计。所以我问stackoverflow社区可以这样做吗?如果是,请提供我参考。提前致谢。 Note : the custom device must charge the mobile phone.

0 投票
1 回答
346 浏览

dji-sdk - 同时通过 USB 运行两个 Android DJI 应用程序?

有没有人在 Android 上成功运行自定义 DJI Mobile SDK 应用程序和 DJI Go 应用程序?似乎一次只有一个应用程序可以通过 USB 连接到控制器。

我正在使用 Mobile SDK 创建一个应用程序,用于将视频和遥测数据流式传输回服务器。我想将此应用程序连接到无人机,同时使用 DJI Go 应用程序飞行。

这是 Android 开放附件协议的限制吗?

0 投票
1 回答
710 浏览

android - 在 PyUSB 中使用 set_configuration 时连接重置

我最近将我的 android 手机更新为 Marshmallow。对我来说不幸的是,这破坏了我的 python 代码。

使用 PyUSB,我可以让设备进入附件模式。不幸的是,我无法再读取/写入设备,因为现在使用set_configuration()重置连接,导致设备退出附件模式并重新进入 MTP 模式。

我找不到任何解决方法;没有提到这个问题。我唯一能想到的解决方案是学习C并libusb直接使用,假设PyUSB模块是罪魁祸首......

0 投票
1 回答
1221 浏览

android - Android 开放附件协议和 MTP

我正在做一个项目,我们的嵌入式系统同时支持 Android 开放附件协议和 USB MTP。我们遇到了一个问题,当与 Android 设备建立 AOAP 会话时,USB MTP 不起作用。我基本上迷路了,我不知道是否有可能同时工作。谁能告诉我,是否可以同时激活 USB MTP 和 AOA 会话?另外,我正在寻找 AOA 2.0 规范?我们目前有来自第三方的 AOA 堆栈。从哪里可以获得 AOA 规范?谢谢你。

0 投票
1 回答
907 浏览

android - 附件模式是否要求设备处于 MTP 模式?

我正在尝试编写一个 Windows 应用程序来充当使用 libusb 和 Android Open Accessory 协议的 Android 设备的主机。

但是,我发现我什至无法与手机握手,除非它已经处于 MTP 模式(我正在测试 Pixel XL,每次拔下它都会恢复到“充电模式”) .

我在网上找不到任何答案,所以我想我会在这里问。如何连接手机而无需每次都手动将其置于 MTP 模式?

Windows libusb 代码如下:

0 投票
0 回答
71 浏览

android - 如何自动将应用程序设置为特定配件的默认设置?

我正在使用 Android Open Accessory API 为 Android 定制配件。当我第一次安装应用程序并连接附件时,它会提示我“连接此 USB 附件时打开 [我的应用程序]?”,并提供将其设置为默认应用程序的选项。当我将其设置为默认值时,它会在后续连接中自动打开。

我想知道的是,我的应用程序是否可以将自己自动注册为默认值,以便为新用户省去额外的步骤。

0 投票
0 回答
125 浏览

android-auto - 与 Android Auto 一起使用 AOA 来传输数据?

我在 Raspberry Pi 上使用 OpenAuto 来播放音乐和导航。

效果很好。

但是,我还编写了一个车载 PC 应用程序,其中一个 Raspberry Pi 连接到 CAN 总线,收集数据并使用 UDP 广播通过网络电缆传递到第二个 raspberry pi,后者处理数据并将其转储到 firebase 以用于远程应用程序电话。

这依赖于汽车上的 WiFi 热点。我正在考虑将我的 C 程序作为外部库添加到 Open Auto 的可能性,以便我可以使用 OpenAuto 来管理“汽车”的注册过程。

但我现在想做的,是变得更有创意。我在想为什么我不能利用 USB 电缆将数据直接发送到手机,让手机负责处理遥测数据。

我知道在 Android Auto 中有一些方法可以传输有限数量的遥测数据。但是,除非您获得 Google 尚未正式发布的 Android Auto SDK 的不可靠副本,否则我的理解是您无法访问该遥测数据,或使用供应商渠道传输您自己的数据集。

但是我已经看到了 Android Open Accessory Protocol,并且想知道这是否可以与 Android Auto 一起使用来传输一组额外的数据?

我对向 OpenAuto 屏幕投射任何内容不感兴趣,我只想收集和处理数据。可能会为低燃料或环境温度等添加一两个通知。但我不确定这两种协议是否会很好地相互配合。

我猜 Android Auto 会优先考虑,所以我不得不考虑从 Android Auto 获取传感器消息。有没有人有什么好主意?

0 投票
1 回答
65 浏览

android - 为什么我尝试使用 Android 配件模式时 VID 错误?

我正在尝试使用AOA协议通过 USB 在 Linux PC 和 Android 手机之间进行通信。

我能找到的所有资源,包括像这样的文档和源代码示例,似乎都希望支持 Android Open Accessory 协议的设备的 VID 为.0x18d1

但是,我正在尝试在三星 Galaxy S10e 上进行测试,而 VID 是0x04e8。我已经在这款手机上安装了一个带有 USB 附件意图过滤器的虚拟应用程序,但没有运气。

如何让三星手机在 USB 附件模式下运行?是不是已经启用,VID0x18d1只适用于谷歌手机?还是我必须做一些事情才能改变 VID?如果是前者,那么如何检查给定的 USB 设备是否是 Android 手机?