您的位置:首页 > 移动开发 > Android开发

Android获取本机IP地址(不是localhost)和MAC的方法

2012-08-10 16:16 656 查看
这个方法在摩托罗拉里程碑上测试通过。功能是获取本机的IP和MAC地址。首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下。

[xhtml] view
plaincopy

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

然后修改/res/layout/main.xml,如下。

[xhtml] view
plaincopy

<TextView

android:id ="@+id/hello"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

/>

主要代码如下(GetIPMAC.java):

package exp.getipmac;

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.util.Enumeration;

import android.app.Activity;

import android.content.Context;

import android.net.wifi.WifiInfo;

import android.net.wifi.WifiManager;

import android.os.Bundle;

import android.util.Log;

import android.widget.TextView;

public class GetIPMAC extends Activity {

public static String hostip; //本机IP

public static String hostmac; //本机MAC

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView tv= (TextView)findViewById(R.id.hello);

hostip = getLocalIpAddress(); //获取本机IP

hostmac = getLocalMacAddress();//获取本机MAC

/* 显示本机IP和MAC */

tv.setText("HostIP:" + hostip + "/nHostMAC:" + hostmac);

/* 在调试信息中输出本机IP和MAC */

if (hostip != null) Log.d("GetIPMAC", hostip);

else Log.d("GetIPMAC", "null");

Log.d("GetIPMAC", hostmac);

}

public 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());

}

return null;

}

public String getLocalMacAddress() {

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

WifiInfo info = wifi.getConnectionInfo();

return info.getMacAddress();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: