android獲取手機ip

l_serein發表於2012-06-02
需要許可權<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
public class IPViewerActivity extends ListActivity {
ListView listView;
String hostIP;
String macAddr;
TextView ipText;
List<String> list = new ArrayList<String>();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        hostIP = getLocalIpAddress();
        macAddr = getLocalMacAddress();
        ipText = (TextView) this.findViewById(R.id.ip);
        ipText.setText("ip:"+hostIP+"\nMacIP:"+macAddr);
        
        list.add("hostIP: "+hostIP);
        list.add("macAddr: "+macAddr);
//        listView = this.getListView();
        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list.toArray(new String[list.size()])));
    }


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("ifo", ex.toString());     
   }     
   return "";     
}     

    public String getLocalMacAddress() {     
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);     
        WifiInfo info = wifi.getConnectionInfo();     
        return info.getMacAddress();     
    }  
}

相關文章