问题标签 [usb-otg]
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.
android - Android USB Host 读取/写入 USB 设备 OTG 中的文件
我正在编写一个以 Android 设备为主机的应用程序。用户将 USB 驱动器连接到 Android 设备,我的应用程序将在 USB 驱动器中写入一些文本文件。文本文件的路径与USB_DRIVE/Data/APP_NAME/myfile.txt
USB 驱动器内的路径相同。
应用程序还应该能够从特定位置读取文本文件,或者如果它可以列出文件USB_DRIVE/Data/APP_NAME
夹中的所有文件并且用户可以选择一个文件则更好。
我不确定如何使用字节数组在 USB_DRIVE 的特定路径中写入文件。
仅供参考:我的设备中没有类似于/storage/usb0/
or的路径/storage/usbdisk0/
。里面/storage/
,文件结构如下,
- 贮存
- 模拟的
- 0
- SD_CARD 内容
- 遗产
- SD_CARD 内容
- 0
- sdcard0 - SD_CARD 内容
- 模拟的
我的测试设备是 Nexus 10。
我尝试使用 ES File explorer 应用程序,使用此应用程序我可以成功地将任何文件从 SD_CARD 移动/复制到 USB_DRIVE;即:OTG 工作正常,从 App 到 USB_DRIVE 的读/写文件是可行的。传输任何文件后,ES 会显示文件的路径,如usb://1002/myfile.txt
.
如果我可以使用 ES 意图或其他可以工作的东西来编写/移动/读取文件。
或者,如果任何 FTP 解决方案可以帮助我实现该功能,我会去的。
谢谢你。
android - 在android应用程序中读取串行数据的正确方法
我创建了一个 android 应用程序来读取和显示通过使用 USB OTG 适配器插入手机的 USB FTDI 电缆从计算机发送的串行数据。
我已经设法编写了一段代码来显示从我的计算机上的终端程序发送的数据,现在如果我发送一个字符,这可以正常工作,但如果我发送一长串数据,那么它将在屏幕上显示多个部分。
例如:
从终端发送的字符串:“来自终端程序
的数据” 多个 toast 中显示在手机屏幕上的数据:“dat”然后是“a from t”,然后是“erminal pr”,然后是“gram”
读取数据的代码:
如果有人能对此有所了解,我将不胜感激,谢谢
android - USB 主机 getDeviceList 返回空
我的设备 - 带有 4.4.4 的 Nexus 5
这是我的代码
但是,总是返回空。我尝试根我的设备。按照这个答案。但是,我用 OTG 电缆将鼠标和键盘插入 Nexus 5。它不起作用。知道如何解决吗?
更新:我尝试使用 USB 读卡器和 USB 摄像头。它可以检测到它们。Android 会过滤 USB 鼠标和键盘设备吗?
android - 正在运行的应用程序上重新检测 USB
我是安卓新手。我正在尝试检测连接到 android 设备的 USB。首次连接 USB 时,会打开特定的应用程序。(工作正常)。
现在我要做的是,如果应用程序已经打开,并且连接了 USB 设备,它应该给我一个“设备已连接”的祝酒词。
任何人都可以帮助如何做到这一点。我尝试使用 onNewIntetnt() 来检查返回的意图,但仍然没有得到烤面包。请帮助
android - 我可以在 Android 上使用 USB OTG 读取 MTP/PTP 媒体吗?
我想在 android 上开发一个相机导入器应用程序,它正在 4.2 上工作。但它不适用于 4.4。如何在 android 4.4 上访问 MTP 或 PTP 媒体?
android - 在安卓手机上访问数字签名令牌
我正在尝试开发一个具有对文档进行数字签名的功能的 android 应用程序。我正在使用 OTG 电缆将数字签名令牌(比如 Moserbaer 令牌)与手机连接。但是android无法识别令牌(如果我插入它会识别Pendrive),当然它需要Moserbaer令牌驱动程序。
问题是如何安装驱动程序以及如何从令牌本身以编程方式访问我的应用程序中的数字签名。
android - Android设备中OTG的路径
我正在开发一个Android
应用程序,我必须在其中获取USB device
通过OTG
.
当我使用时,sys/bus/usb0/devices
我正在获取平板电脑的所有设备列表,而我只想获取通过 OTG 端口连接的设备名称。
有没有办法获取内置的设备以及连接到平板电脑的设备。
当我使用 path/storage/usb0/
和/ 时,我没有得到任何通过端口/storage/usbdisk0
连接设备的设备。OTG
请谁能告诉我如何通过端口将USB
详细信息附加到平板电脑OTG
android - 通过android usb串行读取int
我正在开发一个 android 应用程序,我想通过手机端口读取串行数据(我使用 OGT 电缆)。为此,我一直在使用以下库
https://github.com/mik3y/usb-serial-for-android
库会将串行数据读取为字节数组,我想将其读取为 0-255 之间的整数值。这样做的原因是,我一直在“java.io.InputStream”中使用 Inputstream 的“read()”方法。这里 read 方法将返回一个 int evenn,尽管它将它们作为字节读取。
现在我正在尝试将此代码移植到 android 应用程序,但我找不到从串行输入中读取整数的方法。
我尝试使用以下代码将字节转换为 int
其中“arr”是从串行输入读取的字节数组。但这使应用程序在两者之间崩溃,并且数字不在 0-255 之间。
我无法更改我对“0-255 之间的整数值”的要求,因为在使用 Java 的 pc 中有一个基于此逻辑的整个项目。
有什么建议可以解决这个问题吗?
android - 无需拔下设备即可在不同应用之间切换 USB OTG 设备 (Android)
我目前在通过 USB OTG 与我的 Android 手机(操作系统版本 5.0.1)一起使用我的 USB 设备(恰好是 USB MIDI 控制器,即音乐键盘)时遇到一个特定场景的问题。我精通 Android 编程,因此解决方案可能是面向消费者的解决方案,也可能是面向程序员的解决方案(即,如果有人指出我正确的方向,我可以编写一个应用程序来解决问题 - 但如果这没有必要,那就更好了)。
我能够连接设备(Korg MicroKEY 61),它被许多应用程序识别,例如“MIDI Commander”和“MicroKeyPlayer”。我可以使用 MicroKeyPlayer 弹奏键盘并从中获取声音。那里没有问题。
但是,这只适用于从插入设备时出现的菜单中选择了相关应用程序 - 显示“为 USB 设备选择应用程序”的菜单。当您从此菜单中选择一个应用程序时,所选应用程序似乎被授予使用 USB 设备的无限权限,直到它被拔出。但是,当它被拔出时,它会失去权限。
问题是,如果不拔下设备、重新插入并从“选择应用程序...”菜单中选择新应用程序,似乎无法授予任何其他应用程序的权限。然后你又回到了同一条船上——只有一个应用程序可以访问设备,直到它被拔掉。
这是一个问题,因为当设备拔出时,它的 MIDI 状态会丢失,这意味着调制轮功能的分配会回到默认值。这意味着我不能在 MIDI Commander 中将调制轮设置为“延音踏板”控件,然后切换到 MicroKeyPlayer 以在该设置上使用调制轮弹奏键盘。
我知道我可以使用外部供电集线器在手机拔掉电源时让设备保持活动状态,但这会导致更容易缠结且不太方便的装备(在房子周围移动时要携带更多的东西等),无论如何,原则上我不应该使用一个。(而且我现在手头也没有。而且它可能会增加延迟。)
我认为应用程序开发人员很可能在技术上存在错误 - 他们应该使用 UsbManager.hasPermission() 检查权限,并在必要时使用 UsbManager.requestPermission() 动态获取权限,而不是简单地假设他们有它。
但是,我想知道是否有办法解决这个问题。也许有某种方法可以以编程方式将 USB 权限授予另一个应用程序?或者也许有一些 Intent 可以被触发以再次调出“选择应用程序...”菜单而不拔掉设备?
任何人都可以更好地了解 Android USB 确认我是否以正确的方式看待这个问题?是联系应用程序开发人员的唯一解决方案吗?
android - Android 过热与 OTG 断开连接
我在android上开发时遇到了一个非常奇怪的问题。我的项目有点不正统,所以请多多包涵。
我正在开发一款使用外部控制器的游戏,该控制器使用 OTG 电缆连接到手机。一切正常,直到手机的温度超过某个阈值,在这种情况下,操作系统会关闭与 OTG 的通信,除了断开 OTG 电缆并重新连接之外,我无法以任何方式重新启动它,即我真的很想避免的过程。
所以我的问题是,有谁知道操作系统的哪一部分是在设备过热时执行关闭 USB 输入这一操作的部分,我在哪里可以控制\重新启动它?
非常感谢您的帮助,因为我什至不知道从哪里开始寻找,只是请避免诸如“只需拔下并重新插入 otg”或“确保您的设备不会过热”之类的答案
非常感谢