1

我已经在API 参考中搜索了启用 USB 网络共享的类/方法,但没有找到。我想知道它是否仍然可能。

有关信息,我使用带有 Cyanogenmod 7 和 Android 2.3.7 的 HTC Wildfire。

如果不可能,我对 Java 示例代码很感兴趣。

4

2 回答 2

1

不使用内置 API(正如您所检查的那样),这仅意味着不,如果您不愿意做一些工作,则不会。

但是,如果您使用的是 Beanshell、JRuby 或 Rhino,那么根据SL4A 常见问题解答(“API 桥?”问题)“您可以直接调用 Java 调用”建议“查看这些解释器的文档”以了解如何操作所以(虽然我找不到它)。但是在非官方发布页面上,它指出:

“Beanshell 和 Rhino 都可以直接访问 android api。但是,许多 Android api 调用需要一个上下文,由于它们的运行方式,这些解释器没有。正在寻求解决方案......感谢建议。 "

根据这个答案,我相信 aContext是必需的,尽管我可能错了。

最后,您的最后一个选择是克隆您正在使用的任何解释器的源代码并添加您需要的调用。再次引用FAQ;“RPC 层易于扩展。” 甚至还有一些演练

祝你好运!

于 2012-11-05T10:56:50.710 回答
1

如果您启用了 root,您只需尝试使用 SL4A 或 Android 即可。我使用这个脚本:

#!/system/bin/sh
iptables -D droidwall-3g -m owner --uid-owner 0 -j RETURN
iptables -I droidwall-3g -m owner --uid-owner 0 -j RETURN
iptables -t nat -D POSTROUTING -o rmnet0 -j MASQUERADE
iptables -t nat -I POSTROUTING -o rmnet0 -j MASQUERADE
echo 1 > /sys/class/usb_composite/rndis/enable
ifconfig usb0 192.168.42.129 up
echo 1 > /proc/sys/net/ipv4/conf/usb0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/rmnet0/forwarding

也许对于其他设备(我的是 SE Xperia X10),您需要调整/sys/class/usb_composite/rndis/enable.

于 2012-11-15T17:00:59.803 回答