鸿蒙OS开发文档 鸿蒙OS 使用指定网络进行数据访问

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 4

场景介绍

应用可以调用 API 接口来使用指定网络进行数据传输。在进行数据传输前,需要先建立自定义的网络类型。

接口说明

应用使用指定网络进行数据访问,所使用的接口说明如下。

类名接口名功能描述
NetSpecifierBuilder()创建一个指定网络实例。
NetManagersetupSpecificNet(NetSpecifier netSpecifier, NetStatusCallback callback)建立指定的数据网络。
removeNetStatusCallback(NetStatusCallback callback)停止获取数据网络状态。

开发步骤

  1. 调用 NetSpecifier.Builder( )构建指定数据网络的实例。
  1. 调用 NetManager.setupSpecificNet() 建立数据网络,通过 callback 获取网络状态变化。
  1. 进行数据发送。
NetManager netManager = NetManager.getInstance(null);
private class MmsCallback extends NetStatusCallback {
@Override
public void onAvailable(NetHandle netHandle) {
// 通过setAppNet把后续应用所有的请求都通过该网络进行发送
netManager.setAppNet(netHandle);
try {
HttpURLConnection connection = null;
String urlString = "https://www.huawei.com/";
URL url = new URL(urlString);
URLConnection urlConnection = netHandle.openConnection(url, java.net.Proxy.NO_PROXY);
if (urlConnection instanceof HttpURLConnection) {
connection = (HttpURLConnection) urlConnection;
}
connection.setRequestMethod("GET");
connection.connect();
// 之后可进行url的其他操作
} finally {
connection.disconnect();
}
// 如果业务执行完毕,可以停止获取
netManager.removeNetStatusCallback(this);
}
}
MmsCallback callback = new MmsCallback();
// 配置一个彩信类型的蜂窝网络
NetSpecifier req = new NetSpecifier.Builder()
.addCapability(NetCapabilities.NET_CAPABILITY_MMS)
.addBearer(NetCapabilities.BEARER_CELLULAR)
.build();
// 建立数据网络,通过callback获取网络变更状态
netManager.setupSpecificNet(req, callback);