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 连接电脑进行通讯