1. 程式人生 > >Android無法訪問本地伺服器(localhost)的解決方案

Android無法訪問本地伺服器(localhost)的解決方案

package cn.itcast.test;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.List;

import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.test.AndroidTestCase;
import android.util.Log;
import cn.itcast.domain.Video;
import cn.itcast.news.MainActivity;
import cn.itcast.service.VideoService;

publicclass VideoServiceTest extends AndroidTestCase {
privatestaticfinal String TAG ="VideoServiceTest";

publicvoid testLocalIpAndMac(){
Log.i(TAG,
"IP: "+getLocalIpAddress()
+", MAC: "+getLocalMacAddress());
}

/**
* 獲取Android本機IP地址
*
*
@return*/private String getLocalIpAddress() {
try {
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());
}
returnnull;
}

/**
* 獲取Android本機MAC
*
*
@return*/private String getLocalMacAddress() {
WifiManager wifi
= (WifiManager) this.getContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info
= wifi.getConnectionInfo();
return info.getMacAddress();
}
}