这个方法在摩托罗拉里程碑上测试通过。功能是获取本机的IP和MAC地址。首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下。
view plaincopy to clipboardprint?
<uses-permissionAndroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
然后修改/res/layout/main.xml,如下。
复制到剪贴板XML/HTML代码
- viewplaincopytoclipboardprint?
- <TextView
- android:id="@+id/hello"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
主要代码如下(GetIPMAC.Java):
复制到剪贴板Java代码
- viewplaincopytoclipboardprint?
- packageexp.getipmac;
- importjava.net.InetAddress;
- importjava.net.NetworkInterface;
- importjava.net.SocketException;
- importjava.util.Enumeration;
- importandroid.app.Activity;
- importandroid.content.Context;
- importandroid.net.wifi.WifiInfo;
- importandroid.net.wifi.WifiManager;
- importandroid.os.Bundle;
- importandroid.util.Log;
- importandroid.widget.TextView;
- publicclassGetIPMACextendsActivity{
- publicstaticStringhostip;//本机IP
- publicstaticStringhostmac;//本机MAC
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- TextViewtv=(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);
- elseLog.d("GetIPMAC","null");
- Log.d("GetIPMAC",hostmac);
- }
- publicStringgetLocalIpAddress(){
- try{
- for(Enumeration<NetworkInterface>en=NetworkInterface
- .getNetworkInterfaces();en.hasMoreElements();){
- NetworkInterfaceintf=en.nextElement();
- for(Enumeration<InetAddress>enumIpAddr=intf
- .getInetAddresses();enumIpAddr.hasMoreElements();){
- InetAddressinetAddress=enumIpAddr.nextElement();
- if(!inetAddress.isLoopbackAddress()){
- returninetAddress.getHostAddress().toString();
- }
- }
- }
- }catch(SocketExceptionex){
- Log.e("WifiPreferenceIpAddress",ex.toString());
- }
- returnnull;
- }
- publicStringgetLocalMacAddress(){
- WifiManagerwifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
- WifiInfoinfo=wifi.getConnectionInfo();
- returninfo.getMacAddress();
- }
- }
运行效果:
|