Android获取本机IP地址(不是localhost)和MAC的方法
16lz
2021-01-23
Android获取本机IP地址(不是localhost)和MAC的方法
分类:Android 2011-04-01 16:44 5822人阅读 评论(7) 收藏 举报 android string layout null service class这个方法在摩托罗拉里程碑上测试通过。功能是获取本机的IP和MAC地址。首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下。
[xhtml] view plain copy
- <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
- <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
然后修改/res/layout/main.xml,如下。
[xhtml] view plain copy
- <TextView
- android:id="@+id/hello"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
主要代码如下(GetIPMAC.java):
[java] view plain copy
- 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();
- }
- }
运行效果:
分享到:
更多相关文章
- Android 导入android源码有错,R.java文件不能自动生成解决方法
- Git,SVN使用方法杂记(更新中)
- 解决develop.android.com无法访问到最佳方法
- Android ActionBar使用方法(二)
- Android dex ,xml 文件反编译方法
- Android 代码混淆及反编译方法