我已经在API reference中搜索了启用USB网络共享的类/方法,但没有找到。我想知道它是否还有可能。
有关信息,我使用带有Cyanogenmod 7和Android 2.3.7的root HTC Wildfire。
如果不可能,我对Java示例代码感兴趣。
答案 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
之类的内容。