Android开发(39) android获取ip地址
来源:互联网 发布:mac os 10.10下载 编辑:程序博客网 时间:2024/05/22 17:25
1.如果使用WIFI可以用android自带的类来获取IP首先设置用户权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 其次,代码如下 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取wifi服务 WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); //判断wifi是否开启 if (!wifiManager.isWifiEnabled()) { wifiManager.setWifiEnabled(true); } WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); String ip = intToIp(ipAddress); EditText et = (EditText)findViewById(R.id.EditText01); et.setText(ip); } private String intToIp(int i) { return (i & 0xFF ) + "." + ((i >> 8 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) + "." + ( i >> 24 & 0xFF) ; }2.java方法:这时相当于是用的java的类来获取ip,其实这个不仅可以获得GPRS的,wifi的一样能够获取! 首先,设置用户上网权限 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 其次,代码如下 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; } 3.可以通过创建一个socket,通过socket来获取本地的IP地址。try{ Socket socket = new Socket("www.baidu.com", 80); Log.i("", socket.getLocalAddress().toString());)} catch(Exception e){ Log.i("",e.getMessage());} 总之其实完全可以通过下面这个完整的文件来实现以上三个方法: import java.net.InetAddress;import java.net.NetworkInterface;import java.net.Socket;import java.util.Enumeration; import android.app.Activity;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.os.Bundle;import android.text.format.Formatter;import android.widget.EditText;import android.widget.TextView; public class IpAddressgetActivity extends Activity { //private TextView mText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); EditText et = (EditText)findViewById(R.id.edittext01); String ip = null; //Method 1 WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo info = wifiManager.getConnectionInfo(); ip = "wifiInfo :" + Formatter.formatIpAddress(info.getIpAddress()); ip += "\n"; //Method 2 try{ Socket socket = new Socket("10.40.73.41", 80); ip += "socket : " + socket.getLocalAddress().toString() + "\n"; } catch (Exception e) { e.printStackTrace(); //throw new RuntimeException(); } //Method 3 try { Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); NetworkInterface inf = interfaces.nextElement(); for (Enumeration<InetAddress> enumAddress = inf.getInetAddresses();enumAddress.hasMoreElements();) { InetAddress in = enumAddress.nextElement(); if(!in.isLinkLocalAddress()) { ip += "NetworkInterface : " + in.getHostAddress() + "\n"; } } }catch (Exception e) { e.printStackTrace();
0 0
- Android开发(39) android获取ip地址
- android 获取IP地址
- ANDROID 获取IP地址
- android 获取ip地址
- android获取IP地址
- android 获取IP地址
- android 获取IP地址
- Android 获取IP地址
- Android 获取IP地址
- Android获取ip地址
- Android获取Ip地址
- Android获取IP地址
- android获取IP地址
- 开发android盒子,如何获取Android IP地址
- Android获取本地IP地址
- 如何获取Android IP地址
- 如何获取Android IP地址
- 获取Android IP地址代码
- JAVA 接口和抽象类的区别
- Linux2.6.x Kernel Makefiles (Linux内核Makefile文件 )
- C++拷贝构造函数详解
- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
- android集成支付宝支付功能
- Android开发(39) android获取ip地址
- GetLastError返回值的意义(0~999)
- 使用printf()和sprintf()
- aix6.1安装SSH
- 广告位显示轮播,左右按钮替换
- Java闭包测试
- winsock编程,socket建立步骤
- java注解
- spring集成activemq消息中间件