【问题标题】:Android USB OTG: programmatically turn off power to the portAndroid USB OTG:以编程方式关闭端口电源
【发布时间】:2012-12-18 12:48:21
【问题描述】:

假设我有一个 USB 供电的 LED 灯,通过 USB OTG 适配器连接到运行 Android 4.0.3 的 Toshiba Excite 10 平板电脑,它提供电源。

我想通过应用程序以编程方式打开和关闭 USB OTG 主机端口的电源引脚。 (理想情况下没有root,但我会尽我所能)。有什么想法吗?

【问题讨论】:

  • 不确定我的内核是否兼容,但看起来我可能只需要写入文件/sys/bus/usb/devices/usb3/power/level。我在没有 root 的情况下尝试过,但写入失败,所以接下来我想我需要 root 平板电脑并重试。来源:stackoverflow.com/questions/4702216/…

标签: android usb usb-otg


【解决方案1】:

据我所知,https://askubuntu.com/questions/342061/power-on-off-usb-ports“之前的所有答案都谈到了 USB 挂起机制,即“逻辑断电”,他们永远不会从 USB 端口物理切断 VBUS +5V。”。

也许硬件解决方案是个坏主意,但我可以建议您使用 MOSFET 晶体管和 PCB 上已编程的 Atmega8U4 芯片,该芯片被编程为切断 LED 灯的电源。

【讨论】:

    【解决方案2】:

    您必须拥有 /sys 目录的写入权限。生根使该过程非常容易。只需root您的设备并发出正确的回显命令即可切换内核状态位,例如:

    String[] command = { "/system/bin/sh", "-c", "echo xxx > /sys/bus/usb/devices/usb3/power/level", };
    Runtime.getRuntime().exec(command);
    

    另一种方法是使用libusb,在库中挖掘切断电源的功能。您可以使用 android.hardware.usb.UsbManager 为 libusb 请求适当的权限。

    【讨论】:

    • 我想触发usb插入(android平板电脑)即使usb已经插入。可能吗?有什么方法可以告诉系统usb插入了,所以会再次检测到?
    • 对于高于 2.6.32 的内核“挂起” for .../usbX/power/control 不再起作用 android.googlesource.com/kernel/mediatek/+/android-3.18/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多