Android通过usb反向共享(不是root)

Posted

技术标签:

【中文标题】Android通过usb反向共享(不是root)【英文标题】:Android reverse tethering over usb (not root) 【发布时间】:2013-01-08 20:10:27 【问题描述】:

我正在 PhoneGap 中开发一个企业应用程序,我想离线处理一些数据,并通过一个插件(使用 Java 编写的代码)将处理后的数据通过 LAN 网络发送回(当检测到这一点时),但我需要一些代码示例来创建反向网络共享,而无需 root 设备或使用外部应用程序。

我试图避免在 windows 机器中创建本地组件,我想直接使用 REST 命令发送数据。

欢迎任何代码示例或建议。

【问题讨论】:

我已经看到了这种方法 codeproject.com/Articles/191930/android-Usb-Port-Forwarding 但我需要更简单的部署 澄清一下,当您说“reverse tether”时,您是在试图让您的手机与计算机的互联网断开连接? 你指的是什么插件?您也许可以为您的应用程序执行此操作,但为整个手机的连接执行此操作似乎是不可能的。 仅适用于我的应用 rigy73 【参考方案1】:

你试过这个简单的解决方案吗

对于 Windows:从 Android SDK 安装 USB 驱动程序 连接 USB 数据线并激活 USB Tethering。您应该会在 linux 或 windows 上看到一个新的网络接口。

在 Windows 上,桥接 2 个网络接口

设置手机的usb0接口。你有两个选择:

    在您的计算机上,执行:

    ./adb shell netcfg usb0 dhcp

    或者在手机终端输入:

    苏 netcfg usb0 dhcp

您现在应该可以使用计算机的 Internet 连接在手机上连接到 Internet。 http://acetips.wordpress.com/2011/10/07/reverse-usb-tethering/ 和 http://blog.mycila.com/2010/06/reverse-usb-tethering-with-android-22.html

对于从你的 android 应用程序运行 adb 命令,你可以使用

String exeeCmd = "netcfg usb0 dhcp";      
        Runtime runtime = Runtime.getRuntime();
        try 
            runtime.exec(exeeCmd);
         catch (IOException e) 
            e.printStackTrace();                
        

申请所需的许可

【讨论】:

如何在 Windows 端“激活 USB Tethering”? 回顾:第一步:在你的安卓设备上设置一个名为usb0$ adb shell netcfg usb0 dhcp)的新网络接口; 第二步:在Android首选项中选择USB Tethering选项; 第三步: 将Android设备连接到Windows机器; Windows 端: 您应该能够看到一个新的网络接口 (usb),现在您只需将该接口与连接到 Internet 的主接口桥接 - 以便共享 Internet从一个界面到另一个界面。【参考方案2】:

我知道这来得太晚了,但似乎还没有找到真正的解决方案,这可能对其他读者有所帮助:

由于我自己找不到任何解决方案,我开发了一个应用程序,为运行 Android 4.0 或更高版本的无根 Android 设备提供反向网络共享。支持所有主要的桌面操作系统。

该应用在 Google Play 上可用:https://play.google.com/store/apps/details?id=com.floriandraschbacher.reversetethering.free

【讨论】:

Reverse Tethering Server Download【参考方案3】:

也许您可以将reverse tethering tools 工具集成到您的应用中

【讨论】:

以上是关于Android通过usb反向共享(不是root)的主要内容,如果未能解决你的问题,请参考以下文章

Android-android 怎么通过usb 连接电脑进行通讯

android 开发时打开usb调试后 自己写的文件安装好后 在手机文件浏览找不到?

openwrt不识别小米usb网络共享

Android-adb相关

在android上检测USB网络共享

如何通过 Raspberry-Pi 设备共享 ZFS 格式的 USB 磁盘