手机与电脑同处于一个局域网内时,常见于WiFi热点互联,比如360免费wifi软件,快牙软件,都是利用局域网传输效率快于广域网的原理进行文件的传递。当手机连接电脑的热点时,可以利用一些方法获得电脑主机和本机的IP地址
/** * 获取手机所连wifi路由的IP,若手机与电脑共联在同一个局域网内,这个IP就是电脑主机的IP */ private String getHostIPAdress() { return intToIp(wifiManager.getDhcpInfo().serverAddress); }
而获取本机的IP则有多种方法(获取主机的IP目前我只知道上述一种方法)。例如:通过DhcpInfo的ipAdress参数
/** * 获取当前的wifi状态下,手机的ip地址 */ private String getIPAdress1() { return intToIp(wifiManager.getDhcpInfo().ipAddress); }或者利用ConnectionInfo的getIpAdress()方法:
/** * 获取当前的wifi状态下,手机的ip地址的第二种方法 */ private String getIPAdress2() { return intToIp(wifiManager.getConnectionInfo().getIpAddress()); }
开发WIFI需要wifi权限: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
之后就可以进行局域网内数据的传输了,我决定采用socket。之后的内容下周再更新。