「教程」Android手机如何通过USB使用电脑宽带上网(测试手机:Moto XT800)
由于最近在做一个项目的Android客户端,需要测试其与服务器的连接。
但由于我在自己电脑搭本地服务器,而电脑又经过了路由、交换机等连网,
所以在手机内置浏览器中直接输入ip地址+端口也无法访问服务器,需要设置其与电脑在同一网段。
解决这个问题的办法可以是用无线路由,使得电脑和手机同时连上WIFI,然后就可以访问。
但我不明白我的MOTO XT800为何连上WIFI后不能通过内置浏览器上网,
但是某些应用的客户端在我设置静态IP绑定之后就能成功通过WIFI连网。
所以,用这个办法不能达到我的目的。
后来我知道了Android手机可以通过USB连接电脑使用宽带上网。
于是我查了一些教程,经过各种尝试与报错之后终于成功连上,在这里分享一下。
(实际上,某些HTC手机已经自带这个功能,但我的MOTO显然没有)
测试手机:Motorola XT800
测试手机系统:Android 2.2
电脑系统:Windows 7
在进行这项工作之前,首先确保你的Android手机
1)已经取得root权限,root过的人都知道图中名叫Superuser的应用吧(怎么root?网上一大堆教程啊!);
2)安装了以下应用:BusyBox,BTEP(即“超级终端”,图中Better开头的应用),GSript MOD(图中名叫“脚本”的应用),这些在豌豆荚都可以找到吧。
好吧,准备就绪!开始吧!
以下步骤以我的MOTO XT800为例。
第一步:开启USB调试模式
打开“设置”->“应用程序”->“开发”,然后“USB调试”这一项打上勾。
然后用USB连接电脑,这时状态栏会出现黑色的USB连接图标。
还有,USB连接时不要使用“内存卡存取”(这是其他文章里面说的)。下拉状态栏,点击“USB连接”即可设置。
第二步:USB绑定
打开“设置”->“无线和网络”->“绑定”,然后“USB绑定”这一项打上勾。
这时状态栏出现蓝色的USB连接图标。
第三步:电脑端设置网络分享
在手机还没连接电脑,USB还没绑定之前,我打开“控制面板\网络和 Internet\网络连接”,只有这五个。
其中最后一个“无线网络连接”是我正在使用的上网连接,请找出你自己正在使用的上网连接。
USB绑定之后,再连接电脑,该目录下多出了“本地连接2”(在你的机子上也可能是本地连接3、本地连接4……)
这是手机的连接。
然后点击“无线网络连接”(也就是你正在使用的上网连接),右键->属性,点击“共享”选项卡,
“允许其他网络用户通过此计算机的Internet连接来连接”这一项打上勾,
然后选择手机的连接,也就是我的“本地连接2”,点击“确定”。
然后,你可能会见到以下报错,如果没有遇到可以跳过。
这个估计是防火墙没开的原因,解决方法:点击“开始”,在“搜索栏”输入“服务”,找到“Windows Firewall”,“右键”->“开启”
然后再重试刚才分享网络的步骤就不会再报错(如果还有其他错误,我也不清楚,因为我没遇到= =)
完成分享网络的步骤就可以把防火墙关掉。
第四步:设置IP、子网掩码、DNS
完成分享网络之后,双击属于手机的那个连接,点解“详细信息”,会看见IPv4地址是“192.168.137.1”
(也不一定是这一个地址,但其实这个地址没用,后面会解释)
然后在手机端运行BTEP(超级终端),只要你root过都会出现“授权请求”,每次遇到点击“允许”就可以了。
如图,在终端输入
su busybox route add default gw 192.168.137.1
其中192.168.137.1就是你刚才看的地址,
然后成功地报错:“route SIOCADDRT: Network is unreacheable”
原因是手机的USB网卡地址和电脑的虚拟网卡的地址不在同一网段导致的。
(原因引用:http://bbs.hiapk.com/thread-968933-1-1.html)
解决办法:输入
busybox ifconfig
然后会弹出多行信息,其中usb0的这一段,可以找到两个地址都是192.168.42.*(在你的电脑上可能是另一个)
于是这时你要在电脑重新设置手机连接的地址。
点击手机连接(也就是我的“本地连接2”),右键->属性,双击TCP/IPv4
设置IP地址为192.168.42.*,一般是192.168.42.1即可。
假设你刚才在超级终端看到的两个地址是a.b.c.*,则你把IP地址设置成a.b.c.1即可。
另外设置 子网掩码255.255.255.0,首选DNS服务器:8.8.8.8
完成后点击“确定”
然后再打开手机中的BTEP(超级终端),重新输入
busybox route add default gw 192.168.42.1
其中192.168.42.1就是你刚才设置的IP地址。
这时就不会再报错。
然后可以继续在超级终端输入
set prop net.dns1 8.8.8.8
(其实这句貌似可以不用写)
但是我直接改为打开GScript MOD(脚本)这个应用,点击手机的“菜单键”(“田”字那个键),点击“添加脚本”
将我刚才在超级终端输入的有效的命令写入脚本
su busybox route add default gw 192.168.42.1 set prop net.dns1 8.8.8.8
并且将脚本命名为android-usb-online,点击“保存”,这时可以看到自己新建的脚本,直接点击即可运行脚本。
(注意,由于这个应用本身自带了不少脚本,所以点击时要小心,不要点错了)
方便起见,可以在手机桌面长按,弹出的对话框选择“快捷方式”,然后选择“脚本”,然后点击刚才保存的脚本,
那么这个脚本就成为一个图标放在手机桌面上,每次想运行只需要点击一下。
第五步:浏览网页
如果脚本运行之后没有出现其他报错信息,那么就应该可以通过手机内置浏览器来上网了,甚至可以访问我在电脑搭建的服务器。
这时即使你关闭了WIFI、GPRS、3G等等的上网功能,只要你的手机USB连着电脑就可以访问网络。
只不过这样打开内置浏览器的话,它会告诉你“没有网络连接”,但其实可以忽略,它只是循例检查一下网络。
但是我测试的微博客户端似乎不能通过这种方式连网,人人客户端可以喔!
不过,这样对我来说已经足够,因为我可以通过手机内置浏览器访问我电脑的本地服务器了。
ps:以后每次通过这种方式来上网,只需要设置USB绑定和执行脚本。
手机USB连接设置如果没有改动不用重新设置;
电脑端的连接部分已经默认分享网络,所以不需要重新设置。
END