【问题标题】:How can I disable and enable a USB OTG connection to power a hardware device on and off?如何禁用和启用 USB OTG 连接以打开和关闭硬件设备?
【发布时间】:2019-08-02 09:01:03
【问题描述】:

我正在开发一个使用手机为外部设备供电的 android 项目。通过 USB-OTG 连接,我可以为外部设备供电。

我想知道我是否可以在 android studio 上编写一个程序,我可以在其中按下应用程序中的按钮来切换此外部设备的电源(打开和关闭)。

我以前曾在旧的三星 Galaxy 3 手机(在更旧版本的 android 上)通过更新文件中的数据来完成此操作;特别是这个文件:

/sys/devices/virtual/host_notify/usb_otg/mode

但我正在尝试编写软件,使其更通用,并且可以在任何新的安卓设备上运行。

有什么方法可以满足我的需要吗?

【问题讨论】:

  • “我想知道我是否可以在 android studio 上编写一个程序,我可以在应用程序中按一个按钮来切换此外部设备的电源(打开和关闭它)。”对不起,我非常怀疑这样的事情是可能的。不久前我对这个想法进行了一些研究,似乎不支持此功能。
  • 这似乎很难,但我已经看到它与旧三星合作,所以我只需要一种方法来在较新版本的 android 上做到这一点
  • 好吧,让我们假设它是可能的。您可能需要root您的手机,然后重写一些脚本并在系统内替换它。我很感兴趣并且会做一些研究,但不会有一个快速且非常不容易的解决方案,如果有的话。如果我发现了什么,我会及时通知你。
  • 我发现在 moto G6 上执行此操作的方法是使用文件 /sys/class/power_supply/usb/usb_otg。我将 0 写入文件以停止电源输出,将 3 写入文件以重新为外部设备供电,但在研究过程中我没有遇到任何通用问题。

标签: java android android-studio usb usb-otg


【解决方案1】:

我已经尝试找到一种通用的方法来做到这一点,但这似乎不可能,因为我认为唯一可行的方法是使用 shell 命令通过根文件切换暴露的内核位。

我得出的结论是,可能无法为此编写通用代码,因为大多数 android 手机根文件的组织方式都不同。因此,每次您想为软件使用不同的手机时,都需要发现特定的文件。

我认为创建一个包含不同品牌手机根文件结构的数据库对我自己来说是不可行的,因为新手机总是带有新结构,这需要我进行太多维护。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多