android利用wifi通讯,android wifi 热点连接以及Socket通信(经测试有效)
时间: 2023-06-19 18:10:26 浏览: 144
android wifi 热点连接以及Socket通信(经测试有效)
5星 · 资源好评率100%
Android可以利用WiFi进行通信,包括连接WiFi热点和使用Socket进行通信。下面介绍一下如何实现。
1. 连接WiFi热点
Android提供了一些API来连接WiFi热点。首先需要获取WiFi管理器:
```java
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
```
然后可以通过以下方法获取到WiFi列表:
```java
List<ScanResult> scanResults = wifiManager.getScanResults();
```
根据扫描结果可以选择要连接的WiFi热点,然后使用以下方法连接:
```java
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = "\"" + ssid + "\"";
wifiConfig.preSharedKey = "\"" + password + "\"";
int netId = wifiManager.addNetwork(wifiConfig);
wifiManager.disconnect();
wifiManager.enableNetwork(netId, true);
wifiManager.reconnect();
```
其中,`ssid`是WiFi名称,`password`是密码。这里创建了一个WiFi配置对象,并设置了SSID和密码,然后将其添加到WiFi管理器中,并连接到该网络。
2. Socket通信
连接WiFi热点之后,可以使用Socket进行通信。首先需要创建一个Socket对象:
```java
Socket socket = new Socket(ipAddress, port);
```
其中,`ipAddress`是要连接的设备的IP地址,`port`是端口号。然后就可以使用输入输出流进行数据读写了:
```java
OutputStream outputStream = socket.getOutputStream();
outputStream.write(data.getBytes());
outputStream.flush();
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String message = bufferedReader.readLine();
```
这里的`data`是要发送的数据,`message`是收到的数据。注意,在使用完Socket之后要关闭它:
```java
socket.close();
```
以上就是Android利用WiFi进行通信的基本方法。
阅读全文