近年来,随着人们对移动设备的依赖越来越大,wifi技术在其中扮演着越来越重要的角色。Android 10为开发者们提供了更强大的wifi开发功能,让我们一起来了解一下。
一、WIFI 硬件支持
在 Android10 中,我们可以通过WifiManager类和WifiInfo类来获取 wifi 上网相关的信息,设置和配置 wifi 网络,还可以通过 ConnectivityManager.NetworkCallback 监听 wifi 网络连接的变化等。
二、Wi-Fi 连接
Android 10 中的 Wi-Fi 连接方式基本是和之前的版本相同的。对于连接 Wi-Fi 网络,我们需要以下步骤:
1.获取 wifi 管理器实例。
```
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
```
2.判断当前 wifi 网络是否可用。
```
if (wifiManager.isWifiEnabled()) {
// Wi-Fi is enabled
}
```
3.获取已连接 wifi 的信息。
```
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
```
4.获取 Wi-Fi 热点的列表。
```
List
```
5.连接指定的资源。
```
wifiManager.enableNetwork(wifiManager.getConnectionInfo().getNetworkId(), true);
```
6.断开 Wi-Fi 连接。
```
wifiManager.disconnect();
```
三、Wi-Fi 热点
在 Android 10 中,我们可以通过WifiManager类来配置设备作为 Wi-Fi 热点。下面是一个设备作为 Wi-Fi 热点的相关代码。
```
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
// 这里需要确保当前用户已打开移动数据,并且热点共享的是移动数据
wifiManager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {
@Override
public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
// 获取热点的 SSID 和密码
String ssid = reservation.getWifiConfiguration().SSID;
String password = reservation.getWifiConfiguration().preSharedKey;
Log.d(TAG, "Wi-Fi hotspot SSID: " + ssid);
Log.d(TAG, "Wi-Fi hotspot Password: " + password);
}
@Override
public void onStopped() {
super.onStopped();
}
@Override
public void onFailed(int reason) {
super.onFailed(reason);
}
}, new Handler());
```
四、Wi-Fi Aware
Android 10 中新增了 Wi-Fi Aware 功能,可以让设备通过 Wi-Fi Aware 扫描到其他设备,然后与其进行通信。下面是一个简单的扫描并连接到其他设备的示例代码。
```
WifiAwareManager wifiAwareManager = (WifiAwareManager) context.getSystemService(Context.WIFI_AWARE_SERVICE);
// 设置一些参数,比如让设备一直扫描
WifiAwareSession wifiAwareSession = wifiAwareManager.openSession(new WifiAwareSessionCallback() {
@Override
public void onSessionStarted(WifiAwareSession session) {
super.onSessionStarted(session);
List
if (peerHandles != null && peerHandles.size() > 0) {
PeerHandle peerHandle = peerHandles.get(0);
// 连接到指定的 Wi-Fi Aware 设备
WifiAwareDiscoverySession wifiAwareDiscoverySession = session.createDiscoverySession(new DiscoverySessionCallback() {
@Override
public void onEndpointFound(PeerHandle peerHandle, EndpointInfo endpointInfo) {
super.onEndpointFound(peerHandle, endpointInfo);
// 发现一个设备,可以与其进行连接
}
@Override
public void onDiscoverySessionStarted() {
super.onDiscoverySessionStarted();
}
@Override
public void onDiscoverySessionConfigFailed() {
super.onDiscoverySessionConfigFailed();
}
@Override
public void onSessionEnded() {
super.onSessionEnded();
}
});
}
}
@Override
public void onSessionConfigFailed() {
super.onSessionConfigFailed();
}
@Override
public void onSessionEnded() {
super.onSessionEnded();
}
}
```
以上就是 Android 10 中 wifi 开发的相关内容,通过以上介绍可以看出 Android 10 对 wifi 功能的支持更加强大了,也更加易于开发者们进行开发。