android真机测试无法android 访问局域网网服...

查看:3855|回复:4
代码如下,获取本地计算机上图片;
(Ip为192.168.1.3,模拟器中为10.0.2.2)
btn1获取本地pc端服务器端图片,btn2获取网络图片,代码相同,网络图片获取正常,pc端无法获取,logcat如图:复制内容到剪贴板代码: public void onCreate(Bundle savedInstanceState) {&&
& && &&&super.onCreate(savedInstanceState);&&
& && &&&setContentView(R.layout.activity_main);
img1=(ImageView)findViewById(R.id.img1);
& & btn1=(Button)findViewById(R.id.btn1);&&
& & img2=(ImageView)findViewById(R.id.img2);
& & btn2=(Button)findViewById(R.id.btn2);&&
& && &&&btn1.setOnClickListener(new OnClickListener(){
& && &&&public void onClick(View v)
& && && &System.out.println(&本地OK&);& && && &&&
& && && && &new Thread(new Runnable() {
& && && && && & public void run() {
& && && && && && && &&&System.out.println(&本地OK!!&);
& && && && && && && && &bitmap1= new getBitmap();
& && && && && && && && &final&&String newurl = &http://192.168.1.3:50673/Web/upload/comm//071b884b-f0b7-4937-ae6e-f37ec8273611.jpg&;&&
& && && && && && && && &final Bitmap bitmap = bitmap1.getBitmap(newurl);& && && && && && &&&//从网络获取图片& && && && && && && &
& && && && && && && && &img1.post(new Runnable(){
& && && && && && && && &public void run(){
& && && && && && && && &img1.setImageBitmap(bitmap);
& && && && && && && && &System.out.println(&本地测验&);
& && && && && && && && &}});}}).start();
& && &&&btn2.setOnClickListener(new OnClickListener(){
& && && &&&public void onClick(View v)
& && && && &System.out.println(&OK&);& && && &&&
& && && && && &new Thread(new Runnable() {
& && && && && && & public void run() {
& && && && && && && && &&&System.out.println(&OK!!&);
& && && && && && && && && &bitmap2= new getBitmap();&&
& && && && && && && && && &final&&String url1 =&http://img6.ph.126.net/hBiG96B8egigBULxUWcOpA==/771276.jpg&;&&
& && && && && && && && && &final Bitmap bitmap3 = bitmap2.getBitmap(url1);&&
& && && && && && && && &&&//从网络获取图片& && && && && && && &
& && && && && && && && && &img2.post(new Runnable(){
& && && && && && && && && &public void run(){
& && && && && && && && && &img2.setImageBitmap(bitmap3);
& && && && && && && && && &System.out.println(&测验&);
& && && && && && && && && &}});}}).start();
& && &&&}});}}另,两个***在模拟其中都能正常运行,获取图片
(94.62 KB)
手机端设置好的静态ip,两者可以互相ping通。请教高手们可能是哪的问题?谢啦
本帖最后由 rongwei84n 于
13:25 编辑
资深技术经理
引用:原帖由 王村桥 于
11:10 发表
代码如下,获取本地计算机上图片;
(Ip为192.168.1.3,模拟器中为10.0.2.2)
btn1获取本地pc端服务器端图片,btn2获取网络图片,代码相同,网络图片获取正常,pc端无法获取,logcat如图:
public void onCreate(Bundle savedInstance ...
这个地址是不是个正确的地址。比如,你可以用计算浏览器输入进去看看
的确是无法用 浏览器访问。。未经iis配置啊,现在好了,谢了
及时反馈进度
资深技术经理
引用:原帖由 王村桥 于
14:52 发表
的确是无法用 浏览器访问。。未经iis配置啊,现在好了,谢了 呵呵, 好久没用iis来配置了网站访问了。:lol1
提示: 作者被禁止或删除 内容自动屏蔽在Android开发中通过localhost或127.0.0.1访问本地服务器时,会报java.net.ConnectException: localhost/127.0.0.1:8083 -Connection refused异常。
为什么会报这个异常呢?因为Android模拟器本身把自己当做了localhost或127.0.0.1,而此时我们又通过localhost或127.0.0.1访问本地服务器,所以会抛出异常了。
在网上查了下,在模拟器上可以用10.0.2.2代替127.0.0.1和localhost;
另外如果是在局域网环境可以用192.168.0.x或者192.168.1.x(根据具体配置)连接本机。在局域网环境为了保守起见,我们可以通过Android代码来获取本机的IP,接下来就通过代码演示怎么获取Android能访问本地服务器的IP
&&&&&&&&&&&& &&&&&&&&&&&
第一步,在清单文件中加入以下权限&&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/&
&&&&&&&&&&&&&&
第二步,获取Android本机IP地址和MAC
package cn.itcast.import java.net.InetAimport java.net.NetworkIimport java.net.SocketEimport java.util.Eimport java.util.Limport android.content.Cimport android.net.wifi.WifiIimport android.net.wifi.WifiMimport android.test.AndroidTestCimport android.util.Limport cn.itcast.domain.Vimport cn.itcast.news.MainAimport cn.itcast.service.VideoSpublic class VideoServiceTest extends AndroidTestCase {
private static final String TAG = "VideoServiceTest";
public void testLocalIpAndMac(){
Log.i(TAG, "IP: "+getLocalIpAddress()+", MAC: "+getLocalMacAddress());
* 获取Android本机IP地址
private String getLocalIpAddress() {
for (Enumeration&NetworkInterface& en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration&InetAddress& enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
} catch (SocketException ex) {
Log.e("WifiPreference IpAddress", ex.toString());
return null;
* 获取Android本机MAC
private String getLocalMacAddress() {
WifiManager wifi = (WifiManager) this.getContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
return info.getMacAddress();
&&&&&&&&&&&&&&
其中10.0.2.15就是我们要得到的IP
阅读(...) 评论()android真机,Socket不能3G连接外网(内网测试没问题),为什么???
[问题点数:20分,结帖人qq]
android真机,Socket不能3G连接外网(内网测试没问题),为什么???
[问题点数:20分,结帖人qq]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年4月 PowerBuilder大版内专家分月排行榜第二2012年5月 PowerBuilder大版内专家分月排行榜第二2010年11月 PowerBuilder大版内专家分月排行榜第二2010年10月 PowerBuilder大版内专家分月排行榜第二2009年12月 PowerBuilder大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。服务器学习
1.启动电脑上的tomcat服务器,然后测试 http://localhost:8080/test/index.jsp,如果能访问则服务器没问题。
2.找到电脑现在的ipv4地址,可以通过控制面板查看,也可以通过cmd--&ipconfig查看
3.测试& http://10.223.8.239:8080/test/index.jsp,这里的ip地址就是本机的ipv4地址(根据自己的IP修改),如果能访问,则说明通过本机ip能访问服务器。
4.通过360WiFi等能够共享的WiFi的工具共享WiFi(主要是做一个局域网,Android手机必须与本机在同一网段下。如果Android手机和电脑都连在同一个无线路由器应该也可以。),然后Android手机连接到这个WiFi。
5.打开Android手机浏览器,输入 http://10.223.8.239:8080/test/index.jsp
这样就可以实现Android真机与本地tomcat服务器通信了.....
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:617次
排名:千里之外6793人阅读
这篇文章是好久之前的事了,好像哪个同学也问过我这么一个问题,就是“android应用开发完了后,如何访问本地服务器?如Tomcat”
个人开发的android电子商城开始在手机进行测试,遇到一个问题:“应用如何在手机上访问 本地电脑上的tomcat服务器”,有一定移动应用开发经历的肯定知道设置&localhost&或者&127.0.0.1&是不行的,在模拟器上将ip 设置为&10.0.2.2&是可以访问的,但到真机上此方法行不通。
网上提供的解决方案,无非以下两种:
(1)将应用后台服务器部署到某台可以通过公网访问的服务器上,手机访问该公网IP地址,类似于公网试用
(2)设置局域网,手机通过WIFI访问局域网中的某台服务器(拥有局域网IP地址)
显然,以上两种方法都比较繁琐,不能快速切换到测试环境,之前我一直通过共享电脑的网络来使手机上网,即然能通过电脑上网,那肯定访问电脑的tomcat服务器,于是试了一下,果然可行,这样切换到测试环境要简便多了。
&&& 解决方案是:
(1)在本地服务器添加一个IP地址(我的IP设置为:192.168.0.13)
(2)将Android应用的访问地址设为192.168.0.13
(3)设置Tomcat的HOST,如下图:
(4)允许手机共享本地电脑的internet(当然手机需要设置为调试模式),如图:
打开应用访问本地服务器,测试通过
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21437次
排名:千里之外
转载:16篇

参考资料