我可以使用SL4A启用USB网络共享吗?

时间:2012-09-27 13:54:48

标签: android sl4a

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

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

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

2 个答案:

答案 0 :(得分:1)

不使用内置的API(如你所检查的那样),这只是意味着没有,如果你不愿意做一些工作,那就不行了。

但是,如果您正在使用Beanshell,JRuby或Rhino,那么根据SL4A FAQ ("API bridge?" question)“您可以直接调用Java调用”建议“查看文档对于那些口译员“如何这样做(虽然我找不到它)。但是,在Unofficial Releases页面上,它指出:

  

“Beanshell和Rhino都可以直接访问android api。   但是,许多Android api调用需要一个上下文,由于这个原因   他们的运作方式,这些口译员没有。正在寻求解决方案   寻求...建议赞赏。“

根据this answer,我认为需要Context,但我可能错了。

最后,您的最后一个选项是clone the source代码,用于您正在使用的任何翻译,并添加您需要的电话。再次引用常见问题解答; “RPC层很容易扩展。”,甚至还有little walkthrough

祝你好运!

答案 1 :(得分: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之类的内容。