首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android :如何以编程方式连接/断开OTG

Android :如何以编程方式连接/断开OTG
EN

Stack Overflow用户
提问于 2015-02-02 22:34:52
回答 1查看 1.8K关注 0票数 2

我想在我的android设备上以编程方式连接和断开USB OTG (笔式驱动器、硬盘驱动器等)

对于USB,当连接到PC时,我使用以下路径绑定/解除绑定USB

代码语言:javascript
复制
/sys/bus/usb/drivers/usb/bind or unbind

以同样的方式,我想为OTG做这件事。

EN

回答 1

Stack Overflow用户

发布于 2016-08-02 04:40:51

如果您对设备具有root访问权限,则可以使用我找到的几种方法。在应用程序中,您需要调用类似以下内容:

代码语言:javascript
复制
String[] commandConfigValue0 = { "su", "-c", "echo 0 > /sys/bus/usb/drivers/usb/usb1/bConfigurationValue", };
String[] commandConfigValue0 = { "su", "-c", "echo 0 > /sys/bus/usb/drivers/usb/usb1/bConfigurationValue", };   
String[] commandConfigValue1 = { "su", "-c", "echo 1 > /sys/bus/usb/drivers/usb/usb1/bConfigurationValue", };
String[] commandAuthorized0 = { "su", "-c", "echo 0 > /sys/bus/usb/drivers/usb/usb1/authorized", };
String[] commandAuthorized1 = { "su", "-c", "echo 1 > /sys/bus/usb/drivers/usb/usb1/authorized", };
Process p;
    try {
        p = Runtime.getRuntime().exec(commandAuthorized0);
        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        Log.d("MainActivity", "From unbind: " + in.toString());

        // I don't think "rebinding" works here but if you listen for the usb disconnect you can then call this second runtime command to bind the internal usbhub
        Thread.sleep(3000);

        p = Runtime.getRuntime().exec(commandAuthorized1);
        in = new BufferedReader(new InputStreamReader(p.getInputStream()));
        Log.d("MainActivity", "From bind: " + in.toString());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我查看了一些我拥有的新设备,这些设备没有根目录,也有/sys/bus/usb/drivers/usb/usb/usb 2,可能有/sys/bus/usb/drivers/usb/usb/usb。因此,根据您希望应用程序在其上运行的设备,您可能需要运行多个呼叫。

如果您希望在没有root访问权限的情况下执行此操作。我也在努力寻找解决方案!

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28280075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档